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

liudw pushed a commit to branch reverse_reader
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/reverse_reader by this push:
     new 825620d  fix asc all test error
825620d is described below

commit 825620ddc65d12ebf78590190cddc432dffed931
Author: liudw <[email protected]>
AuthorDate: Fri Aug 7 17:48:16 2020 +0800

    fix asc all test error
---
 .../query/reader/series/SeriesAggregateReader.java |  3 +-
 .../reader/series/SeriesRawDataBatchReader.java    |  4 +--
 .../iotdb/db/query/reader/series/SeriesReader.java | 34 +++++++++++++---------
 .../reader/series/SeriesReaderByTimestamp.java     |  7 +++--
 .../db/query/reader/series/SeriesReaderTest.java   |  4 +--
 5 files changed, 31 insertions(+), 21 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesAggregateReader.java
 
b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesAggregateReader.java
index be9afc4..bc4c20f 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesAggregateReader.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesAggregateReader.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.query.reader.series;
 import org.apache.iotdb.db.engine.querycontext.QueryDataSource;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.filter.TsFileFilter;
+import org.apache.iotdb.db.query.reader.series.SeriesReader.AscTimeOrderUtils;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.file.metadata.statistics.Statistics;
 import org.apache.iotdb.tsfile.read.common.BatchData;
@@ -39,7 +40,7 @@ public class SeriesAggregateReader implements 
IAggregateReader {
       QueryContext context, QueryDataSource dataSource, Filter timeFilter, 
Filter valueFilter,
       TsFileFilter fileFilter) {
     this.seriesReader = new SeriesReader(seriesPath, allSensors, dataType, 
context, dataSource,
-        timeFilter, valueFilter, fileFilter);
+        timeFilter, valueFilter, fileFilter, true);
   }
 
   @Override
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesRawDataBatchReader.java
 
b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesRawDataBatchReader.java
index cdb0523..6f96c47 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesRawDataBatchReader.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesRawDataBatchReader.java
@@ -51,7 +51,7 @@ public class SeriesRawDataBatchReader implements 
ManagedSeriesReader {
       QueryContext context, QueryDataSource dataSource, Filter timeFilter, 
Filter valueFilter,
       TsFileFilter fileFilter) {
     this.seriesReader = new SeriesReader(seriesPath, allSensors, dataType, 
context, dataSource,
-        timeFilter, valueFilter, fileFilter);
+        timeFilter, valueFilter, fileFilter, true);
   }
 
   @TestOnly
@@ -61,7 +61,7 @@ public class SeriesRawDataBatchReader implements 
ManagedSeriesReader {
     Set<String> allSensors = new HashSet<>();
     allSensors.add(seriesPath.getMeasurement());
     this.seriesReader = new SeriesReader(seriesPath, allSensors, dataType, 
context,
-        seqFileResource, unseqFileResource, timeFilter, valueFilter);
+        seqFileResource, unseqFileResource, timeFilter, valueFilter, true);
   }
 
   /**
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 9527244..1508024 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
@@ -213,25 +213,19 @@ public class SeriesReader {
    */
   private TimeseriesMetadata firstTimeSeriesMetadata;
   private final List<TimeseriesMetadata> seqTimeSeriesMetadata = new 
LinkedList<>();
-  private final PriorityQueue<TimeseriesMetadata> unSeqTimeSeriesMetadata =
-      new PriorityQueue<>(orderUtils.comparingLong(
-          timeSeriesMetadata -> 
orderUtils.getOrderTime(timeSeriesMetadata.getStatistics())));
+  private final PriorityQueue<TimeseriesMetadata> unSeqTimeSeriesMetadata;
 
   /*
    * chunk cache
    */
   private ChunkMetadata firstChunkMetadata;
-  private final PriorityQueue<ChunkMetadata> cachedChunkMetadata =
-      new PriorityQueue<>(orderUtils.comparingLong(
-          chunkMetadata -> 
orderUtils.getOrderTime(chunkMetadata.getStatistics())));
+  private final PriorityQueue<ChunkMetadata> cachedChunkMetadata;
 
   /*
    * page cache
    */
   private VersionPageReader firstPageReader;
