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

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


The following commit(s) were added to refs/heads/UnseqImprove by this push:
     new 9770de8  add some todo
9770de8 is described below

commit 9770de8de06e3dfb2cddf870a128589a85474e2b
Author: JackieTien97 <[email protected]>
AuthorDate: Sat Oct 10 10:26:22 2020 +0800

    add some todo
---
 .../iotdb/db/query/reader/series/SeriesReader.java | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 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 2054f87..9d02268 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
@@ -96,12 +96,12 @@ public class SeriesReader {
    */
   private VersionPageReader firstPageReader;
   private final List<VersionPageReader> seqPageReaders = new LinkedList<>();
-  private PriorityQueue<VersionPageReader> unseqPageReaders;
+  private final PriorityQueue<VersionPageReader> unseqPageReaders;
 
   /*
    * point cache
    */
-  private PriorityMergeReader mergeReader;
+  private final PriorityMergeReader mergeReader;
 
   /*
    * result cache
@@ -464,8 +464,20 @@ public class SeriesReader {
       unpackOneChunkMetaData(firstChunkMetadata);
       firstChunkMetadata = null;
     }
-    if (init && firstPageReader == null && !unseqPageReaders.isEmpty()) {
-      firstPageReader = unseqPageReaders.poll();
+    if (init && firstPageReader == null && (!seqPageReaders.isEmpty() || 
!unseqPageReaders.isEmpty())) {
+      // TODO think over desc
+      if (!seqPageReaders.isEmpty() && !unseqPageReaders.isEmpty()) {
+        if (seqPageReaders.get(0).getStatistics().getStartTime() < 
unseqPageReaders.peek()
+            .getStatistics().getStartTime()) {
+          firstPageReader = seqPageReaders.remove(0);
+        } else {
+          firstPageReader = unseqPageReaders.poll();
+        }
+      } else if (!seqPageReaders.isEmpty()) {
+        firstPageReader = seqPageReaders.remove(0);
+      } else {
+        firstPageReader = unseqPageReaders.poll();
+      }
     }
   }
 
@@ -474,6 +486,7 @@ public class SeriesReader {
     FileLoaderUtils.loadPageReaderList(chunkMetaData, timeFilter).forEach(
         pageReader -> {
           if (chunkMetaData.isSeq()) {
+            // TODO think over desc: addFirst for desc; addLast for asc
             seqPageReaders.add(new 
VersionPageReader(chunkMetaData.getVersion(), pageReader, true));
           } else {
             unseqPageReaders
@@ -666,6 +679,7 @@ public class SeriesReader {
     /*
      * init firstPageReader
      */
+    // TODO
     if (firstPageReader == null) {
       if (!seqPageReaders.isEmpty() && !unseqPageReaders.isEmpty()) {
         if (seqPageReaders.get(0).getStatistics().getStartTime() < 
unseqPageReaders.peek()

Reply via email to