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); }
