You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ro...@apache.org on 2021/09/09 09:33:29 UTC

[iotdb] branch nested-operations updated: fix constructRowSlidingSizeWindowReader

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

rong pushed a commit to branch nested-operations
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/nested-operations by this push:
     new 9508c40  fix constructRowSlidingSizeWindowReader
9508c40 is described below

commit 9508c405f017c1cf6bd852d2148727057bb8c3bc
Author: Steve Yurong Su <ro...@apache.org>
AuthorDate: Thu Sep 9 17:32:58 2021 +0800

    fix constructRowSlidingSizeWindowReader
---
 .../udf/core/layer/MultiInputColumnIntermediateLayer.java  | 11 +++++++----
 .../SingleInputColumnMultiReferenceIntermediateLayer.java  | 14 ++++++++------
 .../SingleInputColumnSingleReferenceIntermediateLayer.java | 14 ++++++++------
 3 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/MultiInputColumnIntermediateLayer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/MultiInputColumnIntermediateLayer.java
index dc8ba01..ddbc67c 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/MultiInputColumnIntermediateLayer.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/MultiInputColumnIntermediateLayer.java
@@ -214,15 +214,18 @@ public class MultiInputColumnIntermediateLayer extends IntermediateLayer
 
         int rowsToBeCollected = endIndex - rowRecordList.size();
         if (0 < rowsToBeCollected) {
-          hasCached =
-              LayerCacheUtils.cacheRows(udfInputDataSet, rowRecordList, rowsToBeCollected) != 0;
+          LayerCacheUtils.cacheRows(udfInputDataSet, rowRecordList, rowsToBeCollected);
+          if (rowRecordList.size() <= beginIndex) {
+            return false;
+          }
+
           window.seek(beginIndex, rowRecordList.size());
         } else {
-          hasCached = true;
           window.seek(beginIndex, endIndex);
         }
 
-        return hasCached;
+        hasCached = true;
+        return true;
       }
 
       @Override
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnMultiReferenceIntermediateLayer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnMultiReferenceIntermediateLayer.java
index 8e8b1f1..855cdc2 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnMultiReferenceIntermediateLayer.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnMultiReferenceIntermediateLayer.java
@@ -208,17 +208,19 @@ public class SingleInputColumnMultiReferenceIntermediateLayer extends Intermedia
 
         int pointsToBeCollected = endIndex - tvList.size();
         if (0 < pointsToBeCollected) {
-          hasCached =
-              LayerCacheUtils.cachePoints(
-                      dataType, parentLayerPointReader, tvList, pointsToBeCollected)
-                  != 0;
+          LayerCacheUtils.cachePoints(
+              dataType, parentLayerPointReader, tvList, pointsToBeCollected);
+          if (tvList.size() <= beginIndex) {
+            return false;
+          }
+
           window.seek(beginIndex, tvList.size());
         } else {
-          hasCached = true;
           window.seek(beginIndex, endIndex);
         }
 
-        return hasCached;
+        hasCached = true;
+        return true;
       }
 
       @Override
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnSingleReferenceIntermediateLayer.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnSingleReferenceIntermediateLayer.java
index f3cefcb..fcc8266 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnSingleReferenceIntermediateLayer.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnSingleReferenceIntermediateLayer.java
@@ -126,17 +126,19 @@ public class SingleInputColumnSingleReferenceIntermediateLayer extends Intermedi
 
         int pointsToBeCollected = endIndex - tvList.size();
         if (0 < pointsToBeCollected) {
-          hasCached =
-              LayerCacheUtils.cachePoints(
-                      dataType, parentLayerPointReader, tvList, pointsToBeCollected)
-                  != 0;
+          LayerCacheUtils.cachePoints(
+              dataType, parentLayerPointReader, tvList, pointsToBeCollected);
+          if (tvList.size() <= beginIndex) {
+            return false;
+          }
+
           window.seek(beginIndex, tvList.size());
         } else {
-          hasCached = true;
           window.seek(beginIndex, endIndex);
         }
 
-        return hasCached;
+        hasCached = true;
+        return true;
       }
 
       @Override