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 10:15:10 UTC

[iotdb] branch nested-operations updated: fix IoTDBUDFWindowQueryIT

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 3e024c1  fix IoTDBUDFWindowQueryIT
3e024c1 is described below

commit 3e024c1141a9fc299d16e80bd7d43dd9ed1c1883
Author: Steve Yurong Su <ro...@apache.org>
AuthorDate: Thu Sep 9 18:14:24 2021 +0800

    fix IoTDBUDFWindowQueryIT
---
 .../db/query/udf/core/layer/MultiInputColumnIntermediateLayer.java   | 5 ++++-
 .../core/layer/SingleInputColumnMultiReferenceIntermediateLayer.java | 5 ++++-
 .../layer/SingleInputColumnSingleReferenceIntermediateLayer.java     | 5 ++++-
 3 files changed, 12 insertions(+), 3 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 ddbc67c..89034eb 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
@@ -277,6 +277,7 @@ public class MultiInputColumnIntermediateLayer extends IntermediateLayer
 
     return new LayerRowWindowReader() {
 
+      private boolean hasCached = false;
       private long nextWindowTimeBegin = finalNextWindowTimeBeginGivenByStrategy;
       private int nextIndexBegin = 0;
 
@@ -285,7 +286,7 @@ public class MultiInputColumnIntermediateLayer extends IntermediateLayer
         if (displayWindowEnd <= nextWindowTimeBegin) {
           return false;
         }
-        if (!hasAtLeastOneRow || 0 < rowRecordList.size()) {
+        if (hasCached || !hasAtLeastOneRow) {
           return true;
         }
 
@@ -322,11 +323,13 @@ public class MultiInputColumnIntermediateLayer extends IntermediateLayer
         }
         window.seek(nextIndexBegin, nextIndexEnd);
 
+        hasCached = true;
         return true;
       }
 
       @Override
       public void readyForNext() {
+        hasCached = false;
         nextWindowTimeBegin += slidingStep;
 
         rowRecordList.setEvictionUpperBound(nextIndexBegin + 1);
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 855cdc2..100d77f 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
@@ -270,6 +270,7 @@ public class SingleInputColumnMultiReferenceIntermediateLayer extends Intermedia
 
     return new LayerRowWindowReader() {
 
+      private boolean hasCached = false;
       private long nextWindowTimeBegin = finalNextWindowTimeBeginGivenByStrategy;
       private int nextIndexBegin = 0;
 
@@ -278,7 +279,7 @@ public class SingleInputColumnMultiReferenceIntermediateLayer extends Intermedia
         if (displayWindowEnd <= nextWindowTimeBegin) {
           return false;
         }
-        if (!hasAtLeastOneRow || 0 < tvList.size()) {
+        if (hasCached || !hasAtLeastOneRow) {
           return true;
         }
 
@@ -315,11 +316,13 @@ public class SingleInputColumnMultiReferenceIntermediateLayer extends Intermedia
         }
         window.seek(nextIndexBegin, nextIndexEnd);
 
+        hasCached = true;
         return true;
       }
 
       @Override
       public void readyForNext() {
+        hasCached = false;
         nextWindowTimeBegin += slidingStep;
 
         safetyPile.moveForwardTo(nextIndexBegin + 1);
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 fcc8266..16977ae 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
@@ -187,6 +187,7 @@ public class SingleInputColumnSingleReferenceIntermediateLayer extends Intermedi
 
     return new LayerRowWindowReader() {
 
+      private boolean hasCached = false;
       private long nextWindowTimeBegin = finalNextWindowTimeBeginGivenByStrategy;
       private int nextIndexBegin = 0;
 
@@ -195,7 +196,7 @@ public class SingleInputColumnSingleReferenceIntermediateLayer extends Intermedi
         if (displayWindowEnd <= nextWindowTimeBegin) {
           return false;
         }
-        if (!hasAtLeastOneRow || 0 < tvList.size()) {
+        if (hasCached || !hasAtLeastOneRow) {
           return true;
         }
 
@@ -232,11 +233,13 @@ public class SingleInputColumnSingleReferenceIntermediateLayer extends Intermedi
         }
         window.seek(nextIndexBegin, nextIndexEnd);
 
+        hasCached = true;
         return true;
       }
 
       @Override
       public void readyForNext() {
+        hasCached = false;
         nextWindowTimeBegin += slidingStep;
       }