From c3897a022c57e33baba1591e1d347bcac401a701 Mon Sep 17 00:00:00 2001 From: Michael Froh Date: Fri, 24 Jan 2025 16:27:45 -0800 Subject: [PATCH] Remove subaggregator check from CompositeAggregator Not sure why I added this, when the existing implementation didn't have it. That said, we *should* call finishLeaf() before precomputing the current leaf. Signed-off-by: Michael Froh --- .../aggregations/bucket/composite/CompositeAggregator.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java index ed5abfd091870..0c6591dde2419 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java @@ -557,10 +557,8 @@ private void processLeafFromQuery(LeafReaderContext ctx, Sort indexSortPrefix) t @Override protected boolean tryPrecomputeAggregationForLeaf(LeafReaderContext ctx) throws IOException { - if (subAggregators().length == 0) { - return filterRewriteOptimizationContext.tryOptimize(ctx, this::incrementBucketDocCount, segmentMatchAll(context, ctx)); - } - return false; + finishLeaf(); // May need to wrap up previous leaf if it could not be precomputed + return filterRewriteOptimizationContext.tryOptimize(ctx, this::incrementBucketDocCount, segmentMatchAll(context, ctx)); } @Override