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

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

commit 5dae4b57b96572948aa1fde0082bfe63c8990ba8
Author: Alima777 <[email protected]>
AuthorDate: Thu Jun 2 11:38:28 2022 +0800

    handle null() in aggregationOp
---
 .../db/mpp/execution/operator/process/AggregationOperator.java   | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/AggregationOperator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/AggregationOperator.java
index 3b5beb32eb..73ac2bb3c1 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/AggregationOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/AggregationOperator.java
@@ -98,7 +98,13 @@ public class AggregationOperator implements ProcessOperator {
     // update input tsBlock
     curTimeRange = timeRangeIterator.nextTimeRange();
     for (int i = 0; i < inputOperatorsCount; i++) {
+      if (inputTsBlocks[i] != null) {
+        continue;
+      }
       inputTsBlocks[i] = children.get(i).next();
+      if (inputTsBlocks[i] == null) {
+        return null;
+      }
     }
     // consume current input tsBlocks
     for (Aggregator aggregator : aggregators) {
@@ -106,6 +112,9 @@ public class AggregationOperator implements ProcessOperator 
{
       aggregator.processTsBlocks(inputTsBlocks);
     }
     // output result from aggregator
+    for (int i = 0; i < inputOperatorsCount; i++) {
+      inputTsBlocks[i] = null;
+    }
     return updateResultTsBlockFromAggregators(tsBlockBuilder, aggregators, 
timeRangeIterator);
   }
 

Reply via email to