This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch lmh/GroupByLevelDebug in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 1df07db51aa157a77fed87eafb28b4d39126d86f Author: liuminghui233 <[email protected]> AuthorDate: Wed Jun 1 23:16:29 2022 +0800 refactor LocalExecutionPlanner --- .../db/mpp/plan/planner/LocalExecutionPlanner.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) 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 fc1f737abd..36a03d21f8 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 @@ -958,11 +958,20 @@ public class LocalExecutionPlanner { AggregationDescriptor descriptor, Map<String, List<InputLocation>> layout) { List<List<String>> inputColumnNames = descriptor.getInputColumnNamesList(); List<InputLocation[]> inputLocationList = new ArrayList<>(); + for (List<String> inputColumnNamesOfOneInput : inputColumnNames) { - checkArgument( - inputColumnNamesOfOneInput.size() == 1 || inputColumnNamesOfOneInput.size() == 2); - for (String inputColumnName : inputColumnNamesOfOneInput) { - inputLocationList.add(layout.get(inputColumnName).toArray(new InputLocation[0])); + // it may include double parts + List<List<InputLocation>> inputLocationParts = new ArrayList<>(); + inputColumnNamesOfOneInput.forEach(o -> inputLocationParts.add(layout.get(o))); + for (int i = 0; i < inputLocationParts.get(0).size(); i++) { + if (inputColumnNamesOfOneInput.size() == 1) { + inputLocationList.add(new InputLocation[] {inputLocationParts.get(0).get(i)}); + } else { + inputLocationList.add( + new InputLocation[] { + inputLocationParts.get(0).get(i), inputLocationParts.get(1).get(i) + }); + } } } return inputLocationList;
