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:14:01 UTC
[iotdb] branch rel/0.11 updated: [To rel/0.11] [IOTDB-1016]
overlapped data should be consumed first (#2074)
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch rel/0.11
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/0.11 by this push:
new d114e80 [To rel/0.11] [IOTDB-1016] overlapped data should be consumed first (#2074)
d114e80 is described below
commit d114e809d89b50b207c5565daaa461d692b7ab76
Author: Xiangwei Wei <34...@users.noreply.github.com>
AuthorDate: Thu Nov 19 10:13:51 2020 +0800
[To rel/0.11] [IOTDB-1016] overlapped data should be consumed first (#2074)
* fix seriesReader bug
* remove import
* 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;
}
}