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 "+
"from %s.%s", r.logsDB, r.logsTable)
if filterSql != nil && *filterSql != "" {
query += fmt.Sprintf(" where %s", *filterSql)
if filterSql != "" {
query += fmt.Sprintf(" where %s", filterSql)
}
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
default:
tmpQuery := fmt.Sprintf("%s where timestamp >='%d'", query, *tsStart)
if filterSql != nil && *filterSql != "" {
tmpQuery += fmt.Sprintf(" and %s", *filterSql)
if filterSql != "" {
tmpQuery += fmt.Sprintf(" and %s", filterSql)
}
if idStart != nil {
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' ",
*params.StepSeconds/60, function, r.logsDB, r.logsTable, *params.TimestampStart, *params.TimestampEnd)
}
if filterSql != nil && *filterSql != "" {
query += fmt.Sprintf(" AND %s ", *filterSql)
if filterSql != "" {
query += fmt.Sprintf(" AND %s ", filterSql)
}
if 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 != "" {
aggregateResponse.Items[logAggregatesDBResponseItems[i].Timestamp] = model.LogsAggregatesResponseItem{
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 == "" {
aggregateResponse.Items[logAggregatesDBResponseItems[i].Timestamp] = model.LogsAggregatesResponseItem{

View File

@ -242,19 +242,20 @@ func replaceInterestingFields(allFields *model.GetFieldsResponse, queryTokens []
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 err error
var sqlWhere string
if params.Query != nil {
tokens, err = parseLogQuery(*params.Query)
if err != nil {
return nil, err
return sqlWhere, err
}
}
tokens, err = replaceInterestingFields(allFields, tokens)
if err != nil {
return nil, err
return sqlWhere, err
}
if params.TimestampStart != nil {
@ -286,7 +287,7 @@ func GenerateSQLWhere(allFields *model.GetFieldsResponse, params *model.LogsFilt
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' "
Convey("testInterestingFields", t, func() {
res, _ := GenerateSQLWhere(&allFields, &model.LogsFilterParams{Query: &query, TimestampStart: &tsStart, TimestampEnd: &tsEnd, IdStart: &idStart, IdEnd: &idEnd})
So(*res, ShouldEqual, sqlWhere)
So(res, ShouldEqual, sqlWhere)
})
}