This is an automated email from the ASF dual-hosted git repository.

chenyz pushed a commit to branch builtin-udtf
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 78f002e1aae290dd8d2417adb03e01c98d083acc
Author: Chen YZ <[email protected]>
AuthorDate: Sat Mar 1 18:10:09 2025 +0800

    Fix Agg
---
 .../aggregation/grouped/StreamingHashAggregationOperator.java        | 2 +-
 .../planner/optimizations/TransformAggregationToStreamable.java      | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java
index 8862a813718..bce67928a68 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java
@@ -224,11 +224,11 @@ public class StreamingHashAggregationOperator extends 
AbstractOperator {
   }
 
   private void evaluateAndFlushGroup(TsBlock page, int position) {
-    Column[] result = new Column[resultColumnsCount];
     // offset of value columns index
     int offset = preGroupedIndexInResult.length + 
unPreGroupedIndexInResult.length;
 
     do {
+      Column[] result = new Column[resultColumnsCount];
       // contains unPreGrouped group by columns and value columns
       TsBlock buildResult = aggregationBuilder.buildResult();
 
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformAggregationToStreamable.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformAggregationToStreamable.java
index 60944e152d4..afd709a70af 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformAggregationToStreamable.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformAggregationToStreamable.java
@@ -28,6 +28,7 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationN
 import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
 import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
 import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode;
+import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortBasedGroupNode;
 import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode;
 import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode;
 
@@ -137,7 +138,9 @@ public class TransformAggregationToStreamable implements 
PlanOptimizer {
       return dataOrganizationSpecification
           .<List<Symbol>>map(
               organizationSpecification ->
-                  
ImmutableList.copyOf(organizationSpecification.getPartitionBy()))
+                  organizationSpecification.getPartitionBy().stream()
+                      .filter(context.groupingKeys::contains)
+                      .collect(Collectors.toList()))
           .orElseGet(ImmutableList::of);
     }
 

Reply via email to