@@ -5,7 +5,6 @@ package queryparser
55import (
66 "context"
77 "fmt"
8- "github.com/k0kubun/pp"
98 "quesma/logger"
109 "quesma/model"
1110 "quesma/model/bucket_aggregations"
@@ -126,14 +125,9 @@ type layerAndNextBucket struct {
126125}
127126
128127func (a * pancakeTransformer ) optimizeSimpleFilter (previousAggrNames []string , result * layerAndNextBucket , childAgg * pancakeAggregationTreeNode ) bool {
129- if len (previousAggrNames ) == 0 { // already optimized
130- //return false
131- }
132-
133128 _ , isFilter := result .nextBucketAggregation .queryType .(bucket_aggregations.FilterAgg )
134129 secondFilter , isFilter2 := childAgg .queryType .(bucket_aggregations.FilterAgg )
135130
136- fmt .Println ("dupa" , isFilter , isFilter2 , len (childAgg .children ))
137131 if isFilter && isFilter2 && len (childAgg .children ) == 0 {
138132 metrics , err := a .metricAggregationTreeNodeToModel (previousAggrNames , childAgg )
139133 if err != nil {
@@ -246,31 +240,8 @@ func (a *pancakeTransformer) aggregationChildrenToLayers(aggrNames []string, chi
246240}
247241
248242func (a * pancakeTransformer ) checkIfSupported (layers []* pancakeModelLayer ) error {
249- // for now we support filter only as last bucket aggregation
250- /* let's try to support everything
251- for layerIdx, layer := range layers {
252- if layer.nextBucketAggregation != nil {
253- switch layer.nextBucketAggregation.queryType.(type) {
254- case bucket_aggregations.CombinatorAggregationInterface:
255- for _, followingLayer := range layers[layerIdx+1:] {
256- bucket := followingLayer.nextBucketAggregation
257- if bucket != nil {
258- switch bucket.queryType.(type) {
259- case *bucket_aggregations.DateHistogram:
260- continue // histogram are fine
261- case bucket_aggregations.CombinatorAggregationInterface:
262- continue // we also support nested filters/range/dataRange
263- case *bucket_aggregations.Filters:
264- continue
265- default:
266- return fmt.Errorf("filter(s)/range/dataRange aggregation must be the last bucket aggregation (found %s)", bucket.queryType.String())
267- }
268- }
269- }
270- }
271- }
272- }
273- */
243+ // Let's say we support everything. That'll be true when I add support for filters/date_range/range in the middle of aggregation tree (@trzysiek)
244+ // Erase this function by then.
274245 return nil
275246}
276247
@@ -389,8 +360,6 @@ func (a *pancakeTransformer) aggregationTreeToPancakes(topLevel pancakeAggregati
389360 return nil , fmt .Errorf ("no top level aggregations found" )
390361 }
391362
392- //pp.Println("pancakeAggregationTree", topLevel, topLevel.children[0])
393-
394363 resultLayers , err := a .aggregationChildrenToLayers ([]string {}, topLevel .children )
395364
396365 if err != nil {
@@ -422,7 +391,6 @@ func (a *pancakeTransformer) aggregationTreeToPancakes(topLevel pancakeAggregati
422391 pancakeResults = append (pancakeResults , & newPancake )
423392
424393 additionalTopHitPancakes , err := a .createTopHitAndTopMetricsPancakes (& newPancake )
425- fmt .Println (topLevel .whereClause )
426394 if err != nil {
427395 return nil , err
428396 }
@@ -439,8 +407,6 @@ func (a *pancakeTransformer) aggregationTreeToPancakes(topLevel pancakeAggregati
439407}
440408
441409func (a * pancakeTransformer ) createFiltersPancakes (pancake * pancakeModel ) (result []* pancakeModel , err error ) {
442- pp .Println ("PANCAKE" , pancake )
443- fmt .Println ("hoho" , len (pancake .layers ), pancake .layers [0 ].nextBucketAggregation == nil )
444410 if len (pancake .layers ) == 0 || pancake .layers [0 ].nextBucketAggregation == nil {
445411 return
446412 }
@@ -452,19 +418,16 @@ func (a *pancakeTransformer) createFiltersPancakes(pancake *pancakeModel) (resul
452418 }
453419 if len (firstLayer .currentMetricAggregations ) == 0 && len (firstLayer .currentPipelineAggregations ) == 0 && len (pancake .layers ) > 1 { // maybe secondLayer, not first?
454420 // If filter is in the first layer, we can just add it to the where clause
455- fmt .Println ("jestem tu?" , len (filters .Filters ))
456421 for i , filter := range filters .Filters [1 :] {
457422 newPancake := pancake .Clone ()
458423 // new (every) pancake has only 1 filter instead of all
459424 bucketAggr := newPancake .layers [0 ].nextBucketAggregation .ShallowClone ()
460425 bucketAggr .queryType = filters .NewFiltersSingleFilter (i + 1 ) // +1 because we iterate over [1:]
461- pp .Println ("new filter" , bucketAggr .queryType )
462426 newPancake .layers [0 ] = newPancakeModelLayer (& bucketAggr )
463427 newPancake .whereClause = model .And ([]model.Expr {newPancake .whereClause , filter .Sql .WhereClause })
464428 result = append (result , newPancake )
465429 }
466430 pancake .layers [0 ].nextBucketAggregation .queryType = filters .NewFiltersSingleFilter (0 )
467- pp .Println ("hoho" , filters )
468431 }
469432 return
470433}
0 commit comments