This is an automated email from the ASF dual-hosted git repository. xingtanzjr pushed a commit to branch fix_agg_descriptor in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit dd757cdfe0a6b19fbace16108908275f49f771c7 Author: Jinrui.Zhang <[email protected]> AuthorDate: Thu Jun 2 11:31:35 2022 +0800 remove duplicated InputExpression for GroupByLevel --- .../iotdb/db/mpp/plan/planner/distribution/SourceRewriter.java | 10 +++++----- .../iotdb/db/mpp/plan/planner/plan/node/PlanGraphPrinter.java | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/SourceRewriter.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/SourceRewriter.java index 41cda1a735..c646930fc1 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/SourceRewriter.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/SourceRewriter.java @@ -650,25 +650,25 @@ public class SourceRewriter extends SimplePlanNodeRewriter<DistributionPlanConte // AggregationDescriptor List<GroupByLevelDescriptor> descriptorList = new ArrayList<>(); for (GroupByLevelDescriptor originalDescriptor : handle.getGroupByLevelDescriptors()) { - List<Expression> descriptorExpression = new ArrayList<>(); + Set<Expression> descriptorExpressions = new HashSet<>(); for (String childColumn : childrenOutputColumns) { // If this condition matched, the childColumn should come from GroupByLevelNode if (isAggColumnMatchExpression(childColumn, originalDescriptor.getOutputExpression())) { - descriptorExpression.add(originalDescriptor.getOutputExpression()); + descriptorExpressions.add(originalDescriptor.getOutputExpression()); continue; } for (Expression exp : originalDescriptor.getInputExpressions()) { if (isAggColumnMatchExpression(childColumn, exp)) { - descriptorExpression.add(exp); + descriptorExpressions.add(exp); } } } - if (descriptorExpression.size() == 0) { + if (descriptorExpressions.size() == 0) { continue; } GroupByLevelDescriptor descriptor = originalDescriptor.deepClone(); descriptor.setStep(level == 0 ? AggregationStep.FINAL : AggregationStep.INTERMEDIATE); - descriptor.setInputExpressions(descriptorExpression); + descriptor.setInputExpressions(new ArrayList<>(descriptorExpressions)); descriptorList.add(descriptor); LogicalPlanBuilder.updateTypeProviderByPartialAggregation( descriptor, analysis.getTypeProvider()); diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanGraphPrinter.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanGraphPrinter.java index 4e3ce79d52..72345865a1 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanGraphPrinter.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/PlanGraphPrinter.java @@ -173,7 +173,8 @@ public class PlanGraphPrinter extends PlanVisitor<List<String>, PlanGraphPrinter boxValue.add( String.format( "Aggregator-%d: %s, %s", i, descriptor.getAggregationType(), descriptor.getStep())); - boxValue.add(String.format("Output-%d: %s", i, descriptor.getOutputColumnNames())); + boxValue.add(String.format(" Output: %s", descriptor.getOutputColumnNames())); + boxValue.add(String.format(" Input: %s", descriptor.getInputExpressions())); } return render(node, boxValue, context); }
