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