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;

Reply via email to