You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by su...@apache.org on 2019/06/25 04:01:56 UTC

[incubator-iotdb] branch feature_async_close_tsfile updated (c3a36d1 -> 8c30b4a)

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

suyue pushed a change to branch feature_async_close_tsfile
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git.


    from c3a36d1  Merge branch 'feature_async_close_tsfile' of github.com:apache/incubator-iotdb into feature_async_close_tsfile
     add 0550925  fix bug of jira-121
     add 75f0c34  Merge branch 'feature_async_close_tsfile' of https://github.com/apache/incubator-iotdb into feature_async_close_tsfile
     add bb1c101  fix bug of query on value columns
     new d73668e  format query
     new f42d8eb  format query
     new 8c30b4a  Merge branch 'feature_async_close_tsfile' of https://github.com/apache/incubator-iotdb into feature_async_close_tsfile

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../engine/bufferwrite/BufferWriteProcessor.java   |   4 +-
 .../db/engine/filenode/FileNodeProcessor.java      |   2 +-
 .../db/qp/executor/IQueryProcessExecutor.java      |   8 +-
 .../groupby/GroupByWithValueFilterDataSet.java     |   2 +-
 .../db/query/executor/AggregateEngineExecutor.java |   6 +-
 ...rWithTimeGenerator.java => EngineExecutor.java} |  63 ++++-
 .../EngineExecutorWithoutTimeGenerator.java        | 103 -------
 .../iotdb/db/query/executor/EngineQueryRouter.java |  17 +-
 .../db/query/executor/FillEngineExecutor.java      |   2 +-
 .../db/query/factory/ISeriesReaderFactory.java     |  12 +-
 .../db/query/factory/SeriesReaderFactory.java      | 312 ---------------------
 .../db/query/factory/SeriesReaderFactoryImpl.java  |   8 +-
 .../java/org/apache/iotdb/db/query/fill/IFill.java |   2 +-
 .../query/reader/sequence/SealedTsFilesReader.java | 183 ------------
 .../sequence/SealedTsFilesReaderByTimestamp.java   | 136 ---------
 .../query/reader/sequence/SequenceDataReader.java  | 148 ----------
 .../sequence/SequenceDataReaderByTimestamp.java    | 108 -------
 .../reader/sequence/UnSealedTsFileReader.java      | 101 -------
 .../sequence/UnSealedTsFilesReaderByTimestamp.java |  64 -----
 .../query/timegenerator/EngineNodeConstructor.java |   3 +-
 .../org/apache/iotdb/db/service/StartupChecks.java |   2 +-
 .../org/apache/iotdb/db/service/TSServiceImpl.java |   4 +-
 .../iotdb/db/integration/IoTDBAuthorizationIT.java |   2 +-
 .../iotdb/db/integration/IoTDBLargeDataIT.java     |   4 +-
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |   4 +-
 .../iotdb/db/integration/IoTDBSeriesReaderIT.java  |   4 +-
 .../iotdb/db/integration/IoTDBTimeZoneIT.java      |   2 +-
 .../org/apache/iotdb/db/qp/plan/QPUpdateTest.java  |   2 +-
 .../SequenceDataReaderByTimestampTest.java         |  91 ------
 ...reateByTimestampReadersOfSelectedPathsTest.java |   2 +-
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |   6 +
 31 files changed, 103 insertions(+), 1304 deletions(-)
 rename iotdb/src/main/java/org/apache/iotdb/db/query/executor/{EngineExecutorWithTimeGenerator.java => EngineExecutor.java} (60%)
 delete mode 100644 iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutorWithoutTimeGenerator.java
 delete mode 100644 iotdb/src/main/java/org/apache/iotdb/db/query/factory/SeriesReaderFactory.java
 delete mode 100644 iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SealedTsFilesReader.java
 delete mode 100644 iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SealedTsFilesReaderByTimestamp.java
 delete mode 100644 iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReader.java
 delete mode 100644 iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReaderByTimestamp.java
 delete mode 100644 iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/UnSealedTsFileReader.java
 delete mode 100644 iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/UnSealedTsFilesReaderByTimestamp.java
 delete mode 100644 iotdb/src/test/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReaderByTimestampTest.java


[incubator-iotdb] 01/03: format query

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit d73668e37f38397203b016121b0a3b65d93e1876
Author: suyue <23...@qq.com>
AuthorDate: Tue Jun 25 11:43:07 2019 +0800

    format query
---
 .../engine/bufferwrite/BufferWriteProcessor.java   |   4 +-
 .../db/engine/filenode/FileNodeProcessor.java      |   2 +-
 .../db/qp/executor/IQueryProcessExecutor.java      |   8 +-
 .../groupby/GroupByWithValueFilterDataSet.java     |   2 +-
 .../db/query/executor/AggregateEngineExecutor.java |   6 +-
 ...rWithTimeGenerator.java => EngineExecutor.java} |  63 ++++-
 .../EngineExecutorWithoutTimeGenerator.java        | 103 -------
 .../iotdb/db/query/executor/EngineQueryRouter.java |  17 +-
 .../db/query/executor/FillEngineExecutor.java      |   2 +-
 .../db/query/factory/ISeriesReaderFactory.java     |  12 +-
 .../db/query/factory/SeriesReaderFactory.java      | 314 ---------------------
 .../db/query/factory/SeriesReaderFactoryImpl.java  |   8 +-
 .../java/org/apache/iotdb/db/query/fill/IFill.java |   2 +-
 .../query/reader/sequence/SealedTsFilesReader.java | 183 ------------
 .../sequence/SealedTsFilesReaderByTimestamp.java   | 136 ---------
 .../query/reader/sequence/SequenceDataReader.java  | 148 ----------
 .../sequence/SequenceDataReaderByTimestamp.java    | 108 -------
 .../reader/sequence/UnSealedTsFileReader.java      | 101 -------
 .../sequence/UnSealedTsFilesReaderByTimestamp.java |  64 -----
 .../query/timegenerator/EngineNodeConstructor.java |   2 +-
 .../org/apache/iotdb/db/service/StartupChecks.java |   2 +-
 .../org/apache/iotdb/db/service/TSServiceImpl.java |   4 +-
 .../iotdb/db/integration/IoTDBAuthorizationIT.java |   2 +-
 .../iotdb/db/integration/IoTDBLargeDataIT.java     |   4 +-
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |   4 +-
 .../iotdb/db/integration/IoTDBSeriesReaderIT.java  |   4 +-
 .../iotdb/db/integration/IoTDBTimeZoneIT.java      |   2 +-
 .../org/apache/iotdb/db/qp/plan/QPUpdateTest.java  |   2 +-
 .../SequenceDataReaderByTimestampTest.java         |  91 ------
 ...reateByTimestampReadersOfSelectedPathsTest.java |   2 +-
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |   6 +
 31 files changed, 102 insertions(+), 1306 deletions(-)

diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/bufferwrite/BufferWriteProcessor.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/bufferwrite/BufferWriteProcessor.java
index 5608246..243c43e 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/bufferwrite/BufferWriteProcessor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/bufferwrite/BufferWriteProcessor.java
@@ -224,7 +224,7 @@ public class BufferWriteProcessor extends Processor {
           LOGGER.info("BufferWriteProcessor.insert step2 of SAFE cost: {}", start2);
           Map<MemTableWriteTimeCostType, long[]> map = MemTableWriteTimeCost.getInstance().getTimeCostMaps().get(Thread.currentThread().getName());
           for(MemTableWriteTimeCostType type: MemTableWriteTimeCostType.values()){
-            LOGGER.info("In BufferWriteProcessor.insert step2 of SAFE, {} cost {} ms, execute {} times", type, map.get(type)[1], map.get(type)[0]);
+            LOGGER.info("In BufferWriteProcessor.insert step2 of SAFE, {} cost {} ms, executeWithOutTimeGenerator {} times", type, map.get(type)[1], map.get(type)[0]);
           }
         }
         checkMemThreshold4Flush(memUsage);
