You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/11/11 13:49:11 UTC
[iotdb] branch master updated: [IOTDB-1000] Read redundant data
while select with value filter with unseq data (#2020)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin 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 adcb89c [IOTDB-1000] Read redundant data while select with value filter with unseq data (#2020)
adcb89c is described below
commit adcb89c77e7ed154692e22ee2f95d1ca871c18cd
Author: Xiangwei Wei <34...@users.noreply.github.com>
AuthorDate: Wed Nov 11 21:49:00 2020 +0800
[IOTDB-1000] Read redundant data while select with value filter with unseq data (#2020)
---
.../apache/iotdb/db/query/reader/series/SeriesReader.java | 6 ++++++
.../apache/iotdb/db/integration/IoTDBOverlappedPageIT.java | 14 +++++++++++++-
2 files changed, 19 insertions(+), 1 deletion(-)
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 e0618ff..c116da8 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
@@ -410,6 +410,12 @@ public class SeriesReader {
while (firstPageReader == null && (!seqPageReaders.isEmpty() || !unSeqPageReaders.isEmpty())) {
initFirstPageReader();
+ if (firstPageReader != null) {
+ long endpointTime = orderUtils.getOverlapCheckTime(firstPageReader.getStatistics());
+ unpackAllOverlappedTsFilesToTimeSeriesMetadata(endpointTime);
+ unpackAllOverlappedTimeSeriesMetadataToCachedChunkMetadata(endpointTime, false);
+ unpackAllOverlappedChunkMetadataToCachedPageReaders(endpointTime, false);
+ }
if (firstPageOverlapped()) {
/*
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 daea618..bbfcf64 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
@@ -115,17 +115,29 @@ public class IoTDBOverlappedPageIT {
statement.execute(sql);
}
statement.execute("flush");
+
+ for (long time = 11; time <= 20; time++) {
+ String sql = String
+ .format("insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time+100);
+ statement.execute(sql);
+ }
for (long time = 100; time <= 120; time++) {
String sql = String
.format("insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time);
statement.execute(sql);
}
statement.execute("flush");
- for (long time = 1; time <= 20; time++) {
+
+ for (long time = 1; time <= 10; time++) {
String sql = String
.format("insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time+100);
statement.execute(sql);
}
+ for (long time = 11; time <= 20; time++) {
+ String sql = String
+ .format("insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time+100);
+ statement.execute(sql);
+ }
statement.execute("flush");
} catch (Exception e) {
e.printStackTrace();