Skip to content
This repository was archived by the owner on Nov 7, 2025. It is now read-only.

Commit a10ebd9

Browse files
committed
Cleanup
1 parent 8a0799c commit a10ebd9

File tree

1 file changed

+17
-21
lines changed

1 file changed

+17
-21
lines changed

quesma/queryparser/pancake_transformer.go

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -412,11 +412,6 @@ func (a *pancakeTransformer) aggregationTreeToPancakes(topLevel pancakeAggregati
412412
pancakeResults = append(pancakeResults, a.createFiltersPancakes(&newPancake)...)
413413
}
414414

415-
for _, pancake := range pancakeResults {
416-
fmt.Println("PANC", pancake.whereClause)
417-
fmt.Println()
418-
}
419-
420415
return
421416
}
422417

@@ -427,24 +422,25 @@ func (a *pancakeTransformer) createFiltersPancakes(pancake *pancakeModel) (newPa
427422

428423
firstLayer := pancake.layers[0]
429424
filters, isFilters := firstLayer.nextBucketAggregation.queryType.(bucket_aggregations.Filters)
430-
if !isFilters {
425+
canSimplyAddFilterToWhereClause := len(firstLayer.currentMetricAggregations) == 0 && len(firstLayer.currentPipelineAggregations) == 0
426+
isItNeeded := len(pancake.layers) > 1
427+
428+
if !isFilters || !canSimplyAddFilterToWhereClause || !isItNeeded {
431429
return
432430
}
433-
fmt.Println("WTF PRZECIEZ TUTAJ")
434-
if len(firstLayer.currentMetricAggregations) == 0 && len(firstLayer.currentPipelineAggregations) == 0 && len(pancake.layers) > 1 { // maybe secondLayer, not first?
435-
// If filter is in the first layer, we can just add it to the where clause
436-
fmt.Println("WTF PRZECIEZ TUTAJ 2", len(filters.Filters), filters.Filters)
437-
for i, filter := range filters.Filters[1:] {
438-
newPancake := pancake.Clone()
439-
// new (every) pancake has only 1 filter instead of all
440-
bucketAggr := newPancake.layers[0].nextBucketAggregation.ShallowClone()
441-
bucketAggr.queryType = filters.NewFiltersSingleFilter(i + 1)
442-
newPancake.layers[0] = newPancakeModelLayer(&bucketAggr)
443-
newPancake.whereClause = model.And([]model.Expr{newPancake.whereClause, filter.Sql.WhereClause})
444-
fmt.Println("WTF PRZECIEZ TUTAJ 3", newPancake.whereClause)
445-
newPancakes = append(newPancakes, newPancake)
446-
}
447-
pancake.layers[0].nextBucketAggregation.queryType = filters.NewFiltersSingleFilter(0)
431+
432+
// First create N-1 new pancakes, each with different filter
433+
for i := 1; i < len(filters.Filters); i++ {
434+
newPancake := pancake.Clone()
435+
bucketAggr := newPancake.layers[0].nextBucketAggregation.ShallowClone()
436+
bucketAggr.queryType = filters.NewFiltersSingleFilter(i)
437+
newPancake.layers[0] = newPancakeModelLayer(&bucketAggr)
438+
newPancake.whereClause = model.And([]model.Expr{newPancake.whereClause, filters.Filters[i].Sql.WhereClause})
439+
newPancakes = append(newPancakes, newPancake)
448440
}
441+
442+
// Then update original to have 1 filter as well
443+
pancake.layers[0].nextBucketAggregation.queryType = filters.NewFiltersSingleFilter(0)
444+
449445
return
450446
}

0 commit comments

Comments
 (0)