This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch lmh/calcInputLocationListDebug in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 9b68247bb98e936a7c0d71c90052cd4c2c5df21f Author: Minghui Liu <[email protected]> AuthorDate: Thu Jun 2 15:31:57 2022 +0800 set grouped path to TypeProvider --- .../main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java | 3 ++- .../apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java | 6 +++++- .../org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java index 8418241072..2e8ac3a942 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java @@ -655,7 +655,8 @@ public class Analyzer { Set<Expression> transformExpressions, Map<Expression, Expression> rawPathToGroupedPathMap) { GroupByLevelController groupByLevelController = - new GroupByLevelController(queryStatement.getGroupByLevelComponent().getLevels()); + new GroupByLevelController( + queryStatement.getGroupByLevelComponent().getLevels(), typeProvider); for (Pair<Expression, String> measurementWithAlias : outputExpressions) { groupByLevelController.control(measurementWithAlias.left, measurementWithAlias.right); } diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java index 6055bc930c..a13353518e 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java @@ -61,12 +61,15 @@ public class GroupByLevelController { */ private final Map<String, String> aliasToColumnMap; - public GroupByLevelController(int[] levels) { + private final TypeProvider typeProvider; + + public GroupByLevelController(int[] levels, TypeProvider typeProvider) { this.levels = levels; this.groupedPathMap = new LinkedHashMap<>(); this.rawPathToGroupedPathMap = new HashMap<>(); this.columnToAliasMap = new HashMap<>(); this.aliasToColumnMap = new HashMap<>(); + this.typeProvider = typeProvider; } public void control(Expression expression, String alias) { @@ -77,6 +80,7 @@ public class GroupByLevelController { PartialPath rawPath = ((TimeSeriesOperand) expression.getExpressions().get(0)).getPath(); PartialPath groupedPath = generatePartialPathByLevel(rawPath.getNodes(), levels); + typeProvider.setType(groupedPath.getFullPath(), rawPath.getSeriesType()); Expression rawPathExpression = new TimeSeriesOperand(rawPath); Expression groupedPathExpression = new TimeSeriesOperand(groupedPath); diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java index f85a8eb809..2a248a7f1f 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java @@ -840,7 +840,7 @@ public class LocalExecutionPlanner { context .getTypeProvider() // get the type of first inputExpression - .getType(inputColumnNames.get(0)), + .getType(descriptor.getInputExpressions().get(0).getExpressionString()), ascending), descriptor.getStep(), inputLocationList));