-  private PriorityQueue<VersionPageReader> cachedPageReaders =
-      new PriorityQueue<>(orderUtils.comparingLong(
-          versionPageReader -> 
orderUtils.getOrderTime(versionPageReader.getStatistics())));
+  private PriorityQueue<VersionPageReader> cachedPageReaders;
 
   /*
    * point cache
@@ -253,8 +247,6 @@ public class SeriesReader {
     this.dataType = dataType;
     this.context = context;
     QueryUtils.filterQueryDataSource(dataSource, fileFilter);
-    this.seqFileResource = new LinkedList<>(dataSource.getSeqResources());
-    this.unseqFileResource = 
sortUnSeqFileResources(dataSource.getUnseqResources());
     this.timeFilter = timeFilter;
     this.valueFilter = valueFilter;
     if (ascending) {
@@ -262,6 +254,15 @@ public class SeriesReader {
     } else {
       this.orderUtils = new DescTimeOrderUtils();
     }
+
+    this.seqFileResource = new LinkedList<>(dataSource.getSeqResources());
+    this.unseqFileResource = 
sortUnSeqFileResources(dataSource.getUnseqResources());
+    unSeqTimeSeriesMetadata = new PriorityQueue<>(orderUtils.comparingLong(
+        timeSeriesMetadata -> 
orderUtils.getOrderTime(timeSeriesMetadata.getStatistics())));
+    cachedChunkMetadata = new PriorityQueue<>(orderUtils.comparingLong(
+        chunkMetadata -> 
orderUtils.getOrderTime(chunkMetadata.getStatistics())));
+    cachedPageReaders = new PriorityQueue<>(orderUtils.comparingLong(
+        versionPageReader -> 
orderUtils.getOrderTime(versionPageReader.getStatistics())));
   }
 
   @TestOnly
@@ -272,8 +273,6 @@ public class SeriesReader {
     this.allSensors = allSensors;
     this.dataType = dataType;
     this.context = context;
-    this.seqFileResource = new LinkedList<>(seqFileResource);
-    this.unseqFileResource = sortUnSeqFileResources(unseqFileResource);
     this.timeFilter = timeFilter;
     this.valueFilter = valueFilter;
     if (ascending) {
@@ -281,6 +280,15 @@ public class SeriesReader {
     } else {
       this.orderUtils = new DescTimeOrderUtils();
     }
+
+    this.seqFileResource = new LinkedList<>(seqFileResource);
+    this.unseqFileResource = sortUnSeqFileResources(unseqFileResource);
+    unSeqTimeSeriesMetadata = new PriorityQueue<>(orderUtils.comparingLong(
+        timeSeriesMetadata -> 
orderUtils.getOrderTime(timeSeriesMetadata.getStatistics())));
+    cachedChunkMetadata = new PriorityQueue<>(orderUtils.comparingLong(
+        chunkMetadata -> 
orderUtils.getOrderTime(chunkMetadata.getStatistics())));
+    cachedPageReaders = new PriorityQueue<>(orderUtils.comparingLong(
+        versionPageReader -> 
orderUtils.getOrderTime(versionPageReader.getStatistics())));
   }
 
   public boolean isEmpty() {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReaderByTimestamp.java
 
b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReaderByTimestamp.java
index e7f5da6..41a7434 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReaderByTimestamp.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReaderByTimestamp.java
@@ -35,10 +35,11 @@ public class SeriesReaderByTimestamp implements 
IReaderByTimestamp {
   private SeriesReader seriesReader;
   private BatchData batchData;
 
-  public SeriesReaderByTimestamp(Path seriesPath, Set<String> allSensors,  
TSDataType dataType, QueryContext context,
-                                 QueryDataSource dataSource, TsFileFilter 
fileFilter) {
+  public SeriesReaderByTimestamp(Path seriesPath, Set<String> allSensors, 
TSDataType dataType,
+      QueryContext context,
+      QueryDataSource dataSource, TsFileFilter fileFilter) {
     seriesReader = new SeriesReader(seriesPath, allSensors, dataType, context,
-        dataSource, TimeFilter.gtEq(Long.MIN_VALUE), null, fileFilter);
+        dataSource, TimeFilter.gtEq(Long.MIN_VALUE), null, fileFilter, true);
   }
 
   public SeriesReaderByTimestamp(SeriesReader seriesReader) {
diff --git 
a/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTest.java
 
b/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTest.java
index 861ef47..024f87d 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTest.java
@@ -72,7 +72,7 @@ public class SeriesReaderTest {
       allSensors.add("sensor0");
       SeriesReader seriesReader = new SeriesReader(
           new Path(SERIES_READER_TEST_SG + PATH_SEPARATOR + "device0", 
"sensor0"), allSensors,
-          TSDataType.INT32, new QueryContext(), seqResources, unseqResources, 
null, null);
+          TSDataType.INT32, new QueryContext(), seqResources, unseqResources, 
null, null, true);
       IBatchReader batchReader = new SeriesRawDataBatchReader(seriesReader);
       int count = 0;
       while (batchReader.hasNextBatch()) {
@@ -107,7 +107,7 @@ public class SeriesReaderTest {
       allSensors.add("sensor0");
       SeriesReader seriesReader = new SeriesReader(
           new Path(SERIES_READER_TEST_SG + PATH_SEPARATOR + "device0", 
"sensor0"), allSensors,
-          TSDataType.INT32, new QueryContext(), seqResources, unseqResources, 
null, null);
+          TSDataType.INT32, new QueryContext(), seqResources, unseqResources, 
null, null, true);
       IPointReader pointReader = new SeriesRawDataPointReader(seriesReader);
       long expectedTime = 0;
       while (pointReader.hasNextTimeValuePair()) {

Reply via email to