This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch lmh/fixGroupByLevelView in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit acab6e0cc291d1f44565c0f9773696d5078f4235 Author: Minghui Liu <[email protected]> AuthorDate: Mon May 20 00:13:22 2024 +0800 fix --- .../iotdb/db/queryengine/plan/analyze/GroupByLevelHelper.java | 2 -- .../queryengine/plan/planner/distribution/SourceRewriter.java | 10 ++++++---- .../plan/planner/plan/parameter/AggregationDescriptor.java | 2 +- .../plan/parameter/CrossSeriesAggregationDescriptor.java | 4 ++++ 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/GroupByLevelHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/GroupByLevelHelper.java index 5f21cd65885..a210b9627ef 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/GroupByLevelHelper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/GroupByLevelHelper.java @@ -103,8 +103,6 @@ public class GroupByLevelHelper { path -> transformPathByLevels(isCountStar, path)); groupedOutputAggregationExpression = normalizeExpression(groupedOutputAggregationExpression); analyzeExpressionType(analysis, groupedOutputAggregationExpression); - - rawAggregationExpression = ExpressionAnalyzer.normalizeExpression(rawAggregationExpression); analyzeExpressionType(analysis, rawAggregationExpression); groupedAggregationExpressionToRawExpressionsMap diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java index 3ee8167c662..e8c0ee1f5dc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java @@ -1556,12 +1556,14 @@ public class SourceRewriter extends BaseSourceRewriter<DistributionPlanContext> descriptorExpressions.addAll(originalDescriptor.getOutputExpressions()); } - for (String groupedInputExpressionString : - originalDescriptor.getGroupedInputExpressionStrings()) { + for (List<Expression> groupedInputExpressions : + originalDescriptor.getGroupedInputExpressions()) { + String groupedInputExpressionsString = + originalDescriptor.getInputString(groupedInputExpressions); List<Expression> inputExpressions = - childrenExpressionMap.get(groupedInputExpressionString); + childrenExpressionMap.get(groupedInputExpressionsString); if (inputExpressions != null && !inputExpressions.isEmpty()) { - descriptorExpressions.addAll(inputExpressions); + descriptorExpressions.addAll(groupedInputExpressions); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/AggregationDescriptor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/AggregationDescriptor.java index d266de50aaa..364769f0f41 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/AggregationDescriptor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/AggregationDescriptor.java @@ -263,7 +263,7 @@ public class AggregationDescriptor { return Collections.singletonList(getInputString(inputExpressions)); } - protected String getInputString(List<Expression> expressions) { + public String getInputString(List<Expression> expressions) { StringBuilder builder = new StringBuilder(); if (!(expressions.size() == 0)) { builder.append(expressions.get(0).getExpressionString()); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/CrossSeriesAggregationDescriptor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/CrossSeriesAggregationDescriptor.java index bc50d59d334..d986baf2faa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/CrossSeriesAggregationDescriptor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/CrossSeriesAggregationDescriptor.java @@ -168,6 +168,10 @@ public class CrossSeriesAggregationDescriptor extends AggregationDescriptor { return groupedInputExpressions.stream().map(this::getInputString).collect(Collectors.toList()); } + public List<List<Expression>> getGroupedInputExpressions() { + return groupedInputExpressions; + } + public StringBuilder getOutputExpressionsAsBuilder() { StringBuilder builder = new StringBuilder(outputExpressions.get(0).getExpressionString()); for (int i = 1; i < outputExpressions.size(); i++) {