@@ -243,7 +243,7 @@ public class BufferWriteProcessor extends Processor {
           LOGGER.info("BufferWriteProcessor.insert step2 of WARNING cost: {}", start2);
           Map<MemTableWriteTimeCostType, long[]> map = MemTableWriteTimeCost.getInstance().getTimeCostMaps().get(Thread.currentThread().getName());
           for(MemTableWriteTimeCostType type: MemTableWriteTimeCostType.values()){
-            LOGGER.info("In BufferWriteProcessor.insert step2 of WARNING, {} cost {} ms, execute {} times", type, map.get(type)[1], map.get(type)[0]);
+            LOGGER.info("In BufferWriteProcessor.insert step2 of WARNING, {} cost {} ms, executeWithOutTimeGenerator {} times", type, map.get(type)[1], map.get(type)[0]);
           }
         }
         try {
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/filenode/FileNodeProcessor.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/filenode/FileNodeProcessor.java
index e7df8dd..be1eb2c 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/filenode/FileNodeProcessor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/filenode/FileNodeProcessor.java
@@ -456,7 +456,7 @@
 //  }
 //
 //  /**
-//   * execute filenode recovery.
+//   * executeWithOutTimeGenerator filenode recovery.
 //   */
 //  public void recover() throws FileNodeProcessorException {
 //    // restore sequential files
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/qp/executor/IQueryProcessExecutor.java b/iotdb/src/main/java/org/apache/iotdb/db/qp/executor/IQueryProcessExecutor.java
index 2ffab93..16bca0e 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/qp/executor/IQueryProcessExecutor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/qp/executor/IQueryProcessExecutor.java
@@ -78,7 +78,7 @@ public interface IQueryProcessExecutor {
       throws ProcessorException, IOException, PathErrorException, FileNodeManagerException;
 
   /**
-   * execute update command and return whether the operator is successful.
+   * executeWithOutTimeGenerator update command and return whether the operator is successful.
    *
    * @param path : update series seriesPath
    * @param startTime start time in update command
@@ -90,7 +90,7 @@ public interface IQueryProcessExecutor {
       throws ProcessorException;
 
   /**
-   * execute delete command and return whether the operator is successful.
+   * executeWithOutTimeGenerator delete command and return whether the operator is successful.
    *
    * @param deletePlan physical delete plan
    * @return - whether the operator is successful.
@@ -98,7 +98,7 @@ public interface IQueryProcessExecutor {
   boolean delete(DeletePlan deletePlan) throws ProcessorException;
 
   /**
-   * execute delete command and return whether the operator is successful.
+   * executeWithOutTimeGenerator delete command and return whether the operator is successful.
    *
    * @param path : delete series seriesPath
    * @param deleteTime end time in delete command
@@ -107,7 +107,7 @@ public interface IQueryProcessExecutor {
   boolean delete(Path path, long deleteTime) throws ProcessorException;
 
   /**
-   * execute insert command and return whether the operator is successful.
+   * executeWithOutTimeGenerator insert command and return whether the operator is successful.
    *
    * @return - Operate Type.
    */
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithValueFilterDataSet.java b/iotdb/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithValueFilterDataSet.java
index cbaad17..d984d57 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithValueFilterDataSet.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByWithValueFilterDataSet.java
@@ -78,7 +78,7 @@ public class GroupByWithValueFilterDataSet extends GroupByEngineDataSet {
         .getInstance().beginQueryOfGivenQueryPaths(context.getJobId(), selectedSeries);
     this.timestampGenerator = new EngineTimeGenerator(expression, context);
     this.allDataReaderList = SeriesReaderFactoryImpl.getInstance()
-        .createByTimestampReadersOfSelectedPaths(selectedSeries, context);
+        .createByTimestampReaders(selectedSeries, context);
   }
 
   @Override
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/executor/AggregateEngineExecutor.java b/iotdb/src/main/java/org/apache/iotdb/db/query/executor/AggregateEngineExecutor.java
index c6fb944..6ff9741 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/executor/AggregateEngineExecutor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/executor/AggregateEngineExecutor.java
@@ -76,7 +76,7 @@ public class AggregateEngineExecutor {
   }
 
   /**
-   * execute aggregate function with only time filter or no filter.
+   * executeWithOutTimeGenerator aggregate function with only time filter or no filter.
    *
    * @param context query context
    */
@@ -253,7 +253,7 @@ public class AggregateEngineExecutor {
 
 
   /**
-   * execute aggregate function with value filter.
+   * executeWithOutTimeGenerator aggregate function with value filter.
    *
    * @param context query context.
    */
@@ -265,7 +265,7 @@ public class AggregateEngineExecutor {
 
     EngineTimeGenerator timestampGenerator = new EngineTimeGenerator(expression, context);
     List<EngineReaderByTimeStamp> readersOfSelectedSeries = SeriesReaderFactoryImpl.getInstance()
-        .createByTimestampReadersOfSelectedPaths(selectedSeries, context);
+        .createByTimestampReaders(selectedSeries, context);
 
     List<AggregateFunction> aggregateFunctions = new ArrayList<>();
     for (int i = 0; i < selectedSeries.size(); i++) {
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutorWithTimeGenerator.java b/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutor.java
similarity index 60%
rename from iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutorWithTimeGenerator.java
rename to iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutor.java
index c7cdde6..362ad7b 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutorWithTimeGenerator.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutor.java
@@ -16,45 +16,86 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.iotdb.db.query.executor;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
 import org.apache.iotdb.db.exception.FileNodeManagerException;
 import org.apache.iotdb.db.exception.PathErrorException;
 import org.apache.iotdb.db.metadata.MManager;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.control.QueryResourceManager;
 import org.apache.iotdb.db.query.dataset.EngineDataSetWithTimeGenerator;
+import org.apache.iotdb.db.query.dataset.EngineDataSetWithoutTimeGenerator;
 import org.apache.iotdb.db.query.factory.SeriesReaderFactoryImpl;
+import org.apache.iotdb.db.query.reader.IPointReader;
 import org.apache.iotdb.db.query.reader.merge.EngineReaderByTimeStamp;
 import org.apache.iotdb.db.query.timegenerator.EngineTimeGenerator;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.common.Path;
 import org.apache.iotdb.tsfile.read.expression.QueryExpression;
+import org.apache.iotdb.tsfile.read.expression.impl.GlobalTimeExpression;
+import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
- * IoTDB query executor with value filter.
+ * IoTDB query executor of Stand-alone version with global time filter.
  */
-public class EngineExecutorWithTimeGenerator {
+public class EngineExecutor {
 
   private QueryExpression queryExpression;
 
-  EngineExecutorWithTimeGenerator(QueryExpression queryExpression) {
+  public EngineExecutor(QueryExpression queryExpression) {
     this.queryExpression = queryExpression;
   }
 
   /**
-   * execute query.
+   * without filter or with global time filter.
+   */
+  public QueryDataSet executeWithOutTimeGenerator(QueryContext context)
+      throws FileNodeManagerException, IOException {
+
+    Filter timeFilter = null;
+    if (queryExpression.hasQueryFilter()) {
+      timeFilter = ((GlobalTimeExpression) queryExpression.getExpression()).getFilter();
+    }
+
+    List<IPointReader> readersOfSelectedSeries = new ArrayList<>();
+    List<TSDataType> dataTypes = new ArrayList<>();
+
+    QueryResourceManager.getInstance()
+        .beginQueryOfGivenQueryPaths(context.getJobId(), queryExpression.getSelectedSeries());
+
+    for (Path path : queryExpression.getSelectedSeries()) {
+
+      // add data type
+      try {
+        dataTypes.add(MManager.getInstance().getSeriesType(path.getFullPath()));
+      } catch (PathErrorException e) {
+        throw new FileNodeManagerException(e);
+      }
+
+      IPointReader reader = SeriesReaderFactoryImpl.getInstance()
+          .createReaderWithOptGlobalTimeFilter(path, timeFilter, context);
+      readersOfSelectedSeries.add(reader);
+    }
+
+    try {
+      return new EngineDataSetWithoutTimeGenerator(queryExpression.getSelectedSeries(), dataTypes,
+          readersOfSelectedSeries);
+    } catch (IOException e) {
+      throw new FileNodeManagerException(e);
+    }
+  }
+
+  /**
+   * executeWithOutTimeGenerator query.
    *
    * @return QueryDataSet object
    * @throws FileNodeManagerException FileNodeManagerException
    */
-  public QueryDataSet execute(QueryContext context) throws FileNodeManagerException, IOException {
+  public QueryDataSet executeWithTimeGenerator(QueryContext context) throws FileNodeManagerException, IOException {
 
     QueryResourceManager.getInstance()
         .beginQueryOfGivenQueryPaths(context.getJobId(), queryExpression.getSelectedSeries());
@@ -66,7 +107,7 @@ public class EngineExecutorWithTimeGenerator {
 
     timestampGenerator = new EngineTimeGenerator(queryExpression.getExpression(), context);
     readersOfSelectedSeries = SeriesReaderFactoryImpl.getInstance()
-        .createByTimestampReadersOfSelectedPaths(queryExpression.getSelectedSeries(), context);
+        .createByTimestampReaders(queryExpression.getSelectedSeries(), context);
 
     List<TSDataType> dataTypes = new ArrayList<>();
 
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutorWithoutTimeGenerator.java b/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutorWithoutTimeGenerator.java
deleted file mode 100644
index 14b0b2e..0000000
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutorWithoutTimeGenerator.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.query.executor;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.iotdb.db.exception.FileNodeManagerException;
-import org.apache.iotdb.db.exception.PathErrorException;
-import org.apache.iotdb.db.metadata.MManager;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.control.QueryResourceManager;
-import org.apache.iotdb.db.query.dataset.EngineDataSetWithoutTimeGenerator;
-import org.apache.iotdb.db.query.factory.SeriesReaderFactoryImpl;
-import org.apache.iotdb.db.query.reader.IPointReader;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.read.common.Path;
-import org.apache.iotdb.tsfile.read.expression.QueryExpression;
-import org.apache.iotdb.tsfile.read.expression.impl.GlobalTimeExpression;
-import org.apache.iotdb.tsfile.read.filter.basic.Filter;
-import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
-
-/**
- * IoTDB query executor of Stand-alone version with global time filter.
- */
-public class EngineExecutorWithoutTimeGenerator {
-
-  private QueryExpression queryExpression;
-
-  public EngineExecutorWithoutTimeGenerator(QueryExpression queryExpression) {
-    this.queryExpression = queryExpression;
-  }
-
-  /**
-   * without filter or with global time filter.
-   */
-  public QueryDataSet execute(QueryContext context)
-      throws FileNodeManagerException, IOException {
-
-    Filter timeFilter = null;
-    if (queryExpression.hasQueryFilter()) {
-      timeFilter = ((GlobalTimeExpression) queryExpression.getExpression()).getFilter();
-    }
-
-    List<IPointReader> readersOfSelectedSeries = new ArrayList<>();
-    List<TSDataType> dataTypes = new ArrayList<>();
-
-    QueryResourceManager.getInstance()
-        .beginQueryOfGivenQueryPaths(context.getJobId(), queryExpression.getSelectedSeries());
-
-    for (Path path : queryExpression.getSelectedSeries()) {
-
-      IPointReader reader = createSeriesReader(context, path, dataTypes, timeFilter);
-      readersOfSelectedSeries.add(reader);
-    }
-
-    try {
-      return new EngineDataSetWithoutTimeGenerator(queryExpression.getSelectedSeries(), dataTypes,
-          readersOfSelectedSeries);
-    } catch (IOException e) {
-      throw new FileNodeManagerException(e);
-    }
-  }
-
-  /**
-   * Create reader of a series
-   *
-   * @param context query context
-   * @param path series path
-   * @param dataTypes list of data type
-   * @param timeFilter time filter
-   * @return reader of the series
-   */
-  public static IPointReader createSeriesReader(QueryContext context, Path path,
-      List<TSDataType> dataTypes, Filter timeFilter)
-      throws FileNodeManagerException, IOException {
-    // add data type
-    try {
-      dataTypes.add(MManager.getInstance().getSeriesType(path.getFullPath()));
-    } catch (PathErrorException e) {
-      throw new FileNodeManagerException(e);
-    }
-
-    return SeriesReaderFactoryImpl.getInstance()
-        .createTimeFilterAllDataReader(path, timeFilter, context);
-  }
-}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineQueryRouter.java b/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineQueryRouter.java
index 9c61dcb..a2257d5 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineQueryRouter.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineQueryRouter.java
@@ -47,7 +47,7 @@ import org.apache.iotdb.tsfile.utils.Pair;
  * Query entrance class of IoTDB query process. All query clause will be transformed to physical
  * plan, physical plan will be executed by EngineQueryRouter.
  */
-public class EngineQueryRouter implements IEngineQueryRouter{
+public class EngineQueryRouter implements IEngineQueryRouter {
 
   @Override
   public QueryDataSet query(QueryExpression queryExpression, QueryContext context)
@@ -58,25 +58,22 @@ public class EngineQueryRouter implements IEngineQueryRouter{
         IExpression optimizedExpression = ExpressionOptimizer.getInstance()
             .optimize(queryExpression.getExpression(), queryExpression.getSelectedSeries());
         queryExpression.setExpression(optimizedExpression);
-
+        EngineExecutor engineExecutor =
+            new EngineExecutor(queryExpression);
         if (optimizedExpression.getType() == ExpressionType.GLOBAL_TIME) {
-          EngineExecutorWithoutTimeGenerator engineExecutor =
-              new EngineExecutorWithoutTimeGenerator(queryExpression);
-          return engineExecutor.execute(context);
+          return engineExecutor.executeWithOutTimeGenerator(context);
         } else {
-          EngineExecutorWithTimeGenerator engineExecutor = new EngineExecutorWithTimeGenerator(
-              queryExpression);
-          return engineExecutor.execute(context);
+          return engineExecutor.executeWithTimeGenerator(context);
         }
 
       } catch (QueryFilterOptimizationException | IOException e) {
         throw new FileNodeManagerException(e);
       }
     } else {
-      EngineExecutorWithoutTimeGenerator engineExecutor = new EngineExecutorWithoutTimeGenerator(
+      EngineExecutor engineExecutor = new EngineExecutor(
           queryExpression);
       try {
-        return engineExecutor.execute(context);
+        return engineExecutor.executeWithOutTimeGenerator(context);
       } catch (IOException e) {
         throw new FileNodeManagerException(e);
       }
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/executor/FillEngineExecutor.java b/iotdb/src/main/java/org/apache/iotdb/db/query/executor/FillEngineExecutor.java
index 2b3adeb..ac54f87 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/executor/FillEngineExecutor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/executor/FillEngineExecutor.java
@@ -52,7 +52,7 @@ public class FillEngineExecutor {
   }
 
   /**
-   * execute fill.
+   * executeWithOutTimeGenerator fill.
    *
    * @param context query context
    */
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/factory/ISeriesReaderFactory.java b/iotdb/src/main/java/org/apache/iotdb/db/query/factory/ISeriesReaderFactory.java
index 0bbefb1..ec0d412 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/factory/ISeriesReaderFactory.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/factory/ISeriesReaderFactory.java
@@ -52,12 +52,12 @@ public interface ISeriesReaderFactory {
    * @param context query context
    * @return the list of EngineReaderByTimeStamp
    */
-  List<EngineReaderByTimeStamp> createByTimestampReadersOfSelectedPaths(List<Path> paths,
+  List<EngineReaderByTimeStamp> createByTimestampReaders(List<Path> paths,
       QueryContext context) throws FileNodeManagerException, IOException;
 
   /**
-   * construct IPointReader with <br>only time filter or no filter</br>, include sequential data and
-   * unsequential data. This reader won't filter the result of merged sequential data and
+   * construct IPointReader with <br>only time filter or no filter</br>, including sequential data
+   * and unsequential data. This reader won't filter the result of merged sequential data and
    * unsequential data reader.
    *
    * @param path selected series path
@@ -65,19 +65,19 @@ public interface ISeriesReaderFactory {
    * @param context query context
    * @return data reader including seq and unseq data source.
    */
-  IPointReader createTimeFilterAllDataReader(Path path, Filter timeFilter,
+  IPointReader createReaderWithOptGlobalTimeFilter(Path path, Filter timeFilter,
       QueryContext context) throws FileNodeManagerException, IOException;
 
   /**
    * construct IPointReader with <br>value filter</br>, include sequential data and unsequential
    * data. This reader will filter the result of merged sequential data and unsequential data
-   * reader, so if only has time filter please call createTimeFilterAllDataReader().
+   * reader, so if only has time filter please call createReaderWithOptGlobalTimeFilter().
    *
    * @param path selected series path
    * @param filter time filter or null
    * @param context query context
    * @return data reader including seq and unseq data source.
    */
-  IPointReader createValueFilterAllDataReader(Path path, Filter filter, QueryContext context)
+  IPointReader createReaderWithValueFilter(Path path, Filter filter, QueryContext context)
       throws FileNodeManagerException, IOException;
 }
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/factory/SeriesReaderFactory.java b/iotdb/src/main/java/org/apache/iotdb/db/query/factory/SeriesReaderFactory.java
deleted file mode 100644
index 60f02a0..0000000
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/factory/SeriesReaderFactory.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.db.query.factory;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.iotdb.db.engine.filenode.TsFileResource;
-import org.apache.iotdb.db.engine.modification.Modification;
-import org.apache.iotdb.db.engine.querycontext.OverflowInsertFile;
-import org.apache.iotdb.db.engine.querycontext.OverflowSeriesDataSource;
-import org.apache.iotdb.db.engine.querycontext.QueryDataSource;
-import org.apache.iotdb.db.engine.querycontext.QueryDataSourceV2;
-import org.apache.iotdb.db.exception.FileNodeManagerException;
-import org.apache.iotdb.db.exception.ProcessorException;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.control.FileReaderManager;
-import org.apache.iotdb.db.query.control.QueryResourceManager;
-import org.apache.iotdb.db.query.reader.AllDataReader;
-import org.apache.iotdb.db.query.reader.IBatchReader;
-import org.apache.iotdb.db.query.reader.IPointReader;
-import org.apache.iotdb.db.query.reader.IReader;
-import org.apache.iotdb.db.query.reader.mem.MemChunkReader;
-import org.apache.iotdb.db.query.reader.mem.MemChunkReaderByTimestamp;
-import org.apache.iotdb.db.query.reader.merge.EngineReaderByTimeStamp;
-import org.apache.iotdb.db.query.reader.merge.PriorityMergeReader;
-import org.apache.iotdb.db.query.reader.merge.PriorityMergeReaderByTimestamp;
-import org.apache.iotdb.db.query.reader.sequence.SealedTsFilesReader;
-import org.apache.iotdb.db.query.reader.sequence.SequenceDataReaderByTimestamp;
-import org.apache.iotdb.db.query.reader.sequence.SequenceDataReaderByTimestampV2;
-import org.apache.iotdb.db.query.reader.unsequence.EngineChunkReader;
-import org.apache.iotdb.db.query.reader.unsequence.EngineChunkReaderByTimestamp;
-import org.apache.iotdb.db.utils.QueryUtils;
-import org.apache.iotdb.tsfile.common.constant.StatisticConstant;
-import org.apache.iotdb.tsfile.file.metadata.ChunkMetaData;
-import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
-import org.apache.iotdb.tsfile.read.common.Chunk;
-import org.apache.iotdb.tsfile.read.common.Path;
-import org.apache.iotdb.tsfile.read.controller.ChunkLoaderImpl;
-import org.apache.iotdb.tsfile.read.controller.MetadataQuerier;
-import org.apache.iotdb.tsfile.read.controller.MetadataQuerierByFileImpl;
-import org.apache.iotdb.tsfile.read.expression.impl.SingleSeriesExpression;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
-import org.apache.iotdb.tsfile.read.filter.basic.Filter;
-import org.apache.iotdb.tsfile.read.reader.chunk.ChunkReader;
-import org.apache.iotdb.tsfile.read.reader.chunk.ChunkReaderByTimestamp;
-import org.apache.iotdb.tsfile.read.reader.chunk.ChunkReaderWithFilter;
-import org.apache.iotdb.tsfile.read.reader.chunk.ChunkReaderWithoutFilter;
-import org.apache.iotdb.tsfile.read.reader.series.FileSeriesReader;
-import org.apache.iotdb.tsfile.read.reader.series.FileSeriesReaderWithFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class SeriesReaderFactory {
-
-  private static final Logger logger = LoggerFactory.getLogger(SeriesReaderFactory.class);
-
-  private SeriesReaderFactory() {
-  }
-
-  public static SeriesReaderFactory getInstance() {
-    return SeriesReaderFactoryHelper.INSTANCE;
-  }
-
-  /**
-   * This method is used to create unseq file reader for IoTDB request, such as query, aggregation
-   * and groupby request. Note that, job id equals -1 meant that this method is used for IoTDB merge
-   * process, it's no need to maintain the opened file stream.
-   */
-  public PriorityMergeReader createUnSeqMergeReader(
-      OverflowSeriesDataSource overflowSeriesDataSource, Filter filter)
-      throws IOException {
-
-    PriorityMergeReader unSeqMergeReader = new PriorityMergeReader();
-
-    int priorityValue = 1;
-
-    for (OverflowInsertFile overflowInsertFile : overflowSeriesDataSource
-        .getOverflowInsertFileList()) {
-
-      // store only one opened file stream into manager, to avoid too many opened files
-      TsFileSequenceReader unClosedTsFileReader = FileReaderManager.getInstance()
-          .get(overflowInsertFile.getFilePath(), false);
-
-      ChunkLoaderImpl chunkLoader = new ChunkLoaderImpl(unClosedTsFileReader);
-
-      for (ChunkMetaData chunkMetaData : overflowInsertFile.getChunkMetaDataList()) {
-
-        DigestForFilter digest = new DigestForFilter(chunkMetaData.getStartTime(),
-            chunkMetaData.getEndTime(),
-            chunkMetaData.getDigest().getStatistics().get(StatisticConstant.MIN_VALUE),
-            chunkMetaData.getDigest().getStatistics().get(StatisticConstant.MAX_VALUE),
-            chunkMetaData.getTsDataType());
-
-        if (filter != null && !filter.satisfy(digest)) {
-          continue;
-        }
-
-        Chunk chunk = chunkLoader.getChunk(chunkMetaData);
-        ChunkReader chunkReader = filter != null ? new ChunkReaderWithFilter(chunk, filter)
-            : new ChunkReaderWithoutFilter(chunk);
-
-        unSeqMergeReader.addReaderWithPriority(new EngineChunkReader(chunkReader), priorityValue);
-        priorityValue++;
-      }
-    }
-
-    // add reader for MemTable
-    if (overflowSeriesDataSource.hasRawChunk()) {
-      unSeqMergeReader.addReaderWithPriority(
-          new MemChunkReader(overflowSeriesDataSource.getReadableMemChunk(), filter),
-          priorityValue);
-    }
-
-    // TODO add external sort when needed
-    return unSeqMergeReader;
-  }
-
-  // TODO createUnSeqMergeReaderByTime a method with filter
-
-  /**
-   * This method is used to construct reader for merge process in IoTDB. To merge only one TsFile
-   * data and one UnSeqFile data.
-   */
-  public IReader createSeriesReaderForMerge(TsFileResource tsFileResource,
-      OverflowSeriesDataSource overflowSeriesDataSource,
-      SingleSeriesExpression singleSeriesExpression,
-      QueryContext context)
-      throws IOException {
-
-    logger.debug("Create seriesReaders for merge. SeriesFilter = {}. TsFilePath = {}",
-        singleSeriesExpression,
-        tsFileResource.getFilePath());
-
-    // sequence reader
-    IBatchReader seriesInTsFileReader = createSealedTsFileReaderForMerge(tsFileResource,
-        singleSeriesExpression, context);
-
-    // unSequence merge reader
-    IPointReader unSeqMergeReader = createUnSeqMergeReader(overflowSeriesDataSource,
-        singleSeriesExpression.getFilter());
-    if (!seriesInTsFileReader.hasNext()) {
-      // only have unsequence data.
-      return unSeqMergeReader;
-    } else {
-      // merge sequence data with unsequence data.
-      return new AllDataReader(seriesInTsFileReader, unSeqMergeReader);
-    }
-
-  }
-
-  private IBatchReader createSealedTsFileReaderForMerge(TsFileResource fileNode,
-      SingleSeriesExpression singleSeriesExpression,
-      QueryContext context)
-      throws IOException {
-
-    TsFileSequenceReader tsFileSequenceReader = FileReaderManager.getInstance()
-        .get(fileNode.getFilePath(), true);
-    ChunkLoaderImpl chunkLoader = new ChunkLoaderImpl(tsFileSequenceReader);
-    MetadataQuerier metadataQuerier = new MetadataQuerierByFileImpl(tsFileSequenceReader);
-    List<ChunkMetaData> metaDataList = metadataQuerier
-        .getChunkMetaDataList(singleSeriesExpression.getSeriesPath());
-
-    List<Modification> modifications = context.getPathModifications(fileNode.getModFile(),
-        singleSeriesExpression.getSeriesPath().getFullPath());
-    QueryUtils.modifyChunkMetaData(metaDataList, modifications);
-
-    FileSeriesReader seriesInTsFileReader = new FileSeriesReaderWithFilter(chunkLoader,
-        metaDataList,
-        singleSeriesExpression.getFilter());
-    return new SealedTsFilesReader(seriesInTsFileReader, context);
-  }
-
-//  /**
-//   * construct ByTimestampReader, include sequential data and unsequential data.
-//   *
-//   * @param paths selected series path
-//   * @param context query context
-//   * @return the list of EngineReaderByTimeStamp
-//   */
-//  public static List<EngineReaderByTimeStamp> getByTimestampReadersOfSelectedPaths(
-//      List<Path> paths, QueryContext context)
-//      throws IOException, FileNodeManagerException, ProcessorException {
-//
-//    List<EngineReaderByTimeStamp> readersOfSelectedSeries = new ArrayList<>();
-//
-//    for (Path path : paths) {
-//
-//      QueryDataSource queryDataSource = QueryResourceManager.getInstance().getQueryDataSource(path,
-//          context);
-//
-//      PriorityMergeReaderByTimestamp mergeReaderByTimestamp = new PriorityMergeReaderByTimestamp();
-//
-//      // reader for sequence data
-//      SequenceDataReaderByTimestamp tsFilesReader = new SequenceDataReaderByTimestamp(
-//          queryDataSource.getSeqDataSource(), context);
-//      mergeReaderByTimestamp.addReaderWithPriority(tsFilesReader, 1);
-//
-//      // reader for unSequence data
-//      PriorityMergeReaderByTimestamp unSeqMergeReader = SeriesReaderFactory.getInstance()
-//          .createUnSeqMergeReaderByTimestamp(queryDataSource.getOverflowSeriesDataSource());
-//      mergeReaderByTimestamp.addReaderWithPriority(unSeqMergeReader, 2);
-//
-//      readersOfSelectedSeries.add(mergeReaderByTimestamp);
-//    }
-//
-//    return readersOfSelectedSeries;
-//  }
-
-  /**
-   * construct ByTimestampReader, include sequential data and unsequential data.
-   *
-   * @param paths selected series path
-   * @param context query context
-   * @return the list of EngineReaderByTimeStamp
-   */
-  public static List<EngineReaderByTimeStamp> getByTimestampReadersOfSelectedPathsV2(
-      List<Path> paths, QueryContext context)
-      throws IOException, FileNodeManagerException, ProcessorException {
-
-    List<EngineReaderByTimeStamp> readersOfSelectedSeries = new ArrayList<>();
-
-    for (Path path : paths) {
-
-      QueryDataSourceV2 queryDataSource = QueryResourceManager.getInstance().getQueryDataSourceV2(path,
-          context);
-
-      PriorityMergeReaderByTimestamp mergeReaderByTimestamp = new PriorityMergeReaderByTimestamp();
-
-      // reader for sequence data
-      SequenceDataReaderByTimestampV2 tsFilesReader = new SequenceDataReaderByTimestampV2(path,
-          queryDataSource.getSeqResources(), context);
-      mergeReaderByTimestamp.addReaderWithPriority(tsFilesReader, 1);
-
-      // reader for unSequence data
-      //TODO
-//      PriorityMergeReaderByTimestamp unSeqMergeReader = SeriesReaderFactory.getInstance()
-//          .createUnSeqMergeReaderByTimestamp(queryDataSource.getOverflowSeriesDataSource());
-//      mergeReaderByTimestamp.addReaderWithPriority(unSeqMergeReader, 2);
-
-      readersOfSelectedSeries.add(mergeReaderByTimestamp);
-    }
-
-    return readersOfSelectedSeries;
-  }
-
-  /**
-   * This method is used to create unsequence insert reader by timestamp for IoTDB request, such as
-   * query, aggregation and groupby request.
-   */
-  public PriorityMergeReaderByTimestamp createUnSeqMergeReaderByTimestamp(
-      OverflowSeriesDataSource overflowSeriesDataSource)
-      throws IOException {
-
-    PriorityMergeReaderByTimestamp unSeqMergeReader = new PriorityMergeReaderByTimestamp();
-
-    int priorityValue = 1;
-
-    for (OverflowInsertFile overflowInsertFile : overflowSeriesDataSource
-        .getOverflowInsertFileList()) {
-
-      // store only one opened file stream into manager, to avoid too many opened files
-      TsFileSequenceReader unClosedTsFileReader = FileReaderManager.getInstance()
-          .get(overflowInsertFile.getFilePath(), false);
-
-      ChunkLoaderImpl chunkLoader = new ChunkLoaderImpl(unClosedTsFileReader);
-
-      for (ChunkMetaData chunkMetaData : overflowInsertFile.getChunkMetaDataList()) {
-
-        Chunk chunk = chunkLoader.getChunk(chunkMetaData);
-        ChunkReaderByTimestamp chunkReader = new ChunkReaderByTimestamp(chunk);
-
-        unSeqMergeReader
-            .addReaderWithPriority(new EngineChunkReaderByTimestamp(chunkReader), priorityValue);
-        priorityValue++;
-      }
-    }
-
-    // add reader for MemTable
-    if (overflowSeriesDataSource.hasRawChunk()) {
-      unSeqMergeReader.addReaderWithPriority(
-          new MemChunkReaderByTimestamp(overflowSeriesDataSource.getReadableMemChunk()),
-          priorityValue);
-    }
-
-    // TODO add external sort when needed
-    return unSeqMergeReader;
-  }
-
-  private static class SeriesReaderFactoryHelper {
-
-    private static final SeriesReaderFactory INSTANCE = new SeriesReaderFactory();
-
-    private SeriesReaderFactoryHelper() {
-    }
-  }
-}
\ No newline at end of file
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/factory/SeriesReaderFactoryImpl.java b/iotdb/src/main/java/org/apache/iotdb/db/query/factory/SeriesReaderFactoryImpl.java
index cc4b91a..afa5f81 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/factory/SeriesReaderFactoryImpl.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/factory/SeriesReaderFactoryImpl.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
 
 public class SeriesReaderFactoryImpl implements ISeriesReaderFactory {
 
-  private static final Logger logger = LoggerFactory.getLogger(SeriesReaderFactory.class);
+  private static final Logger logger = LoggerFactory.getLogger(SeriesReaderFactoryImpl.class);
 
   private SeriesReaderFactoryImpl() {
   }
@@ -186,7 +186,7 @@ public class SeriesReaderFactoryImpl implements ISeriesReaderFactory {
   }
 
   @Override
-  public List<EngineReaderByTimeStamp> createByTimestampReadersOfSelectedPaths(List<Path> paths,
+  public List<EngineReaderByTimeStamp> createByTimestampReaders(List<Path> paths,
       QueryContext context) throws FileNodeManagerException, IOException {
     List<EngineReaderByTimeStamp> readersOfSelectedSeries = new ArrayList<>();
 
@@ -221,7 +221,7 @@ public class SeriesReaderFactoryImpl implements ISeriesReaderFactory {
   }
 
   @Override
-  public IPointReader createTimeFilterAllDataReader(Path path, Filter timeFilter,
+  public IPointReader createReaderWithOptGlobalTimeFilter(Path path, Filter timeFilter,
       QueryContext context)
       throws FileNodeManagerException, IOException {
     QueryDataSourceV2 queryDataSource = null;
@@ -254,7 +254,7 @@ public class SeriesReaderFactoryImpl implements ISeriesReaderFactory {
   }
 
   @Override
-  public IPointReader createValueFilterAllDataReader(Path path, Filter filter, QueryContext context)
+  public IPointReader createReaderWithValueFilter(Path path, Filter filter, QueryContext context)
       throws FileNodeManagerException, IOException {
     QueryDataSourceV2 queryDataSource = null;
     try {
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/fill/IFill.java b/iotdb/src/main/java/org/apache/iotdb/db/query/fill/IFill.java
index e8244af..b5b2283 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/fill/IFill.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/fill/IFill.java
@@ -54,7 +54,7 @@ public abstract class IFill {
       throws IOException, FileNodeManagerException {
     Filter timeFilter = constructFilter(beforeRange);
     allDataReader = SeriesReaderFactoryImpl.getInstance()
-        .createTimeFilterAllDataReader(path, timeFilter, context);
+        .createReaderWithOptGlobalTimeFilter(path, timeFilter, context);
   }
 
   public abstract IPointReader getFillResult() throws IOException;
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SealedTsFilesReader.java b/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SealedTsFilesReader.java
deleted file mode 100644
index 075fa08..0000000
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SealedTsFilesReader.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.db.query.reader.sequence;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import org.apache.iotdb.db.engine.filenode.TsFileResource;
-import org.apache.iotdb.db.engine.modification.Modification;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.control.FileReaderManager;
-import org.apache.iotdb.db.query.reader.IAggregateReader;
-import org.apache.iotdb.db.query.reader.IBatchReader;
-import org.apache.iotdb.db.utils.QueryUtils;
-import org.apache.iotdb.tsfile.file.header.PageHeader;
-import org.apache.iotdb.tsfile.file.metadata.ChunkMetaData;
-import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
-import org.apache.iotdb.tsfile.read.common.BatchData;
-import org.apache.iotdb.tsfile.read.common.Path;
-import org.apache.iotdb.tsfile.read.controller.ChunkLoader;
-import org.apache.iotdb.tsfile.read.controller.ChunkLoaderImpl;
-import org.apache.iotdb.tsfile.read.controller.MetadataQuerierByFileImpl;
-import org.apache.iotdb.tsfile.read.filter.basic.Filter;
-import org.apache.iotdb.tsfile.read.reader.series.FileSeriesReader;
-import org.apache.iotdb.tsfile.read.reader.series.FileSeriesReaderWithFilter;
-import org.apache.iotdb.tsfile.read.reader.series.FileSeriesReaderWithoutFilter;
-
-public class SealedTsFilesReader implements IBatchReader, IAggregateReader {
-
-  private Path seriesPath;
-  private List<TsFileResource> sealedTsFiles;
-  private int indexOfNextTsFileResource;
-  private FileSeriesReader seriesReader;
-  private Filter filter;
-  private QueryContext context;
-  private boolean isReverse;
-
-  /**
-   * init with seriesPath, sealedTsFiles, filter, context.
-   *
-   * @param seriesPath path
-   * @param sealedTsFiles sealed file list
-   * @param filter null if no filter
-   * @param isReverse true-traverse chunks from behind forward, false-traverse chunks from front to
-   * back.
-   */
-  public SealedTsFilesReader(Path seriesPath, List<TsFileResource> sealedTsFiles, Filter filter,
-      QueryContext context, boolean isReverse) {
-    this(seriesPath, sealedTsFiles, context, isReverse);
-    this.filter = filter;
-  }
-
-  /**
-   * init with seriesPath and sealedTsFiles.
-   */
-  public SealedTsFilesReader(Path seriesPath, List<TsFileResource> sealedTsFiles,
-      QueryContext context, boolean isReverse) {
-    if (isReverse) {
-      Collections.reverse(sealedTsFiles);
-    }
-    this.seriesPath = seriesPath;
-    this.sealedTsFiles = sealedTsFiles;
-    this.indexOfNextTsFileResource = 0;
-    this.seriesReader = null;
-    this.context = context;
-    this.isReverse = isReverse;
-  }
-
-  /**
-   * init with seriesReader and queryContext.
-   */
-  public SealedTsFilesReader(FileSeriesReader seriesReader, QueryContext context) {
-    this.seriesReader = seriesReader;
-    sealedTsFiles = new ArrayList<>();
-    this.context = context;
-  }
-
-  @Override
-  public boolean hasNext() throws IOException {
-
-    // try to get next batch data from current reader
-    if (seriesReader != null && seriesReader.hasNextBatch()) {
-      return true;
-    }
-
-    // init until reach a satisfied reader
-    while (indexOfNextTsFileResource < sealedTsFiles.size()) {
-      // try to get next batch data from next reader
-      TsFileResource tsfile = sealedTsFiles.get(indexOfNextTsFileResource++);
-      if (singleTsFileSatisfied(tsfile)) {
-        initSingleTsFileReader(tsfile, context);
-      } else {
-        continue;
-      }
-
-      if (seriesReader.hasNextBatch()) {
-        return true;
-      }
-    }
-
-    return false;
-  }
-
-  private boolean singleTsFileSatisfied(TsFileResource tsfile) {
-
-    if (filter == null) {
-      return true;
-    }
-
-    long startTime = tsfile.getStartTime(seriesPath.getDevice());
-    long endTime = tsfile.getEndTime(seriesPath.getDevice());
-    return filter.satisfyStartEndTime(startTime, endTime);
-  }
-
-  private void initSingleTsFileReader(TsFileResource tsfile, QueryContext context)
-      throws IOException {
-
-    // to avoid too many opened files
-    TsFileSequenceReader tsFileReader = FileReaderManager.getInstance()
-        .get(tsfile.getFilePath(), true);
-
-    MetadataQuerierByFileImpl metadataQuerier = new MetadataQuerierByFileImpl(tsFileReader);
-    List<ChunkMetaData> metaDataList = metadataQuerier.getChunkMetaDataList(seriesPath);
-
-    List<Modification> pathModifications = context.getPathModifications(tsfile.getModFile(),
-        seriesPath.getFullPath());
-    if (!pathModifications.isEmpty()) {
-      QueryUtils.modifyChunkMetaData(metaDataList, pathModifications);
-    }
-
-    ChunkLoader chunkLoader = new ChunkLoaderImpl(tsFileReader);
-
-    if (isReverse) {
-      Collections.reverse(metaDataList);
-    }
-
-    if (filter == null) {
-      seriesReader = new FileSeriesReaderWithoutFilter(chunkLoader, metaDataList);
-    } else {
-      seriesReader = new FileSeriesReaderWithFilter(chunkLoader, metaDataList, filter);
-    }
-  }
-
-  @Override
-  public BatchData nextBatch() throws IOException {
-    return seriesReader.nextBatch();
-  }
-
-  @Override
-  public void close() throws IOException {
-    if (seriesReader != null) {
-      seriesReader.close();
-    }
-  }
-
-  @Override
-  public PageHeader nextPageHeader() throws IOException {
-    return seriesReader.nextPageHeader();
-  }
-
-  @Override
-  public void skipPageData() {
-    seriesReader.skipPageData();
-  }
-}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SealedTsFilesReaderByTimestamp.java b/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SealedTsFilesReaderByTimestamp.java
deleted file mode 100644
index e58583c..0000000
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SealedTsFilesReaderByTimestamp.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.db.query.reader.sequence;
-
-import java.io.IOException;
-import java.util.List;
-import org.apache.iotdb.db.engine.filenode.TsFileResource;
-import org.apache.iotdb.db.engine.modification.Modification;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.control.FileReaderManager;
-import org.apache.iotdb.db.query.reader.merge.EngineReaderByTimeStamp;
-import org.apache.iotdb.db.utils.QueryUtils;
-import org.apache.iotdb.tsfile.file.metadata.ChunkMetaData;
-import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
-import org.apache.iotdb.tsfile.read.common.Path;
-import org.apache.iotdb.tsfile.read.controller.ChunkLoader;
-import org.apache.iotdb.tsfile.read.controller.ChunkLoaderImpl;
-import org.apache.iotdb.tsfile.read.controller.MetadataQuerierByFileImpl;
-import org.apache.iotdb.tsfile.read.reader.series.SeriesReaderByTimestamp;
-
-public class SealedTsFilesReaderByTimestamp implements EngineReaderByTimeStamp {
-
-  private Path seriesPath;
-  private List<TsFileResource> sealedTsFiles;
-  private int nextIntervalFileIndex;
-  private SeriesReaderByTimestamp seriesReader;
-  private QueryContext context;
-
-  /**
-   * init with seriesPath and sealedTsFiles.
-   */
-  public SealedTsFilesReaderByTimestamp(Path seriesPath, List<TsFileResource> sealedTsFiles,
-      QueryContext context) {
-    this.seriesPath = seriesPath;
-    this.sealedTsFiles = sealedTsFiles;
-    this.nextIntervalFileIndex = 0;
-    this.seriesReader = null;
-    this.context = context;
-  }
-
-  @Override
-  public Object getValueInTimestamp(long timestamp) throws IOException {
-    Object value = null;
-    if (seriesReader != null) {
-      value = seriesReader.getValueInTimestamp(timestamp);
-      if (value != null || seriesReader.hasNext()) {
-        return value;
-      }
-    }
-    constructReader(timestamp);
-    if (seriesReader != null) {
-      value = seriesReader.getValueInTimestamp(timestamp);
-      if (value != null || seriesReader.hasNext()) {
-        return value;
-      }
-    }
-
-    return value;
-  }
-
-  @Override
-  public boolean hasNext() throws IOException {
-    if (seriesReader != null && seriesReader.hasNext()) {
-      return true;
-    }
-    while (nextIntervalFileIndex < sealedTsFiles.size()) {
-      initSingleTsFileReader(sealedTsFiles.get(nextIntervalFileIndex), context);
-      nextIntervalFileIndex++;
-      if (seriesReader.hasNext()) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  /**
-   * construct reader with the file that might overlap this timestamp.
-   */
-  private void constructReader(long timestamp) throws IOException {
-    while (nextIntervalFileIndex < sealedTsFiles.size()) {
-      if (singleTsFileSatisfied(sealedTsFiles.get(nextIntervalFileIndex), timestamp)) {
-        initSingleTsFileReader(sealedTsFiles.get(nextIntervalFileIndex), context);
-        nextIntervalFileIndex++;
-        return;
-      }
-      nextIntervalFileIndex++;
-    }
-  }
-
-  /**
-   * Judge whether the file should be skipped.
-   */
-  private boolean singleTsFileSatisfied(TsFileResource fileNode, long timestamp) {
-    long endTime = fileNode.getEndTime(seriesPath.getDevice());
-    return endTime >= timestamp;
-  }
-
-  private void initSingleTsFileReader(TsFileResource fileNode, QueryContext context)
-      throws IOException {
-
-    // to avoid too many opened files
-    TsFileSequenceReader tsFileReader = FileReaderManager.getInstance()
-        .get(fileNode.getFilePath(), true);
-
-    MetadataQuerierByFileImpl metadataQuerier = new MetadataQuerierByFileImpl(tsFileReader);
-    List<ChunkMetaData> metaDataList = metadataQuerier.getChunkMetaDataList(seriesPath);
-
-    List<Modification> pathModifications = context.getPathModifications(fileNode.getModFile(),
-        seriesPath.getFullPath());
-    if (!pathModifications.isEmpty()) {
-      QueryUtils.modifyChunkMetaData(metaDataList, pathModifications);
-    }
-    ChunkLoader chunkLoader = new ChunkLoaderImpl(tsFileReader);
-
-    seriesReader = new SeriesReaderByTimestamp(chunkLoader, metaDataList);
-
-  }
-
-}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReader.java b/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReader.java
deleted file mode 100644
index b691d7f..0000000
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReader.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.db.query.reader.sequence;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.iotdb.db.engine.querycontext.GlobalSortedSeriesDataSource;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.reader.IAggregateReader;
-import org.apache.iotdb.db.query.reader.IBatchReader;
-import org.apache.iotdb.db.query.reader.mem.MemChunkReader;
-import org.apache.iotdb.tsfile.file.header.PageHeader;
-import org.apache.iotdb.tsfile.read.common.BatchData;
-import org.apache.iotdb.tsfile.read.filter.basic.Filter;
-
-/**
- * <p>
- * A reader for sequentially inserts data,including a list of sealedTsFile, unSealedTsFile and data
- * in MemTable.
- * </p>
- */
-public class SequenceDataReader implements IBatchReader, IAggregateReader {
-
-  private List<IAggregateReader> seriesReaders;
-  private boolean curReaderInitialized;
-  private int nextSeriesReaderIndex;
-  private IAggregateReader currentSeriesReader;
-
-  /**
-   * init with globalSortedSeriesDataSource, filter, context and isReverse.
-   *
-   * @param sources data source
-   * @param filter null if no filter
-   * @param context query context
-   * @param isReverse true-traverse chunks from behind forward, false-traverse chunks from front to
-   * back.
-   */
-  public SequenceDataReader(GlobalSortedSeriesDataSource sources, Filter filter,
-      QueryContext context, boolean isReverse) throws IOException {
-    seriesReaders = new ArrayList<>();
-
-    curReaderInitialized = false;
-    nextSeriesReaderIndex = 0;
-
-    if (isReverse) {
-      // add data in memTable
-      if (sources.hasRawSeriesChunk()) {
-        seriesReaders.add(new MemChunkReader(sources.getReadableChunk(), filter));
-      }
-
-      // add reader for unSealed TsFile
-      if (sources.hasUnsealedTsFile()) {
-        seriesReaders.add(new UnSealedTsFileReader(sources.getUnsealedTsFile(), filter, isReverse));
-      }
-
-      // add reader for sealed TsFiles
-      if (sources.hasSealedTsFiles()) {
-        seriesReaders.add(
-            new SealedTsFilesReader(sources.getSeriesPath(), sources.getSealedTsFiles(), filter,
-                context, isReverse));
-      }
-    } else {
-      // add reader for sealed TsFiles
-      if (sources.hasSealedTsFiles()) {
-        seriesReaders.add(
-            new SealedTsFilesReader(sources.getSeriesPath(), sources.getSealedTsFiles(), filter,
-                context, isReverse));
-      }
-
-      // add reader for unSealed TsFile
-      if (sources.hasUnsealedTsFile()) {
-        seriesReaders.add(new UnSealedTsFileReader(sources.getUnsealedTsFile(), filter, isReverse));
-      }
-
-      // add data in memTable
-      if (sources.hasRawSeriesChunk()) {
-        seriesReaders.add(new MemChunkReader(sources.getReadableChunk(), filter));
-      }
-    }
-  }
-
-  /**
-   * init with globalSortedSeriesDataSource, filter, context and isReverse.
-   */
-  public SequenceDataReader(GlobalSortedSeriesDataSource sources, Filter filter,
-      QueryContext context) throws IOException {
-    this(sources, filter, context, false);
-  }
-
-  @Override
-  public boolean hasNext() throws IOException {
-
-    if (curReaderInitialized && currentSeriesReader.hasNext()) {
-      return true;
-    } else {
-      curReaderInitialized = false;
-    }
-
-    while (nextSeriesReaderIndex < seriesReaders.size()) {
-      currentSeriesReader = seriesReaders.get(nextSeriesReaderIndex++);
-      if (currentSeriesReader.hasNext()) {
-        curReaderInitialized = true;
-        return true;
-      }
-    }
-    return false;
-  }
-
-  @Override
-  public void close() throws IOException {
-    for (IBatchReader seriesReader : seriesReaders) {
-      seriesReader.close();
-    }
-  }
-
-  @Override
-  public BatchData nextBatch() throws IOException {
-    return currentSeriesReader.nextBatch();
-  }
-
-  @Override
-  public PageHeader nextPageHeader() throws IOException {
-    return currentSeriesReader.nextPageHeader();
-  }
-
-  @Override
-  public void skipPageData() throws IOException {
-    currentSeriesReader.skipPageData();
-  }
-}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReaderByTimestamp.java b/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReaderByTimestamp.java
deleted file mode 100644
index a5fdc44..0000000
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReaderByTimestamp.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.db.query.reader.sequence;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.iotdb.db.engine.querycontext.GlobalSortedSeriesDataSource;
-import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.query.reader.mem.MemChunkReaderByTimestamp;
-import org.apache.iotdb.db.query.reader.merge.EngineReaderByTimeStamp;
-
-public class SequenceDataReaderByTimestamp implements EngineReaderByTimeStamp {
-
-  private List<EngineReaderByTimeStamp> seriesReaders;
-  private int nextSeriesReaderIndex;
-  private EngineReaderByTimeStamp currentSeriesReader;
-
-  /**
-   * init with globalSortedSeriesDataSource and filter.
-   */
-  public SequenceDataReaderByTimestamp(GlobalSortedSeriesDataSource sources, QueryContext context)
-      throws IOException {
-    seriesReaders = new ArrayList<>();
-
-    nextSeriesReaderIndex = 0;
-
-    // add reader for sealed TsFiles
-    if (sources.hasSealedTsFiles()) {
-      seriesReaders.add(
-          new SealedTsFilesReaderByTimestamp(sources.getSeriesPath(), sources.getSealedTsFiles(),
-              context));
-    }
-
-    // add reader for unSealed TsFile
-    if (sources.hasUnsealedTsFile()) {
-      seriesReaders.add(new UnSealedTsFilesReaderByTimestamp(sources.getUnsealedTsFile()));
-    }
-
-    // add data in memTable
-    if (sources.hasRawSeriesChunk()) {
-      seriesReaders.add(new MemChunkReaderByTimestamp(sources.getReadableChunk()));
-    }
-
-  }
-
-  /**
-   * This method is used only in unit test.
-   */
-  public SequenceDataReaderByTimestamp(List<EngineReaderByTimeStamp> seriesReaders) {
-    this.seriesReaders = seriesReaders;
-    nextSeriesReaderIndex = 0;
-  }
-
-
-  @Override
-  public Object getValueInTimestamp(long timestamp) throws IOException {
-    Object value = null;
-    if (currentSeriesReader != null) {
-      value = currentSeriesReader.getValueInTimestamp(timestamp);
-      if (value != null || currentSeriesReader.hasNext()) {
-        return value;
-      }
-    }
-
-    while (nextSeriesReaderIndex < seriesReaders.size()) {
-      currentSeriesReader = seriesReaders.get(nextSeriesReaderIndex++);
-      if (currentSeriesReader != null) {
-        value = currentSeriesReader.getValueInTimestamp(timestamp);
-        if (value != null || currentSeriesReader.hasNext()) {
-          return value;
-        }
-      }
-    }
-    return value;
-  }
-
-  @Override
-  public boolean hasNext() throws IOException {
-    if (currentSeriesReader != null && currentSeriesReader.hasNext()) {
-      return true;
-    }
-    while (nextSeriesReaderIndex < seriesReaders.size()) {
-      currentSeriesReader = seriesReaders.get(nextSeriesReaderIndex++);
-      if (currentSeriesReader != null && currentSeriesReader.hasNext()) {
-        return true;
-      }
-    }
-    return false;
-  }
-}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/UnSealedTsFileReader.java b/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/UnSealedTsFileReader.java
deleted file mode 100644
index d4e75e6..0000000
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/UnSealedTsFileReader.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.db.query.reader.sequence;
-
-import java.io.IOException;
-import java.util.Collections;
-import java.util.List;
-import org.apache.iotdb.db.engine.querycontext.UnsealedTsFile;
-import org.apache.iotdb.db.query.control.FileReaderManager;
-import org.apache.iotdb.db.query.reader.IAggregateReader;
-import org.apache.iotdb.db.query.reader.IBatchReader;
-import org.apache.iotdb.tsfile.file.header.PageHeader;
-import org.apache.iotdb.tsfile.file.metadata.ChunkMetaData;
-import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
-import org.apache.iotdb.tsfile.read.common.BatchData;
-import org.apache.iotdb.tsfile.read.common.Path;
-import org.apache.iotdb.tsfile.read.controller.ChunkLoader;
-import org.apache.iotdb.tsfile.read.controller.ChunkLoaderImpl;
-import org.apache.iotdb.tsfile.read.filter.basic.Filter;
-import org.apache.iotdb.tsfile.read.reader.series.FileSeriesReader;
-import org.apache.iotdb.tsfile.read.reader.series.FileSeriesReaderWithFilter;
-import org.apache.iotdb.tsfile.read.reader.series.FileSeriesReaderWithoutFilter;
-
-public class UnSealedTsFileReader implements IBatchReader, IAggregateReader {
-
-  protected Path seriesPath;
-  private FileSeriesReader unSealedReader;
-
-  /**
-   * Construct funtion for UnSealedTsFileReader.
-   *
-   * @param unsealedTsFile -param to initial
-   * @param filter -filter
-   * @param isReverse true-traverse chunks from behind forward; false-traverse chunks from front to
-   * back;
-   */
-  public UnSealedTsFileReader(UnsealedTsFile unsealedTsFile, Filter filter, boolean isReverse)
-      throws IOException {
-
-    TsFileSequenceReader unClosedTsFileReader = FileReaderManager.getInstance()
-        .get(unsealedTsFile.getFilePath(),
-            false);
-    ChunkLoader chunkLoader = new ChunkLoaderImpl(unClosedTsFileReader);
-
-    List<ChunkMetaData> metaDataList = unsealedTsFile.getChunkMetaDataList();
-    //reverse chunk metadata list if traversing chunks from behind forward
-    if (isReverse && metaDataList != null && !metaDataList.isEmpty()) {
-      Collections.reverse(metaDataList);
-    }
-
-    if (filter == null) {
-      unSealedReader = new FileSeriesReaderWithoutFilter(chunkLoader, metaDataList);
-    } else {
-      unSealedReader = new FileSeriesReaderWithFilter(chunkLoader, metaDataList, filter);
-    }
-  }
-
-  @Override
-  public boolean hasNext() throws IOException {
-    return unSealedReader.hasNextBatch();
-  }
-
-  @Override
-  public void close() throws IOException {
-    if (unSealedReader != null) {
-      unSealedReader.close();
-    }
-  }
-
-  @Override
-  public BatchData nextBatch() throws IOException {
-    return unSealedReader.nextBatch();
-  }
-
-  @Override
-  public PageHeader nextPageHeader() throws IOException {
-    return unSealedReader.nextPageHeader();
-  }
-
-  @Override
-  public void skipPageData() {
-    unSealedReader.skipPageData();
-  }
-}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/UnSealedTsFilesReaderByTimestamp.java b/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/UnSealedTsFilesReaderByTimestamp.java
deleted file mode 100644
index 4aebdb8..0000000
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/UnSealedTsFilesReaderByTimestamp.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.db.query.reader.sequence;
-
-import java.io.IOException;
-import org.apache.iotdb.db.engine.querycontext.UnsealedTsFile;
-import org.apache.iotdb.db.query.control.FileReaderManager;
-import org.apache.iotdb.db.query.reader.merge.EngineReaderByTimeStamp;
-import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
-import org.apache.iotdb.tsfile.read.common.Path;
-import org.apache.iotdb.tsfile.read.controller.ChunkLoader;
-import org.apache.iotdb.tsfile.read.controller.ChunkLoaderImpl;
-import org.apache.iotdb.tsfile.read.reader.series.SeriesReaderByTimestamp;
-
-public class UnSealedTsFilesReaderByTimestamp implements EngineReaderByTimeStamp {
-
-  protected Path seriesPath;
-  private SeriesReaderByTimestamp unSealedReader;
-
-  /**
-   * Construct funtion for UnSealedTsFileReader.
-   *
-   * @param unsealedTsFile -param to initial
-   */
-  public UnSealedTsFilesReaderByTimestamp(UnsealedTsFile unsealedTsFile) throws IOException {
-
-    TsFileSequenceReader unClosedTsFileReader = FileReaderManager.getInstance()
-        .get(unsealedTsFile.getFilePath(),
-            false);
-    ChunkLoader chunkLoader = new ChunkLoaderImpl(unClosedTsFileReader);
-    unSealedReader = new SeriesReaderByTimestamp(chunkLoader,
-        unsealedTsFile.getChunkMetaDataList());
-
-
-  }
-
-  @Override
-  public Object getValueInTimestamp(long timestamp) throws IOException {
-    return unSealedReader.getValueInTimestamp(timestamp);
-  }
-
-  @Override
-  public boolean hasNext() throws IOException {
-    return unSealedReader.hasNext();
-  }
-
-}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/query/timegenerator/EngineNodeConstructor.java b/iotdb/src/main/java/org/apache/iotdb/db/query/timegenerator/EngineNodeConstructor.java
index 4ca159b..9698044 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/timegenerator/EngineNodeConstructor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/timegenerator/EngineNodeConstructor.java
@@ -52,7 +52,7 @@ public class EngineNodeConstructor extends AbstractNodeConstructor {
         Path path = ((SingleSeriesExpression) expression).getSeriesPath();
         return new EngineLeafNode(
             SeriesReaderFactoryImpl.getInstance()
-                .createValueFilterAllDataReader(path, filter, context));
+                .createReaderWithValueFilter(path, filter, context));
       } catch (IOException e) {
         throw new FileNodeManagerException(e);
       }
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/service/StartupChecks.java b/iotdb/src/main/java/org/apache/iotdb/db/service/StartupChecks.java
index ce64f0f..f64b317 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/service/StartupChecks.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/service/StartupChecks.java
@@ -84,7 +84,7 @@ public class StartupChecks {
   }
 
   /**
-   * execute every pretests.
+   * executeWithOutTimeGenerator every pretests.
    */
   public void verify() throws StartupException {
     for (StartupCheck check : preChecks) {
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java b/iotdb/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
index 7ef2ef0..6fe08c8 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
@@ -399,7 +399,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
   }
 
   /**
-   * Judge whether the statement is ADMIN COMMAND and if true, execute it.
+   * Judge whether the statement is ADMIN COMMAND and if true, executeWithOutTimeGenerator it.
    *
    * @param statement command
    * @return true if the statement is ADMIN COMMAND
@@ -467,7 +467,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
           }
         } catch (Exception e) {
           String errMessage = String.format(
-              "Fail to generate physcial plan and execute for statement "
+              "Fail to generate physcial plan and executeWithOutTimeGenerator for statement "
                   + "%s beacuse %s",
               statement, e.getMessage());
           LOGGER.warn("Error occurred when executing {}", statement, e);
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBAuthorizationIT.java b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBAuthorizationIT.java
index d9385ff..1633738 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBAuthorizationIT.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBAuthorizationIT.java
@@ -563,7 +563,7 @@ public class IoTDBAuthorizationIT {
     userStmt.execute("CREATE TIMESERIES root.a.b WITH DATATYPE=INT32,ENCODING=PLAIN");
     userStmt.execute("CREATE TIMESERIES root.a.c WITH DATATYPE=INT32,ENCODING=PLAIN");
     userStmt.execute("INSERT INTO root.a(timestamp,b,c) VALUES (1,100,1000)");
-    // userStmt.execute("DELETE FROM root.a.b WHERE TIME <= 1000000000");
+    // userStmt.executeWithOutTimeGenerator("DELETE FROM root.a.b WHERE TIME <= 1000000000");
     userStmt.execute("SELECT * FROM root");
     userStmt.getResultSet().close();
 
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBLargeDataIT.java b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBLargeDataIT.java
index 6889253..12d67f9 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBLargeDataIT.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBLargeDataIT.java
@@ -136,7 +136,7 @@ public class IoTDBLargeDataIT {
       }
 
       statement.execute("flush");
-      // statement.execute("merge");
+      // statement.executeWithOutTimeGenerator("merge");
 
       Thread.sleep(5000);
 
@@ -208,7 +208,7 @@ public class IoTDBLargeDataIT {
       }
 
       // overflow delete
-      // statement.execute("DELETE FROM root.vehicle.d0.s1 WHERE time < 3200");
+      // statement.executeWithOutTimeGenerator("DELETE FROM root.vehicle.d0.s1 WHERE time < 3200");
 
       statement.close();
     } catch (Exception e) {
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java
index f97e6c1..ad5b971 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java
@@ -137,7 +137,7 @@ public class IoTDBMultiSeriesIT {
       }
 
       statement.execute("flush");
-      // statement.execute("merge");
+      // statement.executeWithOutTimeGenerator("merge");
 
       Thread.sleep(5000);
 
@@ -209,7 +209,7 @@ public class IoTDBMultiSeriesIT {
       }
 
       // overflow delete
-      // statement.execute("DELETE FROM root.vehicle.d0.s1 WHERE time < 3200");
+      // statement.executeWithOutTimeGenerator("DELETE FROM root.vehicle.d0.s1 WHERE time < 3200");
 
       statement.close();
     } catch (Exception e) {
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBSeriesReaderIT.java b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBSeriesReaderIT.java
index aa2ef7c..00db7c8 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBSeriesReaderIT.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBSeriesReaderIT.java
@@ -138,7 +138,7 @@ public class IoTDBSeriesReaderIT {
         statement.execute(sql);
       }
 
-      // statement.execute("flush");
+      // statement.executeWithOutTimeGenerator("flush");
 
       // insert large amount of data time range : 13700 ~ 24000
       for (int time = 13700; time < 24000; time++) {
@@ -226,7 +226,7 @@ public class IoTDBSeriesReaderIT {
       }
 
       // overflow update
-      // statement.execute("UPDATE root.vehicle SET d0.s1 = 11111111 WHERE time > 23000 and time < 100100");
+      // statement.executeWithOutTimeGenerator("UPDATE root.vehicle SET d0.s1 = 11111111 WHERE time > 23000 and time < 100100");
 
       statement.close();
     } catch (Exception e) {
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBTimeZoneIT.java b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBTimeZoneIT.java
index 76d6734..c17517b 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBTimeZoneIT.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/integration/IoTDBTimeZoneIT.java
@@ -67,7 +67,7 @@ public class IoTDBTimeZoneIT {
   }
 
   /**
-   * // execute in cli-tool SET STORAGE GROUP TO root.timezone CREATE TIMESERIES root.timezone.tz1 WITH DATATYPE =
+   * // executeWithOutTimeGenerator in cli-tool SET STORAGE GROUP TO root.timezone CREATE TIMESERIES root.timezone.tz1 WITH DATATYPE =
    * INT32, ENCODING = PLAIN set time_zone=+08:00 insert into root.timezone(timestamp,tz1) values(1514779200000,1)
    * insert into root.timezone(timestamp,tz1) values(2018-1-1T12:00:01,2) insert into root.timezone(timestamp,tz1)
    * values(2018-1-1T12:00:02+08:00,3) insert into root.timezone(timestamp,tz1) values(2018-1-1T12:00:03+09:00,4)
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/qp/plan/QPUpdateTest.java b/iotdb/src/test/java/org/apache/iotdb/db/qp/plan/QPUpdateTest.java
index 7baf34c..2f1b209 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/qp/plan/QPUpdateTest.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/qp/plan/QPUpdateTest.java
@@ -188,7 +188,7 @@ public class QPUpdateTest {
     String sqlStr = "insert into root.qp_update_test.device_1 (timestamp, sensor_1, sensor_2) values (13, 50, 40)";
     PhysicalPlan plan1 = processor.parseSQLToPhysicalPlan(sqlStr);
 
-    // execute insert
+    // executeWithOutTimeGenerator insert
     boolean upRet = processor.getExecutor().processNonQuery(plan1);
     assertTrue(upRet);
 
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReaderByTimestampTest.java b/iotdb/src/test/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReaderByTimestampTest.java
deleted file mode 100644
index 0fe76d3..0000000
--- a/iotdb/src/test/java/org/apache/iotdb/db/query/reader/sequence/SequenceDataReaderByTimestampTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.db.query.reader.sequence;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-import org.apache.iotdb.db.query.reader.FakedSeriesReaderByTimestamp;
-import org.apache.iotdb.db.query.reader.merge.EngineReaderByTimeStamp;
-import org.junit.Assert;
-import org.junit.Test;
-
-public class SequenceDataReaderByTimestampTest {
-
-  /**
-   * Test hasNext() and getValueInTimestamp(long timestamp) method in
-   * SequenceDataReaderByTimestamp.
-   */
-  @Test
-  public void text() throws IOException {
-    List<EngineReaderByTimeStamp> readers = new ArrayList<>();
-    FakedSeriesReaderByTimestamp sealedTsFile = new FakedSeriesReaderByTimestamp(100, 1000, 7, 11);
-    FakedSeriesReaderByTimestamp unsealedTsFile = new FakedSeriesReaderByTimestamp(100 + 1005 * 7,
-        100, 17, 3);
-    FakedSeriesReaderByTimestamp dataInMemory = new FakedSeriesReaderByTimestamp(
-        100 + 1005 * 7 + 100 * 17, 60, 19, 23);
-    readers.add(sealedTsFile);
-    readers.add(unsealedTsFile);
-    readers.add(dataInMemory);
-    SequenceDataReaderByTimestamp sequenceReader = new SequenceDataReaderByTimestamp(readers);
-
-    long startTime = 100l;
-    long endTime = 100 + 1005 * 7 + 100 * 17 + 59 * 19;
-    Random random = new Random();
-    for (long time = startTime - 50; time < endTime + 50; time++) {
-      if (time < endTime) {
-        Assert.assertTrue(sequenceReader.hasNext());
-      }
-      time += 1 + random.nextInt(10);
-      Object value = sequenceReader.getValueInTimestamp(time);
-      if (time < 100) {
-        Assert.assertNull(value);
-      }
-      //sealed tsfile
-      else if (time < 100 + 1005 * 7) {
-        if ((time - 100) % 7 != 0 || time > 100 + 999 * 7) {
-          Assert.assertNull(value);
-        } else {
-          Assert.assertEquals(time % 11, value);
-        }
-      }
-      //unsealed tsfile
-      else if (time < 100 + 1005 * 7 + 100 * 17) {
-        if ((time - (100 + 1005 * 7)) % 17 != 0) {
-          Assert.assertNull(value);
-        } else {
-          Assert.assertEquals(time % 3, value);
-        }
-      }
-      //memory data
-      else if (time < 100 + 1005 * 7 + 100 * 17 + 60 * 19) {
-        if ((time - (100 + 1005 * 7 + 100 * 17)) % 19 != 0) {
-          Assert.assertNull(value);
-        } else {
-          Assert.assertEquals(time % 23, value);
-        }
-      } else {
-        Assert.assertNull(value);
-      }
-    }
-  }
-
-}
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/query/reader/unsequence/CreateByTimestampReadersOfSelectedPathsTest.java b/iotdb/src/test/java/org/apache/iotdb/db/query/reader/unsequence/CreateByTimestampReadersOfSelectedPathsTest.java
index 6a712fd..56611e1 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/query/reader/unsequence/CreateByTimestampReadersOfSelectedPathsTest.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/query/reader/unsequence/CreateByTimestampReadersOfSelectedPathsTest.java
@@ -80,7 +80,7 @@ public class CreateByTimestampReadersOfSelectedPathsTest {
         List<Path> paths = new ArrayList<>();
         paths.add(new Path(deviceId, measurementId));
         List<EngineReaderByTimeStamp> readers = SeriesReaderFactoryImpl.getInstance().
-                createByTimestampReadersOfSelectedPaths(paths, EnvironmentUtils.TEST_QUERY_CONTEXT);
+            createByTimestampReaders(paths, EnvironmentUtils.TEST_QUERY_CONTEXT);
         Assert.assertEquals(1, readers.size());
         EngineReaderByTimeStamp reader = readers.get(0);
 
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java b/iotdb/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
index 45ffd51..e2df400 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
@@ -127,6 +127,12 @@ public class EnvironmentUtils {
         for (File subFile : file.listFiles()) {
           cleanDir(subFile.getAbsolutePath());
         }
+        if(file.listFiles().length != 0){
+          System.out.println(String.format("The file %s has file.", dir));
+          for (File f: file.listFiles()) {
+            System.out.println(f.getAbsolutePath());
+          }
+        }
       }
       if (!file.delete()) {
         throw new IOException(String.format("The file %s can't be deleted", dir));


[incubator-iotdb] 03/03: Merge branch 'feature_async_close_tsfile' of https://github.com/apache/incubator-iotdb into feature_async_close_tsfile

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 8c30b4ad5ad79230f52ca3d1c6c4a289f378f57e
Merge: f42d8eb c3a36d1
Author: suyue <23...@qq.com>
AuthorDate: Tue Jun 25 12:01:38 2019 +0800

    Merge branch 'feature_async_close_tsfile' of https://github.com/apache/incubator-iotdb into feature_async_close_tsfile

 .../db/engine/memtable/MemTableFlushTaskV2.java    | 50 +++++++++++++++-------
 1 file changed, 35 insertions(+), 15 deletions(-)


[incubator-iotdb] 02/03: format query

Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit f42d8eb135899f5c4286566f025a1611c8993ed8
Merge: d73668e 9bf0540
Author: suyue <23...@qq.com>
AuthorDate: Tue Jun 25 12:01:09 2019 +0800

    format query

 .../org/apache/iotdb/db/concurrent/ThreadName.java |   1 +
 .../db/engine/filenode/FileNodeProcessor.java      |   2 +-
 .../db/engine/filenodeV2/FileNodeProcessorV2.java  | 155 ++++++++++-----------
 .../filenodeV2/UnsealedTsFileProcessorV2.java      |  25 ++--
 .../db/engine/memtable/MemTableFlushTask.java      |  36 ++---
 .../db/engine/memtable/MemTableFlushTaskV2.java    | 144 ++++++++++---------
 ...leFlushTaskV2.java => MemTableFlushTaskV3.java} | 150 +++++++++++---------
 .../db/engine/memtable/MemTableFlushUtil.java      |   3 +-
 .../iotdb/db/engine/memtable/MemTablePool.java     |   2 +-
 .../iotdb/db/engine/pool/FlushPoolManager.java     |   6 +-
 ...olManager.java => FlushSubTaskPoolManager.java} |  51 +++----
 .../db/query/factory/SeriesReaderFactoryImpl.java  |   4 +-
 ...a => AllDataReaderWithOptGlobalTimeFilter.java} |   9 +-
 .../query/reader/AllDataReaderWithValueFilter.java |   2 +-
 .../query/timegenerator/EngineNodeConstructor.java |   1 +
 .../engine/filenodeV2/FileNodeProcessorV2Test.java |   2 +-
 ... AllDataReaderWithOptGlobalTimeFilterTest.java} |  10 +-
 .../apache/iotdb/tsfile/write/TsFileWriter.java    |   2 +-
 .../iotdb/tsfile/write/writer/TsFileIOWriter.java  |   6 +-
 .../iotdb/tsfile/write/TsFileIOWriterTest.java     |   2 +-
 20 files changed, 315 insertions(+), 298 deletions(-)

diff --cc iotdb/src/main/java/org/apache/iotdb/db/query/timegenerator/EngineNodeConstructor.java
index 9698044,4ca159b..b95b217
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/timegenerator/EngineNodeConstructor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/timegenerator/EngineNodeConstructor.java
@@@ -56,6 -56,6 +56,7 @@@ public class EngineNodeConstructor exte
        } catch (IOException e) {
          throw new FileNodeManagerException(e);
        }
++
      } else {
        return constructNotSeriesNode(expression, context);
      }