This is an automated email from the ASF dual-hosted git repository.

hui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 327e07bf22 Fix Last Query Bug for Aligned (#6038)
327e07bf22 is described below

commit 327e07bf22b410df2d3febe96593813943a11b1c
Author: Jackie Tien <[email protected]>
AuthorDate: Fri May 27 08:52:38 2022 +0800

    Fix Last Query Bug for Aligned (#6038)
---
 .../iotdb/db/mpp/execution/operator/LastQueryUtil.java     | 14 ++++++++++++--
 .../iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java   |  5 +++--
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/LastQueryUtil.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/LastQueryUtil.java
index 19e9571171..0ec8d36dd6 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/LastQueryUtil.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/LastQueryUtil.java
@@ -22,6 +22,7 @@ import org.apache.iotdb.db.mpp.aggregation.Aggregator;
 import org.apache.iotdb.db.mpp.aggregation.LastValueDescAccumulator;
 import org.apache.iotdb.db.mpp.aggregation.MaxTimeDescAccumulator;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.AggregationStep;
+import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.InputLocation;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.TimeValuePair;
 import org.apache.iotdb.tsfile.read.common.block.TsBlockBuilder;
@@ -33,6 +34,7 @@ import org.apache.iotdb.tsfile.utils.Binary;
 import com.google.common.collect.ImmutableList;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 public class LastQueryUtil {
@@ -67,8 +69,16 @@ public class LastQueryUtil {
   public static List<Aggregator> createAggregators(TSDataType dataType) {
     // max_time, last_value
     List<Aggregator> aggregators = new ArrayList<>(2);
-    aggregators.add(new Aggregator(new MaxTimeDescAccumulator(), 
AggregationStep.SINGLE));
-    aggregators.add(new Aggregator(new LastValueDescAccumulator(dataType), 
AggregationStep.SINGLE));
+    aggregators.add(
+        new Aggregator(
+            new MaxTimeDescAccumulator(),
+            AggregationStep.SINGLE,
+            Collections.singletonList(new InputLocation[] {new 
InputLocation(0, 0)})));
+    aggregators.add(
+        new Aggregator(
+            new LastValueDescAccumulator(dataType),
+            AggregationStep.SINGLE,
+            Collections.singletonList(new InputLocation[] {new 
InputLocation(0, 0)})));
     return aggregators;
   }
 
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 26d9306095..9e37b44da9 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
@@ -1148,7 +1148,7 @@ public class LocalExecutionPlanner {
               UpdateLastCacheOperator.class.getSimpleName()),
           lastQueryScan,
           node.getSeriesPath(),
-          node.getSeriesPath().getSeriesType(),
+          node.getSeriesPath().getSchemaList().get(0).getType(),
           DATA_NODE_SCHEMA_CACHE,
           context.needUpdateLastCache);
     }
@@ -1163,7 +1163,8 @@ public class LocalExecutionPlanner {
               AlignedSeriesAggregationScanOperator.class.getSimpleName());
 
       // last_time, last_value
-      List<Aggregator> aggregators = 
LastQueryUtil.createAggregators(seriesPath.getSeriesType());
+      List<Aggregator> aggregators =
+          
LastQueryUtil.createAggregators(seriesPath.getSchemaList().get(0).getType());
       AlignedSeriesAggregationScanOperator seriesAggregationScanOperator =
           new AlignedSeriesAggregationScanOperator(
               node.getPlanNodeId(),

Reply via email to