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() {
