You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2020/11/19 02:13:07 UTC

[iotdb] branch master updated: fix series bug

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

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


The following commit(s) were added to refs/heads/master by this push:
     new ff6f352  fix series bug
     new e43a812  Merge pull request #2073 from Alima777/iotdb1016
ff6f352 is described below

commit ff6f352091373fb15340ee506b4a67f13345ef9b
Author: Alima777 <52...@qq.com>
AuthorDate: Wed Nov 18 22:47:48 2020 +0800

    fix series bug
---
 .../iotdb/db/query/reader/series/SeriesReader.java       | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
index c116da8..8aa4176 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
@@ -433,14 +433,17 @@ public class SeriesReader {
     return firstPageReader != null;
   }
 
-  private boolean firstPageOverlapped() {
+  private boolean firstPageOverlapped() throws IOException {
     if (firstPageReader == null) {
       return false;
     }
     return (!seqPageReaders.isEmpty() && orderUtils
         .isOverlapped(firstPageReader.getStatistics(), seqPageReaders.get(0).getStatistics())) || (
-        !unSeqPageReaders.isEmpty() && orderUtils.isOverlapped(firstPageReader.getStatistics(),
-            unSeqPageReaders.peek().getStatistics()));
+        !unSeqPageReaders.isEmpty() && orderUtils
+            .isOverlapped(firstPageReader.getStatistics(), unSeqPageReaders.peek().getStatistics())
+            || (mergeReader.hasNextTimeValuePair()
+            && mergeReader.currentTimeValuePair().getTimestamp() > firstPageReader.getStatistics()
+            .getStartTime()));
   }
 
   private void unpackAllOverlappedChunkMetadataToCachedPageReaders(long endpointTime, boolean init)
@@ -502,8 +505,8 @@ public class SeriesReader {
     if (mergeReader.hasNextTimeValuePair() &&
         ((orderUtils.getAscending() && mergeReader.currentTimeValuePair().getTimestamp() <=
             firstPageReader.getStatistics().getEndTime()) ||
-        (!orderUtils.getAscending() && mergeReader.currentTimeValuePair().getTimestamp() >=
-            firstPageReader.getStatistics().getStartTime()))) {
+            (!orderUtils.getAscending() && mergeReader.currentTimeValuePair().getTimestamp() >=
+                firstPageReader.getStatistics().getStartTime()))) {
       throw new IOException("overlapped data should be consumed first");
     }
 
@@ -617,7 +620,8 @@ public class SeriesReader {
                   .addReader(firstPageReader.getAllSatisfiedPageData(orderUtils.getAscending())
                           .getBatchDataIterator(), firstPageReader.version,
                       orderUtils.getOverlapCheckTime(firstPageReader.getStatistics()));
-              currentPageEndPointTime = updateEndPointTime(currentPageEndPointTime, firstPageReader);
+              currentPageEndPointTime = updateEndPointTime(currentPageEndPointTime,
+                  firstPageReader);
               firstPageReader = null;
             }
           }