generateSql returns value insted of pointer

This commit is contained in:
nityanandagohain 2022-07-22 15:39:43 +05:30
parent 94cde11164
commit bdb6901c74
3 changed files with 14 additions and 13 deletions

View File

@ -2869,8 +2869,8 @@ func (r *ClickHouseReader) GetLogs(ctx context.Context, params *model.LogsFilter
"CAST((resources_string_key, resources_string_value), 'Map(String, String)') as resources_string "+ "CAST((resources_string_key, resources_string_value), 'Map(String, String)') as resources_string "+
"from %s.%s", r.logsDB, r.logsTable) "from %s.%s", r.logsDB, r.logsTable)
if filterSql != nil && *filterSql != "" { if filterSql != "" {
query += fmt.Sprintf(" where %s", *filterSql) query += fmt.Sprintf(" where %s", filterSql)
} }
query = fmt.Sprintf("%s order by %s %s limit %d", query, params.OrderBy, params.Order, params.Limit) query = fmt.Sprintf("%s order by %s %s limit %d", query, params.OrderBy, params.Order, params.Limit)
@ -2928,8 +2928,8 @@ func (r *ClickHouseReader) TailLogs(ctx context.Context, client *model.LogsTailC
return return
default: default:
tmpQuery := fmt.Sprintf("%s where timestamp >='%d'", query, *tsStart) tmpQuery := fmt.Sprintf("%s where timestamp >='%d'", query, *tsStart)
if filterSql != nil && *filterSql != "" { if filterSql != "" {
tmpQuery += fmt.Sprintf(" and %s", *filterSql) tmpQuery += fmt.Sprintf(" and %s", filterSql)
} }
if idStart != nil { if idStart != nil {
tmpQuery += fmt.Sprintf(" and id > '%s'", *idStart) tmpQuery += fmt.Sprintf(" and id > '%s'", *idStart)
@ -3005,8 +3005,8 @@ func (r *ClickHouseReader) AggregateLogs(ctx context.Context, params *model.Logs
"FROM %s.%s WHERE timestamp >= '%d' AND timestamp <= '%d' ", "FROM %s.%s WHERE timestamp >= '%d' AND timestamp <= '%d' ",
*params.StepSeconds/60, function, r.logsDB, r.logsTable, *params.TimestampStart, *params.TimestampEnd) *params.StepSeconds/60, function, r.logsDB, r.logsTable, *params.TimestampStart, *params.TimestampEnd)
} }
if filterSql != nil && *filterSql != "" { if filterSql != "" {
query += fmt.Sprintf(" AND %s ", *filterSql) query += fmt.Sprintf(" AND %s ", filterSql)
} }
if groupBy != "" { if groupBy != "" {
query += fmt.Sprintf("GROUP BY time, toString(%s) as groupBy ORDER BY time", groupBy) query += fmt.Sprintf("GROUP BY time, toString(%s) as groupBy ORDER BY time", groupBy)
@ -3034,7 +3034,7 @@ func (r *ClickHouseReader) AggregateLogs(ctx context.Context, params *model.Logs
if groupBy != "" && logAggregatesDBResponseItems[i].GroupBy != "" { if groupBy != "" && logAggregatesDBResponseItems[i].GroupBy != "" {
aggregateResponse.Items[logAggregatesDBResponseItems[i].Timestamp] = model.LogsAggregatesResponseItem{ aggregateResponse.Items[logAggregatesDBResponseItems[i].Timestamp] = model.LogsAggregatesResponseItem{
Timestamp: logAggregatesDBResponseItems[i].Timestamp, Timestamp: logAggregatesDBResponseItems[i].Timestamp,
GroupBy: map[string]interface{}{logAggregatesDBResponseItems[i].GroupBy: (*logAggregatesDBResponseItems)[i].Value}, GroupBy: map[string]interface{}{logAggregatesDBResponseItems[i].GroupBy: logAggregatesDBResponseItems[i].Value},
} }
} else if groupBy == "" { } else if groupBy == "" {
aggregateResponse.Items[logAggregatesDBResponseItems[i].Timestamp] = model.LogsAggregatesResponseItem{ aggregateResponse.Items[logAggregatesDBResponseItems[i].Timestamp] = model.LogsAggregatesResponseItem{

View File

@ -242,19 +242,20 @@ func replaceInterestingFields(allFields *model.GetFieldsResponse, queryTokens []
return queryTokens, nil return queryTokens, nil
} }
func GenerateSQLWhere(allFields *model.GetFieldsResponse, params *model.LogsFilterParams) (*string, error) { func GenerateSQLWhere(allFields *model.GetFieldsResponse, params *model.LogsFilterParams) (string, error) {
var tokens []string var tokens []string
var err error var err error
var sqlWhere string
if params.Query != nil { if params.Query != nil {
tokens, err = parseLogQuery(*params.Query) tokens, err = parseLogQuery(*params.Query)
if err != nil { if err != nil {
return nil, err return sqlWhere, err
} }
} }
tokens, err = replaceInterestingFields(allFields, tokens) tokens, err = replaceInterestingFields(allFields, tokens)
if err != nil { if err != nil {
return nil, err return sqlWhere, err
} }
if params.TimestampStart != nil { if params.TimestampStart != nil {
@ -286,7 +287,7 @@ func GenerateSQLWhere(allFields *model.GetFieldsResponse, params *model.LogsFilt
tokens = append(tokens, filter) tokens = append(tokens, filter)
} }
sqlWhere := strings.Join(tokens, "") sqlWhere = strings.Join(tokens, "")
return &sqlWhere, nil return sqlWhere, nil
} }

View File

@ -214,6 +214,6 @@ func TestGenerateSQLQuery(t *testing.T) {
sqlWhere := "id < 100 and id > 50 and attributes_int64_value[indexOf(attributes_int64_key, 'code')] <= 500 and attributes_int64_value[indexOf(attributes_int64_key, 'code')] >= 400 and timestamp >= '1657689292000' and timestamp <= '1657689294000' and id > '2BsKLKv8cZrLCn6rkOcRGkdjBdM' and id < '2BsKG6tRpFWjYMcWsAGKfSxoQdU' " sqlWhere := "id < 100 and id > 50 and attributes_int64_value[indexOf(attributes_int64_key, 'code')] <= 500 and attributes_int64_value[indexOf(attributes_int64_key, 'code')] >= 400 and timestamp >= '1657689292000' and timestamp <= '1657689294000' and id > '2BsKLKv8cZrLCn6rkOcRGkdjBdM' and id < '2BsKG6tRpFWjYMcWsAGKfSxoQdU' "
Convey("testInterestingFields", t, func() { Convey("testInterestingFields", t, func() {
res, _ := GenerateSQLWhere(&allFields, &model.LogsFilterParams{Query: &query, TimestampStart: &tsStart, TimestampEnd: &tsEnd, IdStart: &idStart, IdEnd: &idEnd}) res, _ := GenerateSQLWhere(&allFields, &model.LogsFilterParams{Query: &query, TimestampStart: &tsStart, TimestampEnd: &tsEnd, IdStart: &idStart, IdEnd: &idEnd})
So(*res, ShouldEqual, sqlWhere) So(res, ShouldEqual, sqlWhere)
}) })
} }