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

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

commit 3246312c02de4b0f2f90a8c0e74b81e4e6ea9d5a
Author: JackieTien97 <[email protected]>
AuthorDate: Tue Apr 14 11:14:09 2020 +0800

    modify IT and code
---
 .../iotdb/db/query/reader/series/SeriesReader.java |  8 +++++--
 .../db/integration/IoTDBOverlappedPageIT.java      | 25 +++-------------------
 2 files changed, 9 insertions(+), 24 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 8ed9e86..5ee198c 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
@@ -274,7 +274,7 @@ class SeriesReader {
     if (hasCachedNextOverlappedPage) {
       return true;
     } else if (mergeReader.hasNextTimeValuePair()) {
-      while (hasNextOverlappedPage()) {
+      if (hasNextOverlappedPage()) {
         cachedBatchData = nextOverlappedPage();
         if (cachedBatchData != null && cachedBatchData.hasCurrent()) {
           hasCachedNextOverlappedPage = true;
@@ -311,7 +311,7 @@ class SeriesReader {
       /*
        * next page is overlapped, read overlapped data and cache it
        */
-      while (hasNextOverlappedPage()) {
+      if (hasNextOverlappedPage()) {
         cachedBatchData = nextOverlappedPage();
         if (cachedBatchData != null && cachedBatchData.hasCurrent()) {
           hasCachedNextOverlappedPage = true;
@@ -320,6 +320,10 @@ class SeriesReader {
       }
     }
 
+    // make sure firstPageReader won't be null while cachedPageReaders has 
more cached page readers
+    if (firstPageReader == null && !cachedPageReaders.isEmpty()) {
+      firstPageReader = cachedPageReaders.poll();
+    }
     return firstPageReader != null;
   }
 
diff --git 
a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBOverlappedPageIT.java
 
b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBOverlappedPageIT.java
index 238855e..d6c3593 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBOverlappedPageIT.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBOverlappedPageIT.java
@@ -68,16 +68,7 @@ public class IoTDBOverlappedPageIT {
 
   @Test
   public void selectOverlappedPageTest() {
-    String[] res = {"1,101",
-            "2,102",
-            "3,103",
-            "4,104",
-            "5,105",
-            "6,106",
-            "7,107",
-            "8,108",
-            "9,109",
-            "10,110",
+    String[] res = {
             "11,111",
             "12,112",
             "13,113",
@@ -88,22 +79,12 @@ public class IoTDBOverlappedPageIT {
             "18,118",
             "19,119",
             "20,120",
-            "100,100",
-            "101,101",
-            "102,102",
-            "103,103",
-            "104,104",
-            "105,105",
-            "106,106",
-            "107,107",
-            "108,108",
-            "109,109",
-            "110,110"};
+    };
 
     try (Connection connection = DriverManager
             .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", 
"root", "root");
          Statement statement = connection.createStatement()) {
-      String sql = "select s0 from root.vehicle.d0 where time >= 1 and time <= 
110 AND root.vehicle.d0.s0 > 3";
+      String sql = "select s0 from root.vehicle.d0 where time >= 1 and time <= 
110 AND root.vehicle.d0.s0 > 110";
       ResultSet resultSet = statement.executeQuery(sql);
       int cnt = 0;
       while (resultSet.next()) {

Reply via email to