@@ -352,27 +352,34 @@ func (q *Querier) queryRangeDelta(ctx context.Context, filterExpr logicalplan.Ex
352
352
)
353
353
}
354
354
355
- type columnIndex struct {
356
- index int
357
- found bool
358
- }
359
355
// Add necessary columns and their found value is false by default.
360
- columnIndices := map [string ]columnIndex {
361
- ColumnDurationSum : {},
362
- ColumnPeriodSum : {},
363
- ColumnTimestamp : {},
364
- ColumnValueCount : {},
365
- ColumnValueSum : {},
366
- }
356
+ columnIndices := struct {
357
+ DurationSum int
358
+ PeriodSum int
359
+ Timestamp int
360
+ ValueCount int
361
+ ValueSum int
362
+ }{}
363
+
367
364
labelColumnIndices := []int {}
368
365
369
366
fields := ar .Schema ().Fields ()
370
367
for i , field := range fields {
371
- if _ , ok := columnIndices [field .Name ]; ok {
372
- columnIndices [field .Name ] = columnIndex {
373
- index : i ,
374
- found : true ,
375
- }
368
+ switch field .Name {
369
+ case ColumnDurationSum :
370
+ columnIndices .DurationSum = i
371
+ continue
372
+ case ColumnPeriodSum :
373
+ columnIndices .PeriodSum = i
374
+ continue
375
+ case ColumnTimestamp :
376
+ columnIndices .Timestamp = i
377
+ continue
378
+ case ColumnValueCount :
379
+ columnIndices .ValueCount = i
380
+ continue
381
+ case ColumnValueSum :
382
+ columnIndices .ValueSum = i
376
383
continue
377
384
}
378
385
@@ -381,12 +388,6 @@ func (q *Querier) queryRangeDelta(ctx context.Context, filterExpr logicalplan.Ex
381
388
}
382
389
}
383
390
384
- for name , index := range columnIndices {
385
- if ! index .found {
386
- return nil , fmt .Errorf ("%s column not found" , name )
387
- }
388
- }
389
-
390
391
labelSet := labels.Labels {}
391
392
392
393
resSeries := []* pb.MetricsSeries {}
@@ -422,11 +423,11 @@ func (q *Querier) queryRangeDelta(ctx context.Context, filterExpr logicalplan.Ex
422
423
labelsetToIndex [s ] = index
423
424
}
424
425
425
- ts := ar .Column (columnIndices [ ColumnTimestamp ]. index ).(* array.Int64 ).Value (i )
426
- durationSum := ar .Column (columnIndices [ ColumnDurationSum ]. index ).(* array.Int64 ).Value (i )
427
- periodSum := ar .Column (columnIndices [ ColumnPeriodSum ]. index ).(* array.Int64 ).Value (i )
428
- valueSum := ar .Column (columnIndices [ ColumnValueSum ]. index ).(* array.Int64 ).Value (i )
429
- valueCount := ar .Column (columnIndices [ ColumnValueCount ]. index ).(* array.Int64 ).Value (i )
426
+ ts := ar .Column (columnIndices . Timestamp ).(* array.Int64 ).Value (i )
427
+ durationSum := ar .Column (columnIndices . DurationSum ).(* array.Int64 ).Value (i )
428
+ periodSum := ar .Column (columnIndices . PeriodSum ).(* array.Int64 ).Value (i )
429
+ valueSum := ar .Column (columnIndices . ValueSum ).(* array.Int64 ).Value (i )
430
+ valueCount := ar .Column (columnIndices . ValueCount ).(* array.Int64 ).Value (i )
430
431
431
432
// TODO: We should do these period and duration calculations in frostDB,
432
433
// so that we can push these down as projections.
0 commit comments