fix(meter): meter where clause keys fix (#8833)

This commit is contained in:
Vikrant Gupta 2025-08-18 22:57:02 +05:30 committed by GitHub
parent 5a7ad670d8
commit 59d5accd33
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 6 deletions

View File

@ -75,8 +75,9 @@ func (b *meterQueryStatementBuilder) buildPipelineStatement(
if b.metricsStatementBuilder.CanShortCircuitDelta(query) { if b.metricsStatementBuilder.CanShortCircuitDelta(query) {
// spatial_aggregation_cte directly for certain delta queries // spatial_aggregation_cte directly for certain delta queries
frag, args := b.buildTemporalAggDeltaFastPath(ctx, start, end, query, keys, variables) if frag, args, err := b.buildTemporalAggDeltaFastPath(ctx, start, end, query, keys, variables); err != nil {
if frag != "" { return nil, err
} else if frag != "" {
cteFragments = append(cteFragments, frag) cteFragments = append(cteFragments, frag)
cteArgs = append(cteArgs, args) cteArgs = append(cteArgs, args)
} }
@ -107,7 +108,7 @@ func (b *meterQueryStatementBuilder) buildTemporalAggDeltaFastPath(
query qbtypes.QueryBuilderQuery[qbtypes.MetricAggregation], query qbtypes.QueryBuilderQuery[qbtypes.MetricAggregation],
keys map[string][]*telemetrytypes.TelemetryFieldKey, keys map[string][]*telemetrytypes.TelemetryFieldKey,
variables map[string]qbtypes.VariableItem, variables map[string]qbtypes.VariableItem,
) (string, []any) { ) (string, []any, error) {
var filterWhere *querybuilder.PreparedWhereClause var filterWhere *querybuilder.PreparedWhereClause
var err error var err error
stepSec := int64(query.StepInterval.Seconds()) stepSec := int64(query.StepInterval.Seconds())
@ -121,7 +122,7 @@ func (b *meterQueryStatementBuilder) buildTemporalAggDeltaFastPath(
for _, g := range query.GroupBy { for _, g := range query.GroupBy {
col, err := b.fm.ColumnExpressionFor(ctx, &g.TelemetryFieldKey, keys) col, err := b.fm.ColumnExpressionFor(ctx, &g.TelemetryFieldKey, keys)
if err != nil { if err != nil {
return "", []any{} return "", []any{}, err
} }
sb.SelectMore(col) sb.SelectMore(col)
} }
@ -149,7 +150,7 @@ func (b *meterQueryStatementBuilder) buildTemporalAggDeltaFastPath(
Variables: variables, Variables: variables,
}) })
if err != nil { if err != nil {
return "", []any{} return "", []any{}, err
} }
} }
if filterWhere != nil { if filterWhere != nil {
@ -163,7 +164,7 @@ func (b *meterQueryStatementBuilder) buildTemporalAggDeltaFastPath(
sb.GroupBy(querybuilder.GroupByKeys(query.GroupBy)...) sb.GroupBy(querybuilder.GroupByKeys(query.GroupBy)...)
q, args := sb.BuildWithFlavor(sqlbuilder.ClickHouse) q, args := sb.BuildWithFlavor(sqlbuilder.ClickHouse)
return fmt.Sprintf("__spatial_aggregation_cte AS (%s)", q), args return fmt.Sprintf("__spatial_aggregation_cte AS (%s)", q), args, nil
} }
func (b *meterQueryStatementBuilder) buildTemporalAggregationCTE( func (b *meterQueryStatementBuilder) buildTemporalAggregationCTE(

View File

@ -114,6 +114,7 @@ func GetKeySelectors(query qbtypes.QueryBuilderQuery[qbtypes.MetricAggregation])
keySelectors[idx].MetricContext = &telemetrytypes.MetricContext{ keySelectors[idx].MetricContext = &telemetrytypes.MetricContext{
MetricName: query.Aggregations[0].MetricName, MetricName: query.Aggregations[0].MetricName,
} }
keySelectors[idx].Source = query.Source
} }
return keySelectors return keySelectors
} }