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/04/13 11:42:07 UTC

[incubator-iotdb] branch tyPageBug updated: add value filter

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

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


The following commit(s) were added to refs/heads/tyPageBug by this push:
     new 0bae14c  add value filter
0bae14c is described below

commit 0bae14ccd760f006dacd43585ebf0294a3702a96
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Mon Apr 13 19:41:52 2020 +0800

    add value filter
---
 .../iotdb/db/query/reader/series/SeriesReader.java    | 19 ++++++++++---------
 .../db/query/timegenerator/ServerTimeGenerator.java   |  2 +-
 2 files changed, 11 insertions(+), 10 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 5b63a84..8ed9e86 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
@@ -146,8 +146,7 @@ class SeriesReader {
     if (!cachedPageReaders.isEmpty()
             || firstPageReader != null
             || mergeReader.hasNextTimeValuePair()) {
-      System.out.println("cachedPageReaders.isEmpty() is " + cachedPageReaders.isEmpty() + " firstPageReader != null is " + (firstPageReader != null) + " mergeReader.hasNextTimeValuePair() = " + mergeReader.hasNextTimeValuePair());
-      throw new IOException("all cached pages should be consumed first");
+      throw new IOException("all cached pages should be consumed first cachedPageReaders.isEmpty() is " + cachedPageReaders.isEmpty() + " firstPageReader != null is " + (firstPageReader != null) + " mergeReader.hasNextTimeValuePair() = " + mergeReader.hasNextTimeValuePair());
     }
 
     if (firstChunkMetadata != null
@@ -193,9 +192,7 @@ class SeriesReader {
     if (!cachedPageReaders.isEmpty()
         || firstPageReader != null
         || mergeReader.hasNextTimeValuePair()) {
-      // cachedPageReaders.isEmpty() is false firstPageReader != null is false mergeReader.hasNextTimeValuePair() = false
-      System.out.println("cachedPageReaders.isEmpty() is " + cachedPageReaders.isEmpty() + " firstPageReader != null is " + (firstPageReader != null) + " mergeReader.hasNextTimeValuePair() = " + mergeReader.hasNextTimeValuePair());
-      throw new IOException("all cached pages should be consumed first");
+      throw new IOException("all cached pages should be consumed first cachedPageReaders.isEmpty() is " + cachedPageReaders.isEmpty() + " firstPageReader != null is " + (firstPageReader != null) + " mergeReader.hasNextTimeValuePair() = " + mergeReader.hasNextTimeValuePair());
     }
 
     if (firstChunkMetadata != null) {
@@ -546,7 +543,7 @@ class SeriesReader {
      * Fill sequence TimeSeriesMetadata List until it is not empty
      */
     while (seqTimeSeriesMetadata.isEmpty() && !seqFileResource.isEmpty()) {
-      TimeseriesMetadata timeseriesMetadata = FileLoaderUtils.loadTimeSeriesMetadata(seqFileResource.remove(0), seriesPath, context, timeFilter, allSensors);
+      TimeseriesMetadata timeseriesMetadata = FileLoaderUtils.loadTimeSeriesMetadata(seqFileResource.remove(0), seriesPath, context, getAnyFilter(), allSensors);
       if (timeseriesMetadata != null) {
         seqTimeSeriesMetadata.add(timeseriesMetadata);
       }
@@ -556,7 +553,7 @@ class SeriesReader {
      * Fill unSequence TimeSeriesMetadata Priority Queue until it is not empty
      */
     while (unSeqTimeSeriesMetadata.isEmpty() && !unseqFileResource.isEmpty()) {
-      TimeseriesMetadata timeseriesMetadata = FileLoaderUtils.loadTimeSeriesMetadata(unseqFileResource.remove(0), seriesPath, context, timeFilter, allSensors);
+      TimeseriesMetadata timeseriesMetadata = FileLoaderUtils.loadTimeSeriesMetadata(unseqFileResource.remove(0), seriesPath, context, getAnyFilter(), allSensors);
       if (timeseriesMetadata != null) {
         unSeqTimeSeriesMetadata.add(timeseriesMetadata);
       }
@@ -611,19 +608,23 @@ class SeriesReader {
 
   private void unpackAllOverlappedTsFilesToTimeSeriesMetadata(long endTime) throws IOException {
     while (!unseqFileResource.isEmpty() && endTime >= unseqFileResource.get(0).getStartTimeMap().get(seriesPath.getDevice())) {
-      TimeseriesMetadata timeseriesMetadata = FileLoaderUtils.loadTimeSeriesMetadata(unseqFileResource.remove(0), seriesPath, context, timeFilter, allSensors);
+      TimeseriesMetadata timeseriesMetadata = FileLoaderUtils.loadTimeSeriesMetadata(unseqFileResource.remove(0), seriesPath, context, getAnyFilter(), allSensors);
       if (timeseriesMetadata != null) {
         unSeqTimeSeriesMetadata.add(timeseriesMetadata);
       }
     }
     while (!seqFileResource.isEmpty() && endTime >= seqFileResource.get(0).getStartTimeMap().get(seriesPath.getDevice())) {
-      TimeseriesMetadata timeseriesMetadata = FileLoaderUtils.loadTimeSeriesMetadata(seqFileResource.remove(0), seriesPath, context, timeFilter, allSensors);
+      TimeseriesMetadata timeseriesMetadata = FileLoaderUtils.loadTimeSeriesMetadata(seqFileResource.remove(0), seriesPath, context, getAnyFilter(), allSensors);
       if (timeseriesMetadata != null) {
         seqTimeSeriesMetadata.add(timeseriesMetadata);
       }
     }
   }
 
+  private Filter getAnyFilter() {
+    return timeFilter != null ? timeFilter : valueFilter;
+  }
+
   void setTimeFilter(long timestamp) {
     ((UnaryFilter) timeFilter).setValue(timestamp);
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/timegenerator/ServerTimeGenerator.java b/server/src/main/java/org/apache/iotdb/db/query/timegenerator/ServerTimeGenerator.java
index b37f8c5..a2a5a50 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/timegenerator/ServerTimeGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/timegenerator/ServerTimeGenerator.java
@@ -71,7 +71,7 @@ public class ServerTimeGenerator extends TimeGenerator {
     QueryDataSource queryDataSource;
     try {
       dataType = MManager.getInstance().getSeriesType(path.getFullPath());
-      queryDataSource = QueryResourceManager.getInstance().getQueryDataSource(path, context, null);
+      queryDataSource = QueryResourceManager.getInstance().getQueryDataSource(path, context, filter);
       // update filter by TTL
       filter = queryDataSource.updateFilterUsingTTL(filter);
     } catch (Exception e) {