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

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

commit a90e80f6f2e537ed29548b649fa6082814e54683
Author: Alima777 <[email protected]>
AuthorDate: Fri Sep 17 15:12:22 2021 +0800

    Fix cursor bug2
---
 .../iotdb/db/query/executor/AggregationExecutor.java | 16 ++++++++--------
 .../reader/series/VectorSeriesAggregateReader.java   | 20 +++++++++++---------
 2 files changed, 19 insertions(+), 17 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/executor/AggregationExecutor.java
 
b/server/src/main/java/org/apache/iotdb/db/query/executor/AggregationExecutor.java
index 608d294..486556c 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/executor/AggregationExecutor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/executor/AggregationExecutor.java
@@ -393,7 +393,7 @@ public class AggregationExecutor {
     while (seriesReader.hasNextFile()) {
       // cal by file statistics
       if (seriesReader.canUseCurrentFileStatistics()) {
-        while (seriesReader.getCurIndex() < seriesReader.getSubSensorSize()) {
+        while (seriesReader.hasNextSubSeries()) {
           Statistics fileStatistics = seriesReader.currentFileStatistics();
           remainingToCalculate =
               aggregateStatistics(
@@ -405,7 +405,7 @@ public class AggregationExecutor {
             seriesReader.resetIndex();
             return;
           }
-          seriesReader.nextIndex();
+          seriesReader.nextSeries();
         }
         seriesReader.skipCurrentFile();
         continue;
@@ -414,7 +414,7 @@ public class AggregationExecutor {
       while (seriesReader.hasNextChunk()) {
         // cal by chunk statistics
         if (seriesReader.canUseCurrentChunkStatistics()) {
-          while (seriesReader.getCurIndex() < seriesReader.getSubSensorSize()) 
{
+          while (seriesReader.hasNextSubSeries()) {
             Statistics chunkStatistics = seriesReader.currentChunkStatistics();
             remainingToCalculate =
                 aggregateStatistics(
@@ -426,7 +426,7 @@ public class AggregationExecutor {
               seriesReader.resetIndex();
               return;
             }
-            seriesReader.nextIndex();
+            seriesReader.nextSeries();
           }
           seriesReader.skipCurrentChunk();
           continue;
@@ -506,7 +506,7 @@ public class AggregationExecutor {
     while (seriesReader.hasNextPage()) {
       // cal by page statistics
       if (seriesReader.canUseCurrentPageStatistics()) {
-        while (seriesReader.getCurIndex() < seriesReader.getSubSensorSize()) {
+        while (seriesReader.hasNextSubSeries()) {
           Statistics pageStatistic = seriesReader.currentPageStatistics();
           remainingToCalculate =
               aggregateStatistics(
@@ -518,7 +518,7 @@ public class AggregationExecutor {
             seriesReader.resetIndex();
             return 0;
           }
-          seriesReader.nextIndex();
+          seriesReader.nextSeries();
         }
         seriesReader.skipCurrentPage();
         continue;
@@ -526,7 +526,7 @@ public class AggregationExecutor {
 
       BatchData nextOverlappedPageData = seriesReader.nextPage();
       BatchData[] subBatchData = nextOverlappedPageData.generateSubBatchData();
-      while (seriesReader.getCurIndex() < seriesReader.getSubSensorSize()) {
+      while (seriesReader.hasNextSubSeries()) {
         remainingToCalculate =
             aggregateBatchData(
                 aggregateResultList.get(seriesReader.getCurIndex()),
@@ -537,7 +537,7 @@ public class AggregationExecutor {
           seriesReader.resetIndex();
           return 0;
         }
-        seriesReader.nextIndex();
+        seriesReader.nextSeries();
       }
     }
     return remainingToCalculate;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/reader/series/VectorSeriesAggregateReader.java
 
b/server/src/main/java/org/apache/iotdb/db/query/reader/series/VectorSeriesAggregateReader.java
index b3fddca..4084da5 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/reader/series/VectorSeriesAggregateReader.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/reader/series/VectorSeriesAggregateReader.java
@@ -148,19 +148,21 @@ public class VectorSeriesAggregateReader implements 
IAggregateReader {
         || timeFilter.containStartEndTime(statistics.getStartTime(), 
statistics.getEndTime());
   }
 
-  public int getCurIndex() {
-    return curIndex;
+  public boolean hasNextSubSeries() {
+    if (getCurIndex() < subSensorSize) {
+      return true;
+    } else {
+      resetIndex();
+      return false;
+    }
   }
 
-  public int getSubSensorSize() {
-    return subSensorSize;
+  public void nextSeries() {
+    curIndex++;
   }
 
-  public void nextIndex() {
-    curIndex++;
-    if (curIndex >= subSensorSize) {
-      resetIndex();
-    }
+  public int getCurIndex() {
+    return curIndex;
   }
 
   public void resetIndex() {

Reply via email to