This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch optimize_series_reader
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/optimize_series_reader by this
push:
new fe759e8 remove set chunkmetadata=null in hasNextChunk
fe759e8 is described below
commit fe759e8b8282eb0764ac9034fab750b0590c8125
Author: qiaojialin <[email protected]>
AuthorDate: Sun Mar 1 18:36:17 2020 +0800
remove set chunkmetadata=null in hasNextChunk
---
.../iotdb/db/query/reader/series/SeriesReader.java | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 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 7b5fc3e..ddd4b4e 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
@@ -125,7 +125,6 @@ public class SeriesReader {
.hasNextTimeValuePair()) {
throw new IOException("all cached pages should be consumed first");
}
- firstChunkMetaData = null;
// init first chunk metadata whose startTime is minimum
tryToUnpackAllOverlappedFilesToChunkMetadatas();
@@ -237,6 +236,7 @@ public class SeriesReader {
BatchData pageData = firstPageReader.data.getAllSatisfiedPageData();
firstPageReader = null;
+
/*
* no value filter
* only need to consider valueFilter because timeFilter has been set into
the page reader
@@ -400,10 +400,10 @@ public class SeriesReader {
QueryUtils.modifyChunkMetaData(currentChunkMetaDataList,
pathModifications);
}
- for (ChunkMetaData data : currentChunkMetaDataList) {
+ for (ChunkMetaData chunkMetaData : currentChunkMetaDataList) {
TsFileSequenceReader tsFileSequenceReader =
FileReaderManager.getInstance()
.get(resource, resource.isClosed());
- data.setChunkLoader(new DiskChunkLoader(tsFileSequenceReader));
+ chunkMetaData.setChunkLoader(new DiskChunkLoader(tsFileSequenceReader));
}
List<ReadOnlyMemChunk> memChunks = resource.getReadOnlyMemChunk();
if (memChunks != null) {
@@ -414,10 +414,12 @@ public class SeriesReader {
}
}
- if (timeFilter != null) {
- currentChunkMetaDataList.removeIf(
- a -> !timeFilter.satisfyStartEndTime(a.getStartTime(),
a.getEndTime()));
- }
+ /*
+ * remove empty and not satisfied ChunkMetaData
+ */
+ currentChunkMetaDataList.removeIf(chunkMetaData -> (timeFilter != null &&
!timeFilter
+ .satisfyStartEndTime(chunkMetaData.getStartTime(),
chunkMetaData.getEndTime()))
+ || chunkMetaData.getStartTime() > chunkMetaData.getEndTime());
return currentChunkMetaDataList;
}