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 2023/05/24 05:04:38 UTC

[iotdb] 01/01: [IOTDB-5917] Refactor module hierarchy

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

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

commit a03b963a47c1e1a8589727888847147a9cf3fa8a
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Wed May 24 13:04:17 2023 +0800

    [IOTDB-5917] Refactor module hierarchy
---
 client-cpp/src/main/CMakeLists.txt                 |   54 -
 client-cpp/src/test/CMakeLists.txt                 |   63 -
 client-py/requirements.txt                         |   26 -
 client-py/requirements_dev.txt                     |   27 -
 grafana-plugin/go.sum                              |  660 ----------
 integration/README.md                              |  120 --
 integration/checkstyle.xml                         |  217 ----
 integration/import-control.xml                     |   29 -
 integration/pom.xml                                |  295 -----
 integration/src/assembly/cluster.xml               |   47 -
 .../db/engine/trigger/example/Accumulator.java     |   96 --
 .../iotdb/db/engine/trigger/example/Counter.java   |   97 --
 .../iotdb/db/query/udf/example/Accumulator.java    |  102 --
 .../apache/iotdb/db/query/udf/example/Adder.java   |   92 --
 .../apache/iotdb/db/query/udf/example/Counter.java |   88 --
 .../db/query/udf/example/ExampleUDFConstant.java   |   31 -
 .../org/apache/iotdb/db/query/udf/example/Max.java |   74 --
 .../iotdb/db/query/udf/example/Multiplier.java     |   63 -
 .../SlidingSizeWindowConstructorTester0.java       |   59 -
 .../SlidingSizeWindowConstructorTester1.java       |   64 -
 .../SlidingTimeWindowConstructionTester.java       |   72 -
 .../db/query/udf/example/TerminateTester.java      |   67 -
 .../iotdb/db/query/udf/example/ValidateTester.java |   44 -
 .../iotdb/db/query/udf/example/WindowStartEnd.java |   66 -
 .../iotdb/integration/env/ClusterEnvBase.java      |  279 ----
 .../iotdb/integration/env/ClusterEnvConfig.java    |  154 ---
 .../apache/iotdb/integration/env/ClusterNode.java  |  179 ---
 .../iotdb/integration/env/ConfigFactory.java       |   52 -
 .../apache/iotdb/integration/env/EnvFactory.java   |   57 -
 .../iotdb/integration/env/FiveNodeCluster1Env.java |   64 -
 .../iotdb/integration/env/RemoteEnvConfig.java     |   23 -
 .../iotdb/integration/env/RemoteServerEnv.java     |  107 --
 .../apache/iotdb/itbase/category/ClusterTest.java  |   21 -
 .../iotdb/itbase/category/LocalStandaloneTest.java |   21 -
 .../apache/iotdb/itbase/category/RemoteTest.java   |   21 -
 .../org/apache/iotdb/itbase/env/BaseConfig.java    |  112 --
 .../java/org/apache/iotdb/itbase/env/BaseEnv.java  |   39 -
 .../apache/iotdb/db/integration/IOTDBInsertIT.java |  200 ---
 .../IoTDBAlignedTimeSeriesCompactionIT.java        |  564 --------
 .../iotdb/db/integration/IoTDBCheckConfigIT.java   |  142 --
 .../iotdb/db/integration/IoTDBClearCacheIT.java    |  171 ---
 .../apache/iotdb/db/integration/IoTDBCloseIT.java  |  191 ---
 .../iotdb/db/integration/IoTDBCompactionIT.java    |  338 -----
 .../integration/IoTDBCompactionWithIDTableIT.java  |  352 -----
 .../iotdb/db/integration/IoTDBCompressTypeIT.java  |  101 --
 .../db/integration/IoTDBContinuousQueryIT.java     |  544 --------
 .../apache/iotdb/db/integration/IoTDBDaemonIT.java |  456 -------
 .../iotdb/db/integration/IoTDBDisableAlignIT.java  |  392 ------
 .../apache/iotdb/db/integration/IoTDBFillIT.java   | 1227 ------------------
 .../db/integration/IoTDBFlushQueryMergeIT.java     |  197 ---
 .../iotdb/db/integration/IoTDBKillQueryIT.java     |   80 --
 .../iotdb/db/integration/IoTDBLargeDataIT.java     |  373 ------
 .../apache/iotdb/db/integration/IoTDBLastIT.java   |  629 ---------
 .../iotdb/db/integration/IoTDBMaxTimeQueryIT.java  |  139 --
 .../IoTDBMultiOverlappedChunkInUnseqIT.java        |  110 --
 .../db/integration/IoTDBMultiOverlappedPageIT.java |  166 ---
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |  471 -------
 .../db/integration/IoTDBMultiStatementsIT.java     |  187 ---
 .../db/integration/IoTDBNewTsFileCompactionIT.java | 1078 ---------------
 .../db/integration/IoTDBOverlappedPageIT.java      |  194 ---
 .../iotdb/db/integration/IoTDBQueryTimeoutIT.java  |  156 ---
 .../db/integration/IoTDBQueryWithIDTableIT.java    |  290 -----
 .../db/integration/IoTDBRemovePartitionIT.java     |  331 -----
 .../db/integration/IoTDBRepeatPatternNameIT.java   |   67 -
 .../db/integration/IoTDBRewriteTsFileToolIT.java   |  618 ---------
 .../db/integration/IoTDBRpcCompressionIT.java      |  140 --
 .../iotdb/db/integration/IoTDBSensorUpdateIT.java  |   87 --
 .../db/integration/IoTDBSessionTimeoutIT.java      |   84 --
 .../IoTDBSetSystemReadOnlyWritableIT.java          |  258 ----
 .../integration/IoTDBSizeTieredCompactionIT.java   | 1370 --------------------
 .../integration/IoTDBSortedShowTimeseriesIT.java   |  339 -----
 .../iotdb/db/integration/IoTDBTimePartitionIT.java |   90 --
 .../iotdb/db/integration/IoTDBTracingIT.java       |   84 --
 .../apache/iotdb/db/integration/IoTDBTtlIT.java    |  354 -----
 .../db/integration/IoTDBUDFWindowQueryIT.java      |  808 ------------
 .../db/integration/IoTDBUDTFHybridQueryIT.java     |  160 ---
 .../db/integration/IoTDBUDTFNonAlignQueryIT.java   |  341 -----
 .../db/integration/IoTDBUnseqOverlappedPageIT.java |  127 --
 .../iotdb/db/integration/IoTDBVersionIT.java       |   68 -
 .../iotdb/db/integration/env/StandaloneEnv.java    |   93 --
 .../db/integration/env/StandaloneEnvConfig.java    |  133 --
 .../versionadaption/IoTDBDDLVersionAdaptionIT.java |  362 ------
 .../IoTDBDeletionVersionAdaptionIT.java            |  303 -----
 .../IoTDBQueryVersionAdaptionIT.java               |  320 -----
 .../session/IoTDBSessionAlignedABDeviceIT.java     |  235 ----
 .../session/IoTDBSessionAlignedAggregationIT.java  |  263 ----
 .../IoTDBSessionAlignedAggregationWithUnSeqIT.java |  196 ---
 .../iotdb/session/IoTDBSessionIteratorIT.java      |  354 -----
 .../src/test/resources/iotdb-datanode.properties   |   24 -
 integration/src/test/resources/logback-test.xml    |   58 -
 {external-api => iotdb-api/external-api}/pom.xml   |    2 +-
 .../iotdb/external/api/IPropertiesLoader.java      |    0
 .../iotdb/external/api/ISeriesNumerMonitor.java    |    0
 .../external/api/thrift/JudgableServerContext.java |    0
 .../external/api/thrift/ServerContextFactory.java  |    0
 .../external-pipe-api}/pom.xml                     |    2 +-
 .../apache/iotdb/pipe/external/api/DataType.java   |    0
 .../external/api/ExternalPipeSinkWriterStatus.java |    0
 .../pipe/external/api/IExternalPipeSinkWriter.java |    0
 .../api/IExternalPipeSinkWriterFactory.java        |    0
 {pipe-api => iotdb-api/pipe-api}/pom.xml           |    2 +-
 .../org/apache/iotdb/pipe/api/PipeCollector.java   |    0
 .../org/apache/iotdb/pipe/api/PipeConnector.java   |    0
 .../java/org/apache/iotdb/pipe/api/PipePlugin.java |    0
 .../org/apache/iotdb/pipe/api/PipeProcessor.java   |    0
 .../java/org/apache/iotdb/pipe/api/access/Row.java |    0
 .../apache/iotdb/pipe/api/access/RowIterator.java  |    0
 .../iotdb/pipe/api/collector/EventCollector.java   |    0
 .../iotdb/pipe/api/collector/RowCollector.java     |    0
 .../api/customizer/PipeParameterValidator.java     |    0
 .../iotdb/pipe/api/customizer/PipeParameters.java  |    0
 .../api/customizer/PipeRuntimeConfiguration.java   |    0
 .../iotdb/pipe/api/customizer/PipeStrategy.java    |    0
 .../PipeCollectorRuntimeConfiguration.java         |    0
 .../PipeConnectorRuntimeConfiguration.java         |    0
 .../connector/parallel/ParallelStrategy.java       |    0
 .../retry/EqualRetryIntervalStrategy.java          |    0
 .../retry/ExponentialRetryIntervalStrategy.java    |    0
 .../customizer/connector/retry/RetryStrategy.java  |    0
 .../customizer/connector/reuse/ReuseStrategy.java  |    0
 .../PipeProcessorRuntimeConfiguration.java         |    0
 .../org/apache/iotdb/pipe/api/event/Event.java     |    0
 .../org/apache/iotdb/pipe/api/event/EventType.java |    0
 .../event/dml/insertion/TabletInsertionEvent.java  |    0
 .../event/dml/insertion/TsFileInsertionEvent.java  |    0
 .../PipeAttributeNotProvidedException.java         |    0
 .../api/exception/PipeConnectionException.java     |    0
 .../iotdb/pipe/api/exception/PipeException.java    |    0
 .../api/exception/PipeManagementException.java     |    0
 .../exception/PipeParameterNotValidException.java  |    0
 .../exception/PipeRuntimeCriticalException.java    |    0
 .../pipe/api/exception/PipeRuntimeException.java   |    0
 .../exception/PipeRuntimeNonCriticalException.java |    0
 .../exception/PipeStrategyNotValidException.java   |    0
 .../org/apache/iotdb/pipe/api/type/Binary.java     |    0
 .../java/org/apache/iotdb/pipe/api/type/Type.java  |    0
 .../subscription-api}/pom.xml                      |    2 +-
 .../api/SubscriptionConfiguration.java             |    0
 .../subscription/api/SubscriptionFactory.java      |    0
 .../iotdb/subscription/api/consumer/Consumer.java  |    0
 .../api/consumer/pull/PullConsumer.java            |    0
 .../api/consumer/push/DataArrivalListener.java     |    0
 .../api/consumer/push/ExceptionListener.java       |    0
 .../api/consumer/push/PushConsumer.java            |    0
 .../api/dataset/SubscriptionDataSet.java           |    0
 .../api/exception/SubscriptionException.java       |    0
 .../SubscriptionStrategyNotValidException.java     |    0
 .../api/strategy/SubscriptionStrategy.java         |    0
 .../disorder/DisorderHandlingStrategy.java         |    0
 .../api/strategy/disorder/IntolerableStrategy.java |    0
 .../api/strategy/disorder/WatermarkStrategy.java   |    0
 .../strategy/topic/MultipleConnectionStrategy.java |    0
 .../api/strategy/topic/SingleTopicStrategy.java    |    0
 .../api/strategy/topic/TopicsStrategy.java         |    0
 {trigger-api => iotdb-api/trigger-api}/pom.xml     |    2 +-
 .../java/org/apache/iotdb/trigger/api/Trigger.java |    0
 .../iotdb/trigger/api/TriggerAttributes.java       |    0
 .../iotdb/trigger/api/enums/FailureStrategy.java   |    0
 .../iotdb/trigger/api/enums/TriggerEvent.java      |    0
 .../iotdb/trigger/api/enums/TriggerType.java       |    0
 {udf-api => iotdb-api/udf-api}/pom.xml             |    2 +-
 .../main/java/org/apache/iotdb/udf/api/UDF.java    |    0
 .../main/java/org/apache/iotdb/udf/api/UDTF.java   |    0
 .../java/org/apache/iotdb/udf/api/access/Row.java  |    0
 .../apache/iotdb/udf/api/access/RowIterator.java   |    0
 .../org/apache/iotdb/udf/api/access/RowWindow.java |    0
 .../iotdb/udf/api/collector/PointCollector.java    |    0
 .../api/customizer/config/UDFConfigurations.java   |    0
 .../api/customizer/config/UDTFConfigurations.java  |    0
 .../parameter/UDFParameterValidator.java           |    0
 .../api/customizer/parameter/UDFParameters.java    |    0
 .../api/customizer/strategy/AccessStrategy.java    |    0
 .../strategy/MappableRowByRowAccessStrategy.java   |    0
 .../strategy/RowByRowAccessStrategy.java           |    0
 .../strategy/SessionTimeWindowAccessStrategy.java  |    0
 .../strategy/SlidingSizeWindowAccessStrategy.java  |    0
 .../strategy/SlidingTimeWindowAccessStrategy.java  |    0
 .../strategy/StateWindowAccessStrategy.java        |    0
 .../UDFAttributeNotProvidedException.java          |    0
 .../iotdb/udf/api/exception/UDFException.java      |    0
 .../UDFInputSeriesDataTypeNotValidException.java   |    0
 .../UDFInputSeriesIndexNotValidException.java      |    0
 .../UDFInputSeriesNumberNotValidException.java     |    0
 .../udf/api/exception/UDFManagementException.java  |    0
 .../UDFOutputSeriesDataTypeNotValidException.java  |    0
 .../exception/UDFParameterNotValidException.java   |    0
 .../java/org/apache/iotdb/udf/api/type/Binary.java |    0
 .../java/org/apache/iotdb/udf/api/type/Type.java   |    0
 {cli => iotdb-client/cli}/pom.xml                  |    2 +-
 {cli => iotdb-client/cli}/src/assembly/cli.xml     |    0
 .../src/assembly/resources/conf/logback-cli.xml    |    0
 .../cli}/src/assembly/resources/sbin/start-cli.bat |    0
 .../cli}/src/assembly/resources/sbin/start-cli.sh  |    0
 .../src/assembly/resources/tools/export-csv.bat    |    0
 .../src/assembly/resources/tools/export-csv.sh     |    0
 .../src/assembly/resources/tools/export-tsfile.bat |    0
 .../src/assembly/resources/tools/export-tsfile.sh  |    0
 .../src/assembly/resources/tools/import-csv.bat    |    0
 .../src/assembly/resources/tools/import-csv.sh     |    0
 .../src/assembly/resources/tools/load-tsfile.bat   |    0
 .../src/assembly/resources/tools/load-tsfile.sh    |    0
 .../java/org/apache/iotdb/cli/AbstractCli.java     |    0
 .../src/main/java/org/apache/iotdb/cli/Cli.java    |    0
 .../apache/iotdb/cli/IoTDBSyntaxHighlighter.java   |    0
 .../org/apache/iotdb/cli/utils/IoTPrinter.java     |    0
 .../org/apache/iotdb/cli/utils/JlineUtils.java     |    0
 .../apache/iotdb/exception/ArgsErrorException.java |    0
 .../org/apache/iotdb/tool/AbstractCsvTool.java     |    0
 .../org/apache/iotdb/tool/AbstractTsFileTool.java  |    0
 .../main/java/org/apache/iotdb/tool/ExportCsv.java |    0
 .../java/org/apache/iotdb/tool/ExportTsFile.java   |    0
 .../main/java/org/apache/iotdb/tool/ImportCsv.java |    0
 .../java/org/apache/iotdb/cli/AbstractCliIT.java   |    0
 .../java/org/apache/iotdb/cli/AbstractScript.java  |    0
 .../iotdb/tool/integration/ExportCsvTestIT.java    |    0
 .../iotdb/tool/integration/ImportCsvTestIT.java    |    0
 .../apache/iotdb/tool/unit/WriteCsvFileTestUT.java |    0
 .../cli}/src/test/resources/logback.xml            |    0
 {client-cpp => iotdb-client/client-cpp}/README.md  |    0
 {client-cpp => iotdb-client/client-cpp}/pom.xml    |   16 +-
 .../client-cpp}/src/assembly/client-cpp.xml        |    0
 .../client-cpp}/src/main/Session.cpp               |    0
 .../client-cpp}/src/main/Session.h                 |    0
 .../client-cpp}/src/test/cpp/sessionIT.cpp         |    0
 .../client-cpp}/src/test/main.cpp                  |    0
 {client-py => iotdb-client/client-py}/.flake8      |    0
 {client-py => iotdb-client/client-py}/.gitignore   |    0
 {client-py => iotdb-client/client-py}/README.md    |    0
 .../client-py}/SessionAlignedTimeseriesExample.py  |    0
 .../client-py}/SessionExample.py                   |    0
 .../client-py}/iotdb/IoTDBContainer.py             |    0
 .../client-py}/iotdb/Session.py                    |    0
 .../client-py}/iotdb/__init__.py                   |    0
 .../client-py}/iotdb/dbapi/Connection.py           |    0
 .../client-py}/iotdb/dbapi/Cursor.py               |    0
 .../client-py}/iotdb/dbapi/Exceptions.py           |    0
 .../client-py}/iotdb/dbapi/__init__.py             |    0
 .../client-py}/iotdb/dbapi/tests/__init__.py       |    0
 .../iotdb/dbapi/tests/test_connection.py           |    0
 .../client-py}/iotdb/dbapi/tests/test_cursor.py    |    0
 .../client-py}/iotdb/sqlalchemy/IoTDBDialect.py    |    0
 .../iotdb/sqlalchemy/IoTDBIdentifierPreparer.py    |    0
 .../iotdb/sqlalchemy/IoTDBSQLCompiler.py           |    0
 .../iotdb/sqlalchemy/IoTDBTypeCompiler.py          |    0
 .../client-py}/iotdb/sqlalchemy/__init__.py        |    0
 .../client-py}/iotdb/sqlalchemy/tests/__init__.py  |    0
 .../iotdb/sqlalchemy/tests/test_dialect.py         |    0
 .../client-py}/iotdb/template/InternalNode.py      |    0
 .../client-py}/iotdb/template/MeasurementNode.py   |    0
 .../client-py}/iotdb/template/Template.py          |    0
 .../client-py}/iotdb/template/TemplateNode.py      |    0
 .../client-py}/iotdb/template/TemplateQueryType.py |    0
 .../client-py}/iotdb/template/__init__.py          |    0
 .../client-py}/iotdb/tsfile/__init__.py            |    0
 .../client-py}/iotdb/tsfile/common/__init__.py     |    0
 .../iotdb/tsfile/common/constant/TsFileConstant.py |    0
 .../iotdb/tsfile/common/constant/__init__.py       |    0
 .../client-py}/iotdb/tsfile/utils/Pair.py          |    0
 .../iotdb/tsfile/utils/ReadWriteIOUtils.py         |    0
 .../client-py}/iotdb/tsfile/utils/__init__.py      |    0
 .../client-py}/iotdb/utils/BitMap.py               |    0
 .../client-py}/iotdb/utils/Field.py                |    0
 .../iotdb/utils/IoTDBConnectionException.py        |    0
 .../client-py}/iotdb/utils/IoTDBConstants.py       |    0
 .../client-py}/iotdb/utils/IoTDBRpcDataSet.py      |    0
 .../client-py}/iotdb/utils/NumpyTablet.py          |    0
 .../client-py}/iotdb/utils/RowRecord.py            |    0
 .../client-py}/iotdb/utils/SessionDataSet.py       |    0
 .../client-py}/iotdb/utils/Tablet.py               |    0
 .../client-py}/iotdb/utils/__init__.py             |    0
 {client-py => iotdb-client/client-py}/pom.xml      |    2 +-
 .../client-py}/pyproject.toml                      |    0
 {client-py => iotdb-client/client-py}/release.sh   |    0
 {client-py => iotdb-client/client-py}/setup.py     |    0
 .../client-py}/tests/__init__.py                   |    0
 .../tests/tablet_performance_comparison.py         |    0
 .../client-py}/tests/test_aligned_timeseries.py    |    0
 .../client-py}/tests/test_dataframe.py             |    0
 .../client-py}/tests/test_delete_data.py           |    0
 .../client-py}/tests/test_numpy_tablet.py          |    0
 .../client-py}/tests/test_one_device.py            |    0
 .../client-py}/tests/test_session.py               |    0
 .../client-py}/tests/test_tablet.py                |    0
 .../client-py}/tests/test_template.py              |    0
 .../client-py}/tests/test_todf.py                  |    0
 .../compile-tools}/README.md                       |    0
 .../compile-tools}/pom.xml                         |    2 +-
 .../compile-tools}/thrift/pom.xml                  |    0
 {isession => iotdb-client/isession}/pom.xml        |    1 +
 .../java/org/apache/iotdb/isession/ISession.java   |    0
 .../org/apache/iotdb/isession/SessionConfig.java   |    0
 .../org/apache/iotdb/isession/SessionDataSet.java  |    0
 .../apache/iotdb/isession/pool/ISessionPool.java   |    0
 .../iotdb/isession/pool/SessionDataSetWrapper.java |    0
 .../apache/iotdb/isession/template/Template.java   |    0
 .../iotdb/isession/template/TemplateNode.java      |    0
 .../apache/iotdb/isession/util/SystemStatus.java   |    0
 .../org/apache/iotdb/isession/util/Version.java    |    0
 {jdbc => iotdb-client/jdbc}/README.md              |    0
 {jdbc => iotdb-client/jdbc}/osgi.bnd               |    0
 {jdbc => iotdb-client/jdbc}/pom.xml                |    2 +-
 .../jdbc}/src/main/feature/feature.xml             |    0
 .../iotdb/jdbc/AbstractIoTDBJDBCResultSet.java     |    0
 .../main/java/org/apache/iotdb/jdbc/Activator.java |    0
 .../main/java/org/apache/iotdb/jdbc/Config.java    |    0
 .../main/java/org/apache/iotdb/jdbc/Constant.java  |    0
 .../src/main/java/org/apache/iotdb/jdbc/Field.java |    0
 .../iotdb/jdbc/GroupedLSBWatermarkEncoder.java     |    0
 .../org/apache/iotdb/jdbc/IoTDBConnection.java     |    0
 .../apache/iotdb/jdbc/IoTDBConnectionParams.java   |    0
 .../org/apache/iotdb/jdbc/IoTDBDataSource.java     |    0
 .../apache/iotdb/jdbc/IoTDBDataSourceFactory.java  |    0
 .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java   |    0
 .../java/org/apache/iotdb/jdbc/IoTDBDriver.java    |    0
 .../org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java  |    0
 .../iotdb/jdbc/IoTDBNonAlignJDBCResultSet.java     |    0
 .../apache/iotdb/jdbc/IoTDBPreparedStatement.java  |    0
 .../org/apache/iotdb/jdbc/IoTDBResultMetadata.java |    0
 .../org/apache/iotdb/jdbc/IoTDBSQLException.java   |    0
 .../java/org/apache/iotdb/jdbc/IoTDBStatement.java |    0
 .../org/apache/iotdb/jdbc/IoTDBTracingInfo.java    |    0
 .../org/apache/iotdb/jdbc/IoTDBURLException.java   |    0
 .../java/org/apache/iotdb/jdbc/StringUtils.java    |    0
 .../src/main/java/org/apache/iotdb/jdbc/Utils.java |    0
 .../org/apache/iotdb/jdbc/WatermarkEncoder.java    |    0
 .../resources/services/META-INF/java.sql.Driver    |    0
 .../test/java/org/apache/iotdb/jdbc/BatchTest.java |    0
 .../org/apache/iotdb/jdbc/IoTDBConnectionTest.java |    0
 .../iotdb/jdbc/IoTDBDatabaseMetadataTest.java      |    0
 .../apache/iotdb/jdbc/IoTDBJDBCResultSetTest.java  |    0
 .../iotdb/jdbc/IoTDBPreparedStatementTest.java     |    0
 .../apache/iotdb/jdbc/IoTDBResultMetadataTest.java |    0
 .../org/apache/iotdb/jdbc/IoTDBStatementTest.java  |    0
 .../test/java/org/apache/iotdb/jdbc/UtilsTest.java |    0
 {service-rpc => iotdb-client/service-rpc}/pom.xml  |    2 +-
 .../org/apache/iotdb/rpc/AutoResizingBuffer.java   |    0
 .../iotdb/rpc/AutoScalingBufferReadTransport.java  |    0
 .../iotdb/rpc/AutoScalingBufferWriteTransport.java |    0
 .../apache/iotdb/rpc/BatchExecutionException.java  |    0
 .../iotdb/rpc/ConfigNodeConnectionException.java   |    0
 .../apache/iotdb/rpc/ConfigurableTByteBuffer.java  |    0
 .../iotdb/rpc/InfluxDBSynchronizedHandler.java     |    0
 .../apache/iotdb/rpc/IoTDBConnectionException.java |    0
 .../org/apache/iotdb/rpc/IoTDBJDBCDataSet.java     |    0
 .../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java |    0
 .../apache/iotdb/rpc/NoValidValueException.java    |    0
 .../org/apache/iotdb/rpc/NonOpenTransport.java     |    0
 .../org/apache/iotdb/rpc/RedirectException.java    |    0
 .../main/java/org/apache/iotdb/rpc/RpcStat.java    |    0
 .../org/apache/iotdb/rpc/RpcTransportFactory.java  |    0
 .../main/java/org/apache/iotdb/rpc/RpcUtils.java   |    0
 .../iotdb/rpc/StatementExecutionException.java     |    0
 .../org/apache/iotdb/rpc/SynchronizedHandler.java  |    0
 .../rpc/TCompressedElasticFramedTransport.java     |    0
 .../org/apache/iotdb/rpc/TConfigurationConst.java  |    0
 .../apache/iotdb/rpc/TElasticFramedTransport.java  |    0
 .../iotdb/rpc/TNonblockingSocketWrapper.java       |    0
 .../java/org/apache/iotdb/rpc/TSStatusCode.java    |    0
 .../iotdb/rpc/TSnappyElasticFramedTransport.java   |    0
 .../java/org/apache/iotdb/rpc/TSocketWrapper.java  |    0
 .../rpc/TimeoutChangeableTFastFramedTransport.java |    0
 .../TimeoutChangeableTSnappyFramedTransport.java   |    0
 .../iotdb/rpc/TimeoutChangeableTransport.java      |    0
 .../org/apache/iotdb/rpc/TSStatusCodeTest.java     |    0
 {session => iotdb-client/session}/pom.xml          |    2 +-
 .../org/apache/iotdb/session/InsertConsumer.java   |    0
 .../java/org/apache/iotdb/session/Session.java     |    0
 .../apache/iotdb/session/SessionConnection.java    |    0
 .../org/apache/iotdb/session/pool/SessionPool.java |    0
 .../iotdb/session/template/InternalNode.java       |    0
 .../iotdb/session/template/MeasurementNode.java    |    0
 .../iotdb/session/template/TemplateQueryType.java  |    0
 .../apache/iotdb/session/util/SessionUtils.java    |    0
 .../org/apache/iotdb/session/util/ThreadUtils.java |    0
 .../apache/iotdb/session/SessionCacheLeaderUT.java |    0
 .../java/org/apache/iotdb/session/TabletTest.java  |    0
 .../apache/iotdb/session/pool/SessionPoolTest.java |    0
 .../apache/iotdb/session/util/ThreadUtilsTest.java |    0
 .../src/test/resources/iotdb-common.properties     |    0
 .../src/test/resources/iotdb-datanode.properties   |    0
 .../session}/src/test/resources/logback.xml        |    0
 .../flink-iotdb-connector}/README.md               |    0
 .../flink-iotdb-connector}/pom.xml                 |    2 +-
 .../iotdb/flink/DefaultIoTSerializationSchema.java |    0
 .../main/java/org/apache/iotdb/flink/Event.java    |    0
 .../java/org/apache/iotdb/flink/IoTDBSink.java     |    0
 .../java/org/apache/iotdb/flink/IoTDBSource.java   |    0
 .../apache/iotdb/flink/IoTSerializationSchema.java |    0
 .../apache/iotdb/flink/options/IoTDBOptions.java   |    0
 .../iotdb/flink/options/IoTDBSinkOptions.java      |    0
 .../iotdb/flink/options/IoTDBSourceOptions.java    |    0
 .../flink/DefaultIoTSerializationSchemaTest.java   |    0
 .../iotdb/flink/IoTDBSinkBatchInsertTest.java      |    0
 .../iotdb/flink/IoTDBSinkBatchTimerTest.java       |    0
 .../apache/iotdb/flink/IoTDBSinkInsertTest.java    |    0
 .../flink-tsfile-connector}/README.md              |    0
 .../flink-tsfile-connector}/pom.xml                |    2 +-
 .../apache/iotdb/flink/tsfile/RowRecordParser.java |    0
 .../iotdb/flink/tsfile/RowRowRecordParser.java     |    0
 .../iotdb/flink/tsfile/RowTSRecordConverter.java   |    0
 .../iotdb/flink/tsfile/TSRecordConverter.java      |    0
 .../iotdb/flink/tsfile/TSRecordOutputFormat.java   |    0
 .../iotdb/flink/tsfile/TsFileInputFormat.java      |    0
 .../iotdb/flink/tsfile/TsFileOutputFormat.java     |    0
 .../iotdb/flink/tsfile/util/TSFileConfigUtil.java  |    0
 .../RowTSRecordOutputFormatIntegrationTest.java    |    0
 .../flink/tsfile/RowTSRecordOutputFormatTest.java  |    0
 .../flink/tsfile/RowTsFileConnectorTestBase.java   |    0
 .../RowTsFileInputFormatIntegrationTest.java       |    0
 .../flink/tsfile/RowTsFileInputFormatTest.java     |    0
 .../flink/tsfile/RowTsFileInputFormatTestBase.java |    0
 .../tsfile/RowTsFileOutputFormatTestBase.java      |    0
 .../util/TSFileConfigUtilCompletenessTest.java     |    0
 .../apache/iotdb/flink/util/TsFileWriteUtil.java   |    0
 .../grafana-connector}/img/add_data_source.png     |  Bin
 .../grafana-connector}/img/add_graph.png           |  Bin
 .../grafana-connector}/img/edit_data_source.png    |  Bin
 .../grafana-connector}/pom.xml                     |    2 +-
 .../grafana-connector}/readme.md                   |    0
 .../grafana-connector}/readme_zh.md                |    0
 .../web/grafana/TsfileWebDemoApplication.java      |    0
 .../apache/iotdb/web/grafana/bean/TimeValues.java  |    0
 .../iotdb/web/grafana/conf/MyConfiguration.java    |    0
 .../controller/DatabaseConnectController.java      |    0
 .../org/apache/iotdb/web/grafana/dao/BasicDao.java |    0
 .../iotdb/web/grafana/dao/impl/BasicDaoImpl.java   |    0
 .../web/grafana/interceptor/LoginInterceptor.java  |    0
 .../grafana/service/DatabaseConnectService.java    |    0
 .../service/impl/DatabaseConnectServiceImpl.java   |    0
 .../src/main/resources/application.properties      |    0
 .../web/grafana/dao/impl/BasicDaoImplTest.java     |    0
 .../grafana-plugin}/.gitignore                     |    0
 .../grafana-plugin}/.prettierrc.js                 |    0
 .../grafana-plugin}/CHANGELOG.md                   |    0
 .../grafana-plugin}/LICENSE                        |    0
 .../grafana-plugin}/Magefile.go                    |    0
 .../grafana-plugin}/README.md                      |    0
 .../grafana-plugin}/backend-compile.bat            |    0
 .../grafana-plugin}/backend-compile.sh             |    0
 .../grafana-plugin}/go.mod                         |    0
 .../grafana-plugin}/jest.config.js                 |    0
 .../grafana-plugin}/package.json                   |    0
 .../grafana-plugin}/pkg/main.go                    |    0
 .../pkg/plugin/iotdb_resource_handler.go           |    0
 .../grafana-plugin}/pkg/plugin/plugin.go           |    0
 .../grafana-plugin}/pom.xml                        |    2 +-
 .../grafana-plugin}/src/ConfigEditor.tsx           |    0
 .../grafana-plugin}/src/QueryEditor.tsx            |    0
 .../src/componments/AggregateFun.tsx               |    0
 .../src/componments/ControlValue.tsx               |    0
 .../grafana-plugin}/src/componments/FillValue.tsx  |    0
 .../grafana-plugin}/src/componments/Form.tsx       |    0
 .../grafana-plugin}/src/componments/FromValue.tsx  |    0
 .../grafana-plugin}/src/componments/GroupBy.tsx    |    0
 .../src/componments/SelectValue.tsx                |    0
 .../grafana-plugin}/src/componments/TimeSeries.tsx |    0
 .../grafana-plugin}/src/componments/WhereValue.tsx |    0
 .../grafana-plugin}/src/datasource.ts              |    0
 .../grafana-plugin}/src/functions.ts               |    0
 .../grafana-plugin}/src/img/addIoTDBDataSource.png |  Bin
 .../grafana-plugin}/src/img/logo.svg               |    0
 .../grafana-plugin}/src/img/showData.png           |  Bin
 .../grafana-plugin}/src/module.ts                  |    0
 .../grafana-plugin}/src/plugin.json                |    0
 .../grafana-plugin}/src/types.ts                   |    0
 .../grafana-plugin}/tsconfig.json                  |    0
 .../grafana-plugin}/yarn.lock                      |    0
 {hadoop => iotdb-connector/hadoop}/README.md       |    0
 {hadoop => iotdb-connector/hadoop}/pom.xml         |    2 +-
 .../iotdb/hadoop/fileSystem/HDFSConfUtil.java      |    0
 .../apache/iotdb/hadoop/fileSystem/HDFSFile.java   |    0
 .../apache/iotdb/hadoop/fileSystem/HDFSInput.java  |    0
 .../apache/iotdb/hadoop/fileSystem/HDFSOutput.java |    0
 .../org/apache/iotdb/hadoop/tsfile/IReaderSet.java |    0
 .../iotdb/hadoop/tsfile/TSFHadoopException.java    |    0
 .../apache/iotdb/hadoop/tsfile/TSFInputFormat.java |    0
 .../apache/iotdb/hadoop/tsfile/TSFInputSplit.java  |    0
 .../iotdb/hadoop/tsfile/TSFOutputFormat.java       |    0
 .../iotdb/hadoop/tsfile/TSFRecordReader.java       |    0
 .../iotdb/hadoop/tsfile/TSFRecordWriter.java       |    0
 .../iotdb/hadoop/tsfile/record/HDFSTSRecord.java   |    0
 .../apache/iotdb/hadoop/tsfile/TSFHadoopTest.java  |    0
 .../iotdb/hadoop/tsfile/TSFInputSplitTest.java     |    0
 .../iotdb/hadoop/tsfile/TsFileTestHelper.java      |    0
 .../iotdb/hadoop/tsfile/constant/TestConstant.java |    0
 .../hadoop}/src/test/resources/logback.xml         |    0
 .../hive-connector}/pom.xml                        |    2 +-
 .../org/apache/iotdb/hive/TSFHiveInputFormat.java  |    0
 .../org/apache/iotdb/hive/TSFHiveOutputFormat.java |    0
 .../org/apache/iotdb/hive/TSFHiveRecordReader.java |    0
 .../org/apache/iotdb/hive/TSFHiveRecordWriter.java |    0
 .../org/apache/iotdb/hive/TsFileDeserializer.java  |    0
 .../java/org/apache/iotdb/hive/TsFileSerDe.java    |    0
 .../apache/iotdb/hive/TsFileSerDeException.java    |    0
 .../apache/iotdb/hive/TSFHiveInputFormatTest.java  |    0
 .../apache/iotdb/hive/TSFHiveRecordReaderTest.java |    0
 .../apache/iotdb/hive/TsFileDeserializerTest.java  |    0
 .../org/apache/iotdb/hive/TsFileSerDeTest.java     |    0
 .../org/apache/iotdb/hive/TsFileTestHelper.java    |    0
 .../apache/iotdb/hive/constant/TestConstant.java   |    0
 .../hive-connector}/src/test/resources/logback.xml |    0
 .../influxdb-protocol}/pom.xml                     |    2 +-
 .../org/apache/iotdb/influxdb/IoTDBInfluxDB.java   |    0
 .../iotdb/influxdb/IoTDBInfluxDBFactory.java       |    0
 .../protocol/constant/InfluxDBConstant.java        |    0
 .../iotdb/influxdb/protocol/dto/SessionPoint.java  |    0
 .../protocol/impl/IoTDBInfluxDBService.java        |    0
 .../influxdb/protocol/util/ParameterUtils.java     |    0
 .../iotdb/influxdb/session/InfluxDBSession.java    |    0
 .../influxdb/integration/IoTDBInfluxDBIT.java      |    0
 .../spark-iotdb-connector}/pom.xml                 |    2 +-
 .../spark-iotdb-connector}/scala_2.11/pom.xml      |    2 +-
 .../spark-iotdb-connector}/scala_2.12/pom.xml      |    2 +-
 .../org/apache/iotdb/spark/db/Converter.scala      |    0
 .../org/apache/iotdb/spark/db/DataFrameTools.scala |    0
 .../org/apache/iotdb/spark/db/DefaultSource.scala  |    0
 .../org/apache/iotdb/spark/db/IoTDBOptions.scala   |    0
 .../scala/org/apache/iotdb/spark/db/IoTDBRDD.scala |    0
 .../org/apache/iotdb/spark/db/IoTDBRelation.scala  |    0
 .../org/apache/iotdb/spark/db/SQLConstant.scala    |    0
 .../org/apache/iotdb/spark/db/Transformer.scala    |    0
 .../scala/org/apache/iotdb/spark/db/package.scala  |    0
 .../spark-tsfile}/pom.xml                          |    2 +-
 .../iotdb/spark/tsfile/io/TsFileOutputFormat.java  |    0
 .../iotdb/spark/tsfile/io/TsFileRecordWriter.java  |    0
 .../org/apache/iotdb/spark/tsfile/qp/Executor.java |    0
 .../iotdb/spark/tsfile/qp/QueryProcessor.java      |    0
 .../spark/tsfile/qp/common/BasicOperator.java      |    0
 .../spark/tsfile/qp/common/FilterOperator.java     |    0
 .../iotdb/spark/tsfile/qp/common/Operator.java     |    0
 .../iotdb/spark/tsfile/qp/common/SQLConstant.java  |    0
 .../iotdb/spark/tsfile/qp/common/SingleQuery.java  |    0
 .../iotdb/spark/tsfile/qp/common/TSQueryPlan.java  |    0
 .../qp/exception/BasicOperatorException.java       |    0
 .../tsfile/qp/exception/DNFOptimizeException.java  |    0
 .../qp/exception/LogicalOptimizeException.java     |    0
 .../tsfile/qp/exception/MergeFilterException.java  |    0
 .../qp/exception/QueryOperatorException.java       |    0
 .../qp/exception/QueryProcessorException.java      |    0
 .../tsfile/qp/exception/RemoveNotException.java    |    0
 .../tsfile/qp/optimizer/DNFFilterOptimizer.java    |    0
 .../tsfile/qp/optimizer/IFilterOptimizer.java      |    0
 .../qp/optimizer/MergeSingleFilterOptimizer.java   |    0
 .../tsfile/qp/optimizer/PhysicalOptimizer.java     |    0
 .../tsfile/qp/optimizer/RemoveNotOptimizer.java    |    0
 .../org/apache/iotdb/spark/tsfile/Converter.scala  |    0
 .../apache/iotdb/spark/tsfile/DefaultSource.scala  |    0
 .../iotdb/spark/tsfile/NarrowConverter.scala       |    0
 .../spark/tsfile/NarrowTsFileOutputWriter.scala    |    0
 .../apache/iotdb/spark/tsfile/Transformer.scala    |    0
 .../iotdb/spark/tsfile/TsFileWriterFactory.scala   |    0
 .../apache/iotdb/spark/tsfile/WideConverter.scala  |    0
 .../spark/tsfile/WideTsFileOutputWriter.scala      |    0
 .../org/apache/iotdb/spark/tsfile/package.scala    |    0
 .../apache/iotdb/spark/constant/TestConstant.java  |    0
 .../org/apache/iotdb/spark/tool/TsFileExample.java |    0
 .../apache/iotdb/spark/tool/TsFileWriteTool.java   |    0
 .../apache/iotdb/spark/tsfile/ConverterTest.scala  |    0
 .../apache/iotdb/spark/tsfile/HDFSInputTest.java   |    0
 .../org/apache/iotdb/spark/tsfile/TSFileSuit.scala |    0
 .../zeppelin-interpreter}/IoTDB-Zeppelin-Demo.zpln |    0
 .../zeppelin-interpreter}/pom.xml                  |    2 +-
 .../apache/zeppelin/iotdb/IoTDBInterpreter.java    |    0
 .../src/main/resources/interpreter-setting.json    |    0
 {openapi => iotdb-protocol/openapi}/pom.xml        |    2 +-
 .../src/main/openapi3/iotdb_rest_common.yaml       |    0
 .../openapi}/src/main/openapi3/iotdb_rest_v1.yaml  |    0
 .../openapi}/src/main/openapi3/iotdb_rest_v2.yaml  |    0
 .../thrift-commons}/pom.xml                        |    2 +-
 .../thrift-commons}/src/main/thrift/common.thrift  |    0
 .../thrift-confignode}/pom.xml                     |    2 +-
 .../src/main/thrift/confignode.thrift              |    0
 .../thrift-influxdb}/README.md                     |    0
 .../thrift-influxdb}/pom.xml                       |    2 +-
 .../src/main/thrift/influxdb.thrift                |    0
 .../thrift-iot-consensus}/pom.xml                  |    2 +-
 .../src/main/thrift/iotconsensus.thrift            |    0
 .../thrift-mlnode}/pom.xml                         |    2 +-
 .../thrift-mlnode}/src/main/thrift/mlnode.thrift   |    0
 {thrift => iotdb-protocol/thrift}/README.md        |    0
 {thrift => iotdb-protocol/thrift}/pom.xml          |    2 +-
 .../thrift}/rpc-changelist.md                      |    0
 .../thrift}/src/main/thrift/client.thrift          |    0
 .../thrift}/src/main/thrift/datanode.thrift        |    0
 pom.xml                                            |   66 +-
 585 files changed, 72 insertions(+), 20170 deletions(-)

diff --git a/client-cpp/src/main/CMakeLists.txt b/client-cpp/src/main/CMakeLists.txt
deleted file mode 100644
index 5a044a6383f..00000000000
--- a/client-cpp/src/main/CMakeLists.txt
+++ /dev/null
@@ -1,54 +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.
-#
-
-CMAKE_MINIMUM_REQUIRED(VERSION 3.7)
-PROJECT(iotdb_session CXX)
-SET(CMAKE_CXX_STANDARD 11)
-SET(CMAKE_CXX_STANDARD_REQUIRED ON)
-SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -g -O2 ")
-SET(TOOLS_DIR "${CMAKE_SOURCE_DIR}/../../../../compile-tools")
-
-# Add Thrift include directory
-INCLUDE_DIRECTORIES(${TOOLS_DIR}/thrift/target/thrift-0.14.1/lib/cpp/src)
-
-FIND_PACKAGE(Boost REQUIRED)
-IF (DEFINED BOOST_INCLUDEDIR)
-    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
-ENDIF()
-
-IF(MSVC)
-    SET(THRIFT_STATIC_LIB "${TOOLS_DIR}/thrift/target/build/lib/Release/thriftmd.lib")
-ELSE()
-    SET(THRIFT_STATIC_LIB "${TOOLS_DIR}/thrift/target/build/lib/libthrift.a")
-ENDIF()
-
-# Add Boost include path for MacOS
-INCLUDE_DIRECTORIES(/usr/local/include)
-
-# Add ./generated-sources-cpp as a Cmake subdirectory
-AUX_SOURCE_DIRECTORY(./generated-sources-cpp SESSION_SRCS)
-
-IF(MSVC)
-    ADD_LIBRARY(iotdb_session ${SESSION_SRCS})
-ELSE()
-    ADD_LIBRARY(iotdb_session SHARED ${SESSION_SRCS})
-ENDIF()
-
-# Link with Thrift static library
-TARGET_LINK_LIBRARIES(iotdb_session ${THRIFT_STATIC_LIB})
diff --git a/client-cpp/src/test/CMakeLists.txt b/client-cpp/src/test/CMakeLists.txt
deleted file mode 100644
index 7d6d18bcd5f..00000000000
--- a/client-cpp/src/test/CMakeLists.txt
+++ /dev/null
@@ -1,63 +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.
-#
-
-CMAKE_MINIMUM_REQUIRED(VERSION 3.7)
-INCLUDE( CTest )
-SET(CMAKE_CXX_STANDARD 11)
-SET(CMAKE_CXX_STANDARD_REQUIRED ON)
-SET(TARGET_NAME session_tests)
-SET(TOOLS_DIR "${CMAKE_SOURCE_DIR}/../../../../compile-tools")
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -g -O2")
-ENABLE_TESTING()
-
-# Add Boost include path for MacOS
-INCLUDE_DIRECTORIES(/usr/local/include)
-# Add Session related include files
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/../main/generated-sources-cpp)
-# Add Thrift include directory
-INCLUDE_DIRECTORIES(${TOOLS_DIR}/thrift/target/thrift-0.14.1/lib/cpp/src)
-
-find_package(Boost REQUIRED)
-IF (DEFINED BOOST_INCLUDEDIR)
-    include_directories("${Boost_INCLUDE_DIR}")
-ENDIF()
-
-# Link directories are different for Windows and Linux/Mac
-IF(MSVC)
-    LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/../main/Release)
-    SET(THRIFT_STATIC_LIB "${TOOLS_DIR}/thrift/target/build/lib/Release/thriftmd.lib")
-ELSE()
-    LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/../main)
-ENDIF()
-
-ADD_EXECUTABLE(${TARGET_NAME} main.cpp cpp/sessionIT.cpp)
-
-# Link with shared library iotdb_session and pthread
-IF(MSVC)
-    TARGET_LINK_LIBRARIES(${TARGET_NAME} iotdb_session ${THRIFT_STATIC_LIB})
-ELSE()
-    TARGET_LINK_LIBRARIES(${TARGET_NAME} iotdb_session pthread)
-ENDIF()
-TARGET_INCLUDE_DIRECTORIES(${TARGET_NAME} PUBLIC ./catch2/)
-
-# Add 'sessionIT' to the project to be run by ctest
-IF(MSVC)
-    ADD_TEST(NAME sessionIT CONFIGURATIONS Release COMMAND ${TARGET_NAME})
-ELSE()
-    ADD_TEST(NAME sessionIT COMMAND ${TARGET_NAME})
-ENDIF()
diff --git a/client-py/requirements.txt b/client-py/requirements.txt
deleted file mode 100644
index 521bb7ed836..00000000000
--- a/client-py/requirements.txt
+++ /dev/null
@@ -1,26 +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.
-#
-
-# Pandas Export
-pandas>=1.3.5
-# Testcontainer
-testcontainers==3.3.0
-numpy>=1.21.4
-# SQLAlchemy Dialect
-sqlalchemy == 1.3.20
-sqlalchemy-utils == 0.36.8
\ No newline at end of file
diff --git a/client-py/requirements_dev.txt b/client-py/requirements_dev.txt
deleted file mode 100644
index 304a07c3172..00000000000
--- a/client-py/requirements_dev.txt
+++ /dev/null
@@ -1,27 +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.
-#
-
--r requirements.txt
-# Pytest to run tests
-pytest==7.2.0
-thrift==0.14.1
-flake8==3.9.0
-black==20.8b1
-# For releases
-twine==3.4.1
-wheel==0.38.1
\ No newline at end of file
diff --git a/grafana-plugin/go.sum b/grafana-plugin/go.sum
deleted file mode 100644
index 209251e6b0d..00000000000
--- a/grafana-plugin/go.sum
+++ /dev/null
@@ -1,660 +0,0 @@
-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
-cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
-cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
-cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
-cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
-cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
-cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
-cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
-cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
-cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
-cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
-cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
-cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
-cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
-cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
-cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
-cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
-cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
-cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
-cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
-cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
-cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
-cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
-cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
-cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
-cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
-cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
-cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
-cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
-cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
-dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
-gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
-github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
-github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
-github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 h1:q4dksr6ICHXqG5hm0ZW5IHyeEJXoIJSOZeBLmWPNeIQ=
-github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40/go.mod h1:Q7yQnSMnLvcXlZ8RV+jwz/6y1rQTqbX6C82SndT52Zs=
-github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
-github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
-github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
-github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
-github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE=
-github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ=
-github.com/chromedp/cdproto v0.0.0-20220208224320-6efb837e6bc2 h1:XCdvHbz3LhewBHN7+mQPx0sg/Hxil/1USnBmxkjHcmY=
-github.com/chromedp/cdproto v0.0.0-20220208224320-6efb837e6bc2/go.mod h1:At5TxYYdxkbQL0TSefRjhLE3Q0lgvqKKMSFUglJ7i1U=
-github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww=
-github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
-github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
-github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
-github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/elazarl/goproxy v0.0.0-20220115173737-adb46da277ac h1:XDAn206aIqKPdF5YczuuJXSQPx+WOen0Pxbxp5Fq8Pg=
-github.com/elazarl/goproxy v0.0.0-20220115173737-adb46da277ac/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
-github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8=
-github.com/elazarl/goproxy/ext v0.0.0-20220115173737-adb46da277ac h1:9yrT5tmn9Zc0ytWPASlaPwQfQMQYnRf0RSDe1XvHw0Q=
-github.com/elazarl/goproxy/ext v0.0.0-20220115173737-adb46da277ac/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
-github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
-github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
-github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
-github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
-github.com/getkin/kin-openapi v0.94.0 h1:bAxg2vxgnHHHoeefVdmGbR+oxtJlcv5HsJJa3qmAHuo=
-github.com/getkin/kin-openapi v0.94.0/go.mod h1:LWZfzOd7PRy8GJ1dJ6mCU6tNdSfOwRac1BUPam4aw6Q=
-github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
-github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
-github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
-github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks=
-github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
-github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY=
-github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
-github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
-github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
-github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
-github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U=
-github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
-github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
-github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
-github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
-github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM=
-github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
-github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
-github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
-github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
-github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
-github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
-github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
-github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
-github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
-github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
-github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/flatbuffers v2.0.0+incompatible h1:dicJ2oXwypfwUGnB2/TYWYEKiuk9eYQlQO/AnOHl5mI=
-github.com/google/flatbuffers v2.0.0+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o=
-github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
-github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
-github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
-github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
-github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
-github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
-github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
-github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
-github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
-github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
-github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
-github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
-github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
-github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
-github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
-github.com/grafana/grafana-plugin-sdk-go v0.139.0 h1:2RQKM2QpSaWTtaGN6sK+R7LO7zykOeTYF0QkAMA7JsI=
-github.com/grafana/grafana-plugin-sdk-go v0.139.0/go.mod h1:Y+Ps2sesZ62AyCnX+hzrYnyDQYe/ZZl+A8yKLOBm12c=
-github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
-github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
-github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
-github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
-github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
-github.com/hashicorp/go-hclog v0.14.1 h1:nQcJDQwIAGnmoUWp8ubocEX40cCml/17YkF6csQLReU=
-github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
-github.com/hashicorp/go-plugin v1.4.3 h1:DXmvivbWD5qdiBts9TpBC7BYL1Aia5sxbRgQB+v6UZM=
-github.com/hashicorp/go-plugin v1.4.3/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ=
-github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=
-github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d h1:kJCB4vdITiW1eC1vq2e6IsrXKrZit1bv/TDYFGMp4BQ=
-github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=
-github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
-github.com/jhump/protoreflect v1.6.0 h1:h5jfMVslIg6l29nsMs0D8Wj17RDVdNYti0vDN/PZZoE=
-github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74=
-github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
-github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
-github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
-github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
-github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
-github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
-github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
-github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
-github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
-github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
-github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
-github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.13.1 h1:wXr2uRxZTJXHLly6qhJabee5JqIhTRoLBhDOA74hDEQ=
-github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
-github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
-github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
-github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/magefile/mage v1.12.1/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
-github.com/magefile/mage v1.13.0 h1:XtLJl8bcCM7EFoO8FyH8XK3t7G5hQAeK+i4tq+veT9M=
-github.com/magefile/mage v1.13.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
-github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
-github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/mattetti/filebuffer v1.0.1 h1:gG7pyfnSIZCxdoKq+cPa8T0hhYtD9NxCdI4D7PTjRLM=
-github.com/mattetti/filebuffer v1.0.1/go.mod h1:YdMURNDOttIiruleeVr6f56OrMc+MydEnTcXwtkxNVs=
-github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA=
-github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
-github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.10 h1:qxFzApOv4WsAL965uUPIsXzAKCZxN2p9UqdhFS4ZW10=
-github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
-github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
-github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
-github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
-github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
-github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0=
-github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
-github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
-github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
-github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
-github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
-github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
-github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
-github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
-github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw=
-github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
-github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
-github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
-github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY=
-github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
-github.com/pierrec/lz4/v4 v4.1.8 h1:ieHkV+i2BRzngO4Wd/3HGowuZStgq6QkPsD1eolNAO4=
-github.com/pierrec/lz4/v4 v4.1.8/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
-github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
-github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk=
-github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
-github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
-github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
-github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=
-github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
-github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
-github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
-github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc=
-github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=
-github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
-github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s=
-github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
-github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
-go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
-go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
-go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
-go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
-go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
-go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
-go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
-golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
-golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE=
-golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
-golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
-golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
-golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
-golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
-golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6 h1:QE6XYQK6naiK1EPAe1g/ILLxN5RBoH5xkJk3CqlMI/Y=
-golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
-golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
-golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
-golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
-golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
-golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
-golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
-golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
-golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
-golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
-golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
-golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q=
-golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 h1:XfKQ4OlFl8okEOr5UvAqFRVj8pY/4yfcXrddB8qAbU0=
-golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
-golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
-golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
-golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
-golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
-golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
-golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
-golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
-gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0=
-gonum.org/v1/gonum v0.9.3 h1:DnoIG+QAMaF5NvxnGe/oKsgKcAc6PcUyl8q0VetfQ8s=
-gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0=
-gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
-gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
-gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY=
-google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
-google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
-google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
-google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
-google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
-google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
-google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
-google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
-google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
-google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
-google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
-google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
-google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
-google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
-google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
-google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
-google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
-google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
-google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
-google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
-google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210630183607-d20f26d13c79 h1:s1jFTXJryg4a1mew7xv03VZD8N9XjxFhk1o4Js4WvPQ=
-google.golang.org/genproto v0.0.0-20210630183607-d20f26d13c79/go.mod h1:yiaVoXHpRzHGyxV3o4DktVWY4mSUErTKaeEOq6C3t3U=
-google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
-google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
-google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
-google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
-google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
-google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
-google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
-google.golang.org/grpc v1.41.0 h1:f+PlOh7QV4iIJkPrx5NQ7qaNGFQ3OTse67yaDHfju4E=
-google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k=
-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
-google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
-google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
-gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
-gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
-gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
-honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
-rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
-rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
-rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
\ No newline at end of file
diff --git a/integration/README.md b/integration/README.md
deleted file mode 100644
index 7f7aa54fd26..00000000000
--- a/integration/README.md
+++ /dev/null
@@ -1,120 +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.
-
--->
-
-Integration Testing
-===================
-
-All integration tests are in this module.
-
-Now integration testing supports three modes, the Local Standalone mode, the Cluster mode and the Remote mode.
-
-Integration Testing with Local Standalone Mode
--------------------
-
-Integration testing with local standalone mode can be run with both maven and IDEs like IntelliJ.
-
-If you want to run all tests include UT and IT, the maven command is:
-```
-mvn clean verify -P '!testcontainer,!influxdb-protocol'
-```
-
-Optionally, you can also only run IT, the maven command is:
-```
-mvn clean verify -Dsession.test.skip=true -Diotdb.test.skip=true -Dcluster.test.skip=true -Dtsfile.test.skip=true -pl integration -am
-```
-
--------
-And if you want to run IT in the IDE like IntelliJ, you need to achieve the effect as the `LocalStandalone` profile in maven. Follow Steps 1-4 to achieve it.
-
-- Step 1. Run(Menu) -> Edit Configurations...  
-  ![Run(Menu)](https://github.com/apache/iotdb-bin-resources/blob/main/integration/pic/Run(Menu).png?raw=true)  
-  
-  
-- Step 2. Add New Configuration -> JUnit  
-  ![Add New Configuration](https://github.com/apache/iotdb-bin-resources/blob/main/integration/pic/Add_New_Configuration.png?raw=true)  
-  
-  
-- Step 3. Input some fields as the following picture  
-  ![Standalone Category](https://github.com/apache/iotdb-bin-resources/blob/main/integration/pic/Standalone_Category.png?raw=true)  
-  
-  
-- Step 4. Pay attention to the `Fork mode` in `Modify options`: you need to change `None` to `class` in `Fork mode`  
-  ![Fork mode](https://github.com/apache/iotdb-bin-resources/blob/main/integration/pic/Fork_mode.png?raw=true)  
-
-Integration Testing with Cluster Mode
--------------------
-
-You can also run the integration test in cluster mode. At present, we have implemented a pseudo cluster with five nodes. 
-(As the test cases and the test environment are decoupled, we can easily implement a three-node cluster or even a docker-based cluster later.)
-
-The maven command is:
-```
-mvn clean verify -Dsession.test.skip=true -Diotdb.test.skip=true -Dcluster.test.skip=true -Dtsfile.test.skip=true -pl integration -am -PCluster
-```
-
--------
-
-Run in IntelliJ in cluster mode is so easy as the Local Standalone Mode above,
-- Step 0. Optionally, when you run the test for the first time, or when you change the code of the module that the integration test module depends on, you may need to use the following command to generate `integration/target/template-node` for nodes of the pseudo cluster.
-```
-mvn clean package -pl integration -am -DskipTests -PCluster
-```
-  
-  
-- Step 1. You can copy configuration and change some fields as the following picture,
-  ![Cluster Category](https://github.com/apache/iotdb-bin-resources/blob/main/integration/pic/Cluster_Category.png?raw=true)
-  
-  
-Integration Testing with Remote Mode
--------------------
-
-You can also run the integration test in remote mode. The remote server can be a standalone server or a server of a cluster.
-
-The maven command is:
-```
-mvn clean verify -pl integration -am -PRemote -DRemoteIp=127.0.0.1 -DRemotePort=6777
-```
-
-Writing a New Test
--------------------
-
-## What should we cover in integration tests
-
-For every end-user functionality provided by IoTDB, we should have an integration test verifying the correctness.
-
-## Rules to be followed while writing a new integration test
-
-### Every Integration Test must follow these rules:
-
-1) The name of the test file must end with a suffix "IT"
-2) A test should be independent of other tests
-3) Tests are to be written in Junit style
-4) Put appropriate annotation `@Category` on the class or the test level
-
-### About the annotation:
-You can put the annotation `@Category({LocalStandaloneTest.class, ClusterTest.class, RemoteTest.class})` on the class or the test level.
-And you can use these annotations individually or in combination.
-
-`LocalStandaloneTest.class` stands for you want your test run in the local standalone mode.
-
-`ClusterTest.class` stands for you want your test run in the cluster mode.
-
-`RemoteTest.class` stands for you want your test run in the remote mode.
diff --git a/integration/checkstyle.xml b/integration/checkstyle.xml
deleted file mode 100644
index 3019192677b..00000000000
--- a/integration/checkstyle.xml
+++ /dev/null
@@ -1,217 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd">
-
-<!--
-    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.
--->
-<!--
-    Note: Checkstyle configuration under integration module only validates the code styles about test cases.
-    Other codes rules should be referenced the checkstyle.xml under the project root folder
- -->
-<module name="Checker">
-    <property name="charset" value="UTF-8"/>
-    <property name="severity" value="error"/>
-    <property name="fileExtensions" value="java"/>
-    <module name="BeforeExecutionExclusionFileFilter">
-        <!--Generate these files by: find . -name \*.java -print | xargs -n 1 basename | awk -F '.' '{print "|^.*"$1"\\.java$|"}' | grep IT -->
-        <property name="fileNamePattern"
-                  value="(^.*([\\/]src[\\/]main|[\\/]src[\\/]test[\\/]java[\\/]org[\\/]apache[\\/]iotdb[\\/]session|)[\\/].*$)|
-                |^.*AlignedWriteUtil\.java$|
-                |^.*StandaloneEnv\.java$|
-                |^.*StandaloneEnvConfig\.java$|
-                |^.*SyncTestUtil\.java$|
-                |^.*TransportClientMock\.java$|
-                |^.*TransportHandlerMock\.java$|
-                |^.*IoTDBSchemaTemplateIT\.java$|
-                |^.*IoTDBSeriesReaderIT\.java$|
-                |^.*IoTDBCompactionIT\.java$|
-                |^.*IoTDBSnapshotIT\.java$|
-                |^.*IoTDBAggregationByLevelIT\.java$|
-                |^.*IoTDBUDFNestAggregationIT\.java$|
-                |^.*IoTDBAggregationDeleteIT\.java$|
-                |^.*IoTDBUserDefinedAggregationFunctionIT\.java$|
-                |^.*IoTDBAggregationIT\.java$|
-                |^.*IoTDBAggregationSmallDataIT\.java$|
-                |^.*IoTDBAggregationLargeDataIT\.java$|
-                |^.*IoTDBPartialInsertionIT\.java$|
-                |^.*IoTDBInsertWithoutTimeIT\.java$|
-                |^.*IoTDBMultiSeriesIT\.java$|
-                |^.*IoTDBDisableAlignIT\.java$|
-                |^.*IoTDBManageTsFileResourceIT\.java$|
-                |^.*IoTDBInsertMultiRowIT\.java$|
-                |^.*IoTDBQueryWithComplexValueFilterIT\.java$|
-                |^.*IoTDBUDTFHybridQueryIT\.java$|
-                |^.*IoTDBQueryMemoryControlIT\.java$|
-                |^.*IoTDBClearCacheIT\.java$|
-                |^.*IoTDBTracingIT\.java$|
-                |^.*IoTDBLoadExternalTsFileWithTimePartitionIT\.java$|
-                |^.*IoTDBKillQueryIT\.java$|
-                |^.*IoTDBCompactionWithIDTableIT\.java$|
-                |^.*IoTDBMultiStatementsIT\.java$|
-                |^.*IoTDBArithmeticIT\.java$|
-                |^.*IoTDBQueryWithIDTableIT\.java$|
-                |^.*IoTDBDaemonIT\.java$|
-                |^.*IoTDBTriggerForwardIT\.java$|
-                |^.*IoTDBEncodingIT\.java$|
-                |^.*IoTDBNestedQueryIT\.java$|
-                |^.*IoTDBSelectSchemaIT\.java$|
-                |^.*IoTDBSortedShowTimeseriesIT\.java$|
-                |^.*IoTDBLoadExternalTsfileWithVirtualSGIT\.java$|
-                |^.*IoTDBFillIT\.java$|
-                |^.*IoTDBSelectCompareExpressionIT\.java$|
-                |^.*IoTDBFilePathUtilsIT\.java$|
-                |^.*IoTDBTtlIT\.java$|
-                |^.*IoTDBUnseqOverlappedPageIT\.java$|
-                |^.*IoTDBVersionIT\.java$|
-                |^.*IoTDBCreateTimeseriesIT\.java$|
-                |^.*IoTDBCompressTypeIT\.java$|
-                |^.*IoTDBTagAlterIT\.java$|
-                |^.*IoTDBQueryDemoIT\.java$|
-                |^.*IoTDBSyntaxConventionIdentifierIT\.java$|
-                |^.*IoTDBNumberPathIT\.java$|
-                |^.*IoTDBSettleIT\.java$|
-                |^.*IoTDBOverlappedPageIT\.java$|
-                |^.*IoTDBDatetimeFormatIT\.java$|
-                |^.*IoTDBInIT\.java$|
-                |^.*IoTDBMetadataFetchIT\.java$|
-                |^.*IoTDBFloatPrecisionIT\.java$|
-                |^.*IoTDBRecoverIT\.java$|
-                |^.*IoTDBFuzzyQueryIT\.java$|
-                |^.*IoTDBAliasIT\.java$|
-                |^.*IoTDBUDFWindowQueryIT\.java$|
-                |^.*IoTDBAuthorizationIT\.java$|
-                |^.*IoTDBTriggerManagementIT\.java$|
-                |^.*IoTDBRecoverUnclosedIT\.java$|
-                |^.*IoTDBCreateAlignedTimeseriesIT\.java$|
-                |^.*IoTDBSameMeasurementsDifferentTypesIT\.java$|
-                |^.*IoTDBRpcCompressionIT\.java$|
-                |^.*IoTDBAlignByDeviceIT\.java$|
-                |^.*IoTDBLoadExternalAlignedTsFileIT\.java$|
-                |^.*IoTDBGroupByQueryWithValueFilterWithDeletion2IT\.java$|
-                |^.*IoTDBGroupBySlidingWindowQueryWithoutValueFilterIT\.java$|
-                |^.*IoTDBRawQueryWithValueFilterIT\.java$|
-                |^.*IoTDBAggregationWithValueFilterIT\.java$|
-                |^.*IoTDBGroupByFillQueryBigDataIT\.java$|
-                |^.*IoTDBGroupByQueryWithValueFilterWithDeletionIT\.java$|
-                |^.*IoTDBAggregationWithValueFilterWithDeletion2IT\.java$|
-                |^.*IoTDBAggregationWithValueFilter2IT\.java$|
-                |^.*IoTDBRawQueryWithValueFilterWithDeletion2IT\.java$|
-                |^.*IoTDBGroupByFillQueryIT\.java$|
-                |^.*IoTDBDeleteTimeseriesIT\.java$|
-                |^.*IoTDBDeletionIT\.java$|
-                |^.*IoTDBGroupByQueryWithValueFilter2IT\.java$|
-                |^.*IoTDBEmptyDataIT\.java$|
-                |^.*IoTDBAggregationWithValueFilterWithDeletionIT\.java$|
-                |^.*IoTDBRawQueryWithValueFilterWithDeletionIT\.java$|
-                |^.*IoTDBAggregationGroupByLevelIT\.java$|
-                |^.*IoTDBRawQueryWithValueFilter2IT\.java$|
-                |^.*IoTDBGroupBySlidingWindowQueryWithValueFilterIT\.java$|
-                |^.*IoTDBGroupByQueryWithValueFilterIT\.java$|
-                |^.*IoTDBMultiDeviceIT\.java$|
-                |^.*IoTDBQueryVersionAdaptionIT\.java$|
-                |^.*IoTDBDDLVersionAdaptionIT\.java$|
-                |^.*IoTDBDeletionVersionAdaptionIT\.java$|
-                |^.*IoTDBCreateStorageGroupIT\.java$|
-                |^.*IoTDBCompleteIT\.java$|
-                |^.*IOTDBGroupByInnerIntervalIT\.java$|
-                |^.*IoTDBGroupByFillWithRangeIT\.java$|
-                |^.*IoTDBGroupByUnseqIT\.java$|
-                |^.*IOTDBGroupByIT\.java$|
-                |^.*IoTDBGroupByFillIT\.java$|
-                |^.*IoTDBGroupByMonthFillIT\.java$|
-                |^.*IoTDBGroupByFillMixPathsIT\.java$|
-                |^.*IoTDBGroupByMonthIT\.java$|
-                |^.*IoTDBResultSetIT\.java$|
-                |^.*IoTDBSimpleQueryIT\.java$|
-                |^.*IoTDBDeleteStorageGroupIT\.java$|
-                |^.*IOTDBInsertIT\.java$|
-                |^.*IoTDBTagIT\.java$|
-                |^.*IoTDBDeleteTimeseriesIT\.java$|
-                |^.*IoTDBDeletionIT\.java$|
-                |^.*IoTDBExecuteBatchIT\.java$|
-                |^.*IoTDBMaxTimeQueryIT\.java$|
-                |^.*IoTDBSensorUpdateIT\.java$|
-                |^.*IoTDBWithoutNullAllFilterIT\.java$|
-                |^.*IoTDBWithoutNullAnyFilterIT\.java$|
-                |^.*IoTDBRemovePartitionIT\.java$|
-                |^.*IoTDBUDTFAlignByTimeQueryIT\.java$|
-                |^.*IoTDBAutoCreateSchemaIT\.java$|
-                |^.*IoTDBQueryTimeoutIT\.java$|
-                |^.*IoTDBLoadExternalTsfileIT\.java$|
-                |^.*IoTDBSessionTimeoutIT\.java$|
-                |^.*IoTDBAsIT\.java$|
-                |^.*IoTDBPathNumOverLimitIT\.java$|
-                |^.*IoTDBFlushQueryMergeIT\.java$|
-                |^.*IoTDBSelectIntoIT\.java$|
-                |^.*IoTDBMultiOverlappedChunkInUnseqIT\.java$|
-                |^.*IoTDBInsertWithQueryIT\.java$|
-                |^.*IoTDBTimeZoneIT\.java$|
-                |^.*IoTDBTriggerExecutionIT\.java$|
-                |^.*IoTDBWithoutAllNullIT\.java$|
-                |^.*IoTDBLimitSlimitIT\.java$|
-                |^.*IoTDBLargeDataIT\.java$|
-                |^.*IoTDBResultMetadataIT\.java$|
-                |^.*IoTDBWithoutAnyNullIT\.java$|
-                |^.*IoTDBQuotedPathIT\.java$|
-                |^.*IoTDBSyncReceiverLoaderIT\.java$|
-                |^.*IoTDBSyncSenderIT\.java$|
-                |^.*IoTDBSyncReceiverIT\.java$|
-                |^.*IoTDBSyncReceiverCollectorIT\.java$|
-                |^.*IoTDBUDTFBuiltinFunctionIT\.java$|
-                |^.*IoTDBInsertNaNIT\.java$|
-                |^.*IoTDBLastIT\.java$|
-                |^.*IoTDBNewTsFileCompactionIT\.java$|
-                |^.*IoTDBSyntaxConventionStringLiteralIT\.java$|
-                |^.*IoTDBSequenceDataQueryIT\.java$|
-                |^.*IoTDBTimePartitionIT\.java$|
-                |^.*IoTDBCloseIT\.java$|
-                |^.*IoTDBQueryWithRecreatedTimeseriesIT\.java$|
-                |^.*IoTDBEngineTimeGeneratorIT\.java$|
-                |^.*IoTDBInsertNullIT\.java$|
-                |^.*IoTDBCheckConfigIT\.java$|
-                |^.*IoTDBMultiOverlappedPageIT\.java$|
-                |^.*IoTDBAlignedTimeSeriesCompactionIT\.java$|
-                |^.*IoTDBRestartIT\.java$|
-                |^.*IoTDBUDTFNonAlignQueryIT\.java$|
-                |^.*IoTDBSetSystemReadOnlyWritableIT\.java$|
-                |^.*IoTDBContinuousQueryIT\.java$|
-                |^.*IoTDBSizeTieredCompactionIT\.java$|
-                |^.*IoTDBSessionVectorAggregationIT\.java$|
-                |^.*IoTDBSessionDisableMemControlIT\.java$|
-                |^.*IoTDBSessionSimpleIT\.java$|
-                |^.*IoTDBSessionComplexIT\.java$|
-                |^.*IoTDBSessionVectorABDeviceIT\.java$|
-                |^.*IoTDBSessionVectorAggregationWithUnSeqIT\.java$|
-                |^.*IoTDBSessionVectorInsertIT\.java$|
-                |^.*IoTDBSessionIteratorIT\.java$|
-                |^.*IoTDBSessionSyntaxConventionIT\.java$"/>
-    </module>
-    <!--    <module name="RegexpOnFilename">-->
-    <!--        <property name="fileNamePattern" value="^.*IT\.java$"/>-->
-    <!--        <property name="match" value="false"/>-->
-    <!--    </module>-->
-    <module name="TreeWalker">
-        <module name="ImportControl">
-            <property name="file" value="integration/import-control.xml"/>
-            <property name="path" value="^.*\.java$"/>
-            <message key="import.control.disallowed" value="{0} is not allowed to use in integration test."/>
-        </module>
-        <module name="RegexpSinglelineJava">
-            <property name="format" value="getResultSet\(\)"/>
-            <property name="ignoreComments" value="true"/>
-            <property name="message" value="Statement::getResultSet is not allowed to use in integration test, please use the return value of Statement::executeQuery instead."/>
-        </module>
-    </module>
-</module>
diff --git a/integration/import-control.xml b/integration/import-control.xml
deleted file mode 100644
index e10f2c8f29d..00000000000
--- a/integration/import-control.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE import-control PUBLIC "-//Checkstyle//DTD ImportControl Configuration 1.4//EN" "https://checkstyle.org/dtds/import_control_1_4.dtd">
-
-<!--
-    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.
--->
-<import-control pkg="org.apache.iotdb.db.integration">
-    <disallow class="java.sql.DriverManager"/>
-    <disallow class="javax.sql.DataSource"/>
-    <disallow pkg="org.apache.iotdb.jdbc.*"/>
-    <allow pkg="java.util"/>
-    <allow pkg="java.sql"/>
-    <allow pkg="java.io"/>
-    <allow pkg="org\.junit.*" regex="true"/>
-    <allow pkg="org\.apache\.iotdb\.itbase" regex="true"/>
-    <allow pkg="org\.apache\.iotdb\.integration\.*" regex="true"/>
-</import-control>
diff --git a/integration/pom.xml b/integration/pom.xml
deleted file mode 100644
index dc6286e7db5..00000000000
--- a/integration/pom.xml
+++ /dev/null
@@ -1,295 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <artifactId>iotdb-parent</artifactId>
-        <groupId>org.apache.iotdb</groupId>
-        <version>1.2.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-    <artifactId>integration</artifactId>
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.iotdb</groupId>
-            <artifactId>iotdb-server</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.iotdb</groupId>
-            <artifactId>iotdb-server</artifactId>
-            <version>${project.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.iotdb</groupId>
-            <artifactId>iotdb-session</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.iotdb</groupId>
-            <artifactId>iotdb-jdbc</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.awaitility</groupId>
-            <artifactId>awaitility</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.iotdb</groupId>
-            <artifactId>rewrite-tsfile-tool</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>3.0.0-M5</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-failsafe-plugin</artifactId>
-                <version>3.0.0-M5</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-    <profiles>
-        <profile>
-            <id>LocalStandalone</id>
-            <properties>
-                <test.includedGroups>org.apache.iotdb.itbase.category.LocalStandaloneTest</test.includedGroups>
-                <test.excludedGroups/>
-            </properties>
-            <activation>
-                <activeByDefault>true</activeByDefault>
-            </activation>
-            <build>
-                <plugins>
-                    <!-- skip default-test -->
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-surefire-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>default-test</id>
-                                <configuration>
-                                    <skip>true</skip>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-failsafe-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>integration-test-Standalone</id>
-                                <goals>
-                                    <goal>integration-test</goal>
-                                </goals>
-                                <configuration>
-                                    <groups>${test.includedGroups}</groups>
-                                    <excludedGroups>${test.excludedGroups}</excludedGroups>
-                                    <useSystemClassLoader>false</useSystemClassLoader>
-                                    <threadCount>1</threadCount>
-                                    <forkCount>1</forkCount>
-                                    <reuseForks>false</reuseForks>
-                                    <systemPropertyVariables>
-                                        <TestEnv>Standalone</TestEnv>
-                                    </systemPropertyVariables>
-                                    <summaryFile>target/failsafe-reports/failsafe-summary-LocalStandalone.xml</summaryFile>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>verify</id>
-                                <goals>
-                                    <goal>verify</goal>
-                                </goals>
-                                <configuration>
-                                    <summaryFiles>
-                                        <summaryFile>target/failsafe-reports/failsafe-summary-LocalStandalone.xml</summaryFile>
-                                    </summaryFiles>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>Remote</id>
-            <properties>
-                <test.includedGroups>org.apache.iotdb.itbase.category.RemoteTest</test.includedGroups>
-                <test.excludedGroups/>
-            </properties>
-            <activation>
-                <activeByDefault>false</activeByDefault>
-            </activation>
-            <build>
-                <plugins>
-                    <!-- skip default-test -->
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-surefire-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>default-test</id>
-                                <configuration>
-                                    <skip>true</skip>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-failsafe-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>integration-test-Remote</id>
-                                <goals>
-                                    <goal>integration-test</goal>
-                                </goals>
-                                <configuration>
-                                    <skipTests>false</skipTests>
-                                    <groups>${test.includedGroups}</groups>
-                                    <excludedGroups>${test.excludedGroups}</excludedGroups>
-                                    <useSystemClassLoader>false</useSystemClassLoader>
-                                    <threadCount>1</threadCount>
-                                    <forkCount>1</forkCount>
-                                    <reuseForks>false</reuseForks>
-                                    <systemPropertyVariables>
-                                        <TestEnv>Remote</TestEnv>
-                                    </systemPropertyVariables>
-                                    <summaryFile>target/failsafe-reports/failsafe-summary-Remote.xml</summaryFile>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>verify</id>
-                                <goals>
-                                    <goal>verify</goal>
-                                </goals>
-                                <configuration>
-                                    <skipTests>false</skipTests>
-                                    <summaryFiles>
-                                        <summaryFile>target/failsafe-reports/failsafe-summary-Remote.xml</summaryFile>
-                                    </summaryFiles>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>Cluster</id>
-            <properties>
-                <test.includedGroups>org.apache.iotdb.itbase.category.ClusterTest</test.includedGroups>
-                <test.excludedGroups/>
-            </properties>
-            <activation>
-                <activeByDefault>false</activeByDefault>
-            </activation>
-            <build>
-                <plugins>
-                    <!-- skip default-test -->
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-surefire-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>default-test</id>
-                                <configuration>
-                                    <skip>true</skip>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>${maven.assembly.version}</version>
-                        <executions>
-                            <!-- Package binaries-->
-                            <execution>
-                                <id>cluster-assembly</id>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>single</goal>
-                                </goals>
-                                <configuration>
-                                    <descriptors>
-                                        <descriptor>src/assembly/cluster.xml</descriptor>
-                                    </descriptors>
-                                    <finalName>template-node</finalName>
-                                    <appendAssemblyId>false</appendAssemblyId>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-failsafe-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>integration-test-Cluster</id>
-                                <goals>
-                                    <goal>integration-test</goal>
-                                </goals>
-                                <configuration>
-                                    <groups>${test.includedGroups}</groups>
-                                    <excludedGroups>${test.excludedGroups}</excludedGroups>
-                                    <useSystemClassLoader>false</useSystemClassLoader>
-                                    <threadCount>1</threadCount>
-                                    <forkCount>1</forkCount>
-                                    <reuseForks>false</reuseForks>
-                                    <systemPropertyVariables>
-                                        <TestEnv>FiveNodeCluster1</TestEnv>
-                                    </systemPropertyVariables>
-                                    <summaryFile>target/failsafe-reports/failsafe-summary-Cluster.xml</summaryFile>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>verify</id>
-                                <goals>
-                                    <goal>verify</goal>
-                                </goals>
-                                <configuration>
-                                    <summaryFiles>
-                                        <summaryFile>target/failsafe-reports/failsafe-summary-Cluster.xml</summaryFile>
-                                    </summaryFiles>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-</project>
diff --git a/integration/src/assembly/cluster.xml b/integration/src/assembly/cluster.xml
deleted file mode 100644
index 94af9f94002..00000000000
--- a/integration/src/assembly/cluster.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<assembly>
-    <id>cluster</id>
-    <formats>
-        <format>dir</format>
-    </formats>
-    <includeBaseDirectory>false</includeBaseDirectory>
-    <dependencySets>
-        <dependencySet>
-            <outputDirectory>lib</outputDirectory>
-        </dependencySet>
-    </dependencySets>
-    <fileSets>
-        <fileSet>
-            <directory>${maven.multiModuleProjectDirectory}/cluster/src/assembly/resources</directory>
-            <outputDirectory>${file.separator}</outputDirectory>
-        </fileSet>
-        <fileSet>
-            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/conf</directory>
-            <outputDirectory>${file.separator}conf</outputDirectory>
-        </fileSet>
-        <fileSet>
-            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/tools</directory>
-            <outputDirectory>${file.separator}tools</outputDirectory>
-        </fileSet>
-    </fileSets>
-</assembly>
diff --git a/integration/src/main/java/org/apache/iotdb/db/engine/trigger/example/Accumulator.java b/integration/src/main/java/org/apache/iotdb/db/engine/trigger/example/Accumulator.java
deleted file mode 100644
index d1243aa58ad..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/engine/trigger/example/Accumulator.java
+++ /dev/null
@@ -1,96 +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.engine.trigger.example;
-
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.engine.trigger.api.Trigger;
-import org.apache.iotdb.trigger.api.TriggerAttributes;
-import org.apache.iotdb.tsfile.exception.NotImplementedException;
-import org.apache.iotdb.tsfile.utils.Binary;
-
-public class Accumulator implements Trigger {
-
-  public static final int BASE = 7713;
-
-  private double accumulator = 0;
-  private boolean isStopped = true;
-
-  @Override
-  public void onCreate(TriggerAttributes attributes) {
-    accumulator = BASE;
-    isStopped = false;
-  }
-
-  @Override
-  public void onStart() {
-    isStopped = false;
-  }
-
-  @Override
-  public void onStop() {
-    isStopped = true;
-  }
-
-  @Override
-  public Integer fire(long timestamp, Integer value, PartialPath path) {
-    accumulator += value;
-    return value;
-  }
-
-  @Override
-  public Long fire(long timestamp, Long value, PartialPath path) {
-    accumulator += value;
-    return value;
-  }
-
-  @Override
-  public Float fire(long timestamp, Float value, PartialPath path) {
-    accumulator += value;
-    return value;
-  }
-
-  @Override
-  public Double fire(long timestamp, Double value, PartialPath path) {
-    accumulator += value;
-    return value;
-  }
-
-  @Override
-  public Boolean fire(long timestamp, Boolean value, PartialPath path) {
-    throw new NotImplementedException();
-  }
-
-  @Override
-  public Binary fire(long timestamp, Binary value, PartialPath path) {
-    throw new NotImplementedException();
-  }
-
-  public void setAccumulator(double accumulator) {
-    this.accumulator = accumulator;
-  }
-
-  public double getAccumulator() {
-    return accumulator;
-  }
-
-  public boolean isStopped() {
-    return isStopped;
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/engine/trigger/example/Counter.java b/integration/src/main/java/org/apache/iotdb/db/engine/trigger/example/Counter.java
deleted file mode 100644
index 5d87e8c3f15..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/engine/trigger/example/Counter.java
+++ /dev/null
@@ -1,97 +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.engine.trigger.example;
-
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.engine.trigger.api.Trigger;
-import org.apache.iotdb.trigger.api.TriggerAttributes;
-import org.apache.iotdb.tsfile.utils.Binary;
-
-public class Counter implements Trigger {
-
-  public static final int BASE = 1377;
-
-  private int counter = 0;
-  private boolean isStopped = true;
-
-  @Override
-  public void onCreate(TriggerAttributes attributes) {
-    counter = BASE;
-    isStopped = false;
-  }
-
-  @Override
-  public void onStart() {
-    isStopped = false;
-  }
-
-  @Override
-  public void onStop() {
-    isStopped = true;
-  }
-
-  @Override
-  public Integer fire(long timestamp, Integer value, PartialPath path) {
-    ++counter;
-    return value;
-  }
-
-  @Override
-  public Long fire(long timestamp, Long value, PartialPath path) {
-    ++counter;
-    return value;
-  }
-
-  @Override
-  public Float fire(long timestamp, Float value, PartialPath path) {
-    ++counter;
-    return value;
-  }
-
-  @Override
-  public Double fire(long timestamp, Double value, PartialPath path) {
-    ++counter;
-    return value;
-  }
-
-  @Override
-  public Boolean fire(long timestamp, Boolean value, PartialPath path) {
-    ++counter;
-    return value;
-  }
-
-  @Override
-  public Binary fire(long timestamp, Binary value, PartialPath path) {
-    ++counter;
-    return value;
-  }
-
-  public void setCounter(int counter) {
-    this.counter = counter;
-  }
-
-  public int getCounter() {
-    return counter;
-  }
-
-  public boolean isStopped() {
-    return isStopped;
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Accumulator.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Accumulator.java
deleted file mode 100644
index ff1e949f0e5..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Accumulator.java
+++ /dev/null
@@ -1,102 +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.udf.example;
-
-import org.apache.iotdb.udf.api.UDTF;
-import org.apache.iotdb.udf.api.access.Row;
-import org.apache.iotdb.udf.api.access.RowIterator;
-import org.apache.iotdb.udf.api.access.RowWindow;
-import org.apache.iotdb.udf.api.collector.PointCollector;
-import org.apache.iotdb.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
-import org.apache.iotdb.udf.api.type.Type;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-
-public class Accumulator implements UDTF {
-
-  private static final Logger logger = LoggerFactory.getLogger(Accumulator.class);
-
-  @Override
-  public void validate(UDFParameterValidator validator) throws Exception {
-    validator.validateInputSeriesDataType(0, Type.INT32, Type.DOUBLE);
-  }
-
-  @Override
-  public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
-    logger.debug("Accumulator#beforeStart");
-    configurations.setOutputDataType(Type.INT32);
-    switch (parameters.getStringOrDefault(
-        ExampleUDFConstant.ACCESS_STRATEGY_KEY, ExampleUDFConstant.ACCESS_STRATEGY_ROW_BY_ROW)) {
-      case ExampleUDFConstant.ACCESS_STRATEGY_SLIDING_SIZE:
-        configurations.setAccessStrategy(
-            new SlidingSizeWindowAccessStrategy(
-                parameters.getInt(ExampleUDFConstant.WINDOW_SIZE_KEY)));
-        break;
-      case ExampleUDFConstant.ACCESS_STRATEGY_SLIDING_TIME:
-        configurations.setAccessStrategy(
-            new SlidingTimeWindowAccessStrategy(
-                parameters.getLong(ExampleUDFConstant.TIME_INTERVAL_KEY),
-                parameters.getLong(ExampleUDFConstant.SLIDING_STEP_KEY),
-                parameters.getLong(ExampleUDFConstant.DISPLAY_WINDOW_BEGIN_KEY),
-                parameters.getLong(ExampleUDFConstant.DISPLAY_WINDOW_END_KEY)));
-        break;
-      case ExampleUDFConstant.ACCESS_STRATEGY_ROW_BY_ROW:
-      default:
-        configurations.setAccessStrategy(new RowByRowAccessStrategy());
-    }
-  }
-
-  @Override
-  public void transform(Row row, PointCollector collector) throws IOException {
-    collector.putInt(row.getTime(), row.getInt(0));
-  }
-
-  @Override
-  public void transform(RowWindow rowWindow, PointCollector collector) throws IOException {
-    int accumulator = 0;
-    RowIterator rowIterator = rowWindow.getRowIterator();
-    while (rowIterator.hasNextRow()) {
-      switch (rowWindow.getDataType(0)) {
-        case INT32:
-          accumulator += rowIterator.next().getInt(0);
-          break;
-        case DOUBLE:
-          accumulator += (int) rowIterator.next().getDouble(0);
-          break;
-      }
-    }
-    if (rowWindow.windowSize() != 0) {
-      collector.putInt(rowWindow.getRow(0).getTime(), accumulator);
-    }
-  }
-
-  @Override
-  public void beforeDestroy() {
-    logger.debug("Accumulator#beforeDestroy");
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Adder.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Adder.java
deleted file mode 100644
index bf43997aa74..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Adder.java
+++ /dev/null
@@ -1,92 +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.udf.example;
-
-import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
-import org.apache.iotdb.udf.api.UDTF;
-import org.apache.iotdb.udf.api.access.Row;
-import org.apache.iotdb.udf.api.collector.PointCollector;
-import org.apache.iotdb.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.udf.api.type.Type;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-
-public class Adder implements UDTF {
-
-  private static final Logger logger = LoggerFactory.getLogger(Adder.class);
-
-  private double addend;
-
-  @Override
-  public void validate(UDFParameterValidator validator) throws Exception {
-    validator
-        .validateInputSeriesNumber(2)
-        .validateInputSeriesDataType(0, Type.INT32, Type.INT64, Type.FLOAT, Type.DOUBLE)
-        .validateInputSeriesDataType(1, Type.INT32, Type.INT64, Type.FLOAT, Type.DOUBLE);
-  }
-
-  @Override
-  public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
-    logger.debug("Adder#beforeStart");
-    addend = parameters.getFloatOrDefault("addend", 0);
-    configurations.setOutputDataType(Type.INT64).setAccessStrategy(new RowByRowAccessStrategy());
-  }
-
-  @Override
-  public void transform(Row row, PointCollector collector) throws Exception {
-    if (row.isNull(0) || row.isNull(1)) {
-      return;
-    }
-    collector.putLong(
-        row.getTime(), (long) (extractDoubleValue(row, 0) + extractDoubleValue(row, 1) + addend));
-  }
-
-  private double extractDoubleValue(Row row, int index) throws IOException {
-    double value;
-    switch (row.getDataType(index)) {
-      case INT32:
-        value = row.getInt(index);
-        break;
-      case INT64:
-        value = (double) row.getLong(index);
-        break;
-      case FLOAT:
-        value = row.getFloat(index);
-        break;
-      case DOUBLE:
-        value = row.getDouble(index);
-        break;
-      default:
-        throw new UnSupportedDataTypeException(row.getDataType(index).toString());
-    }
-    return value;
-  }
-
-  @Override
-  public void beforeDestroy() {
-    logger.debug("Adder#beforeDestroy");
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Counter.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Counter.java
deleted file mode 100644
index 2408c1b575f..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Counter.java
+++ /dev/null
@@ -1,88 +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.udf.example;
-
-import org.apache.iotdb.udf.api.UDTF;
-import org.apache.iotdb.udf.api.access.Row;
-import org.apache.iotdb.udf.api.access.RowWindow;
-import org.apache.iotdb.udf.api.collector.PointCollector;
-import org.apache.iotdb.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
-import org.apache.iotdb.udf.api.type.Type;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-
-public class Counter implements UDTF {
-
-  private static final Logger logger = LoggerFactory.getLogger(Counter.class);
-
-  @Override
-  public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
-    logger.debug("Counter#beforeStart");
-    configurations.setOutputDataType(Type.INT32);
-    switch (parameters.getStringOrDefault(
-        ExampleUDFConstant.ACCESS_STRATEGY_KEY, ExampleUDFConstant.ACCESS_STRATEGY_ROW_BY_ROW)) {
-      case ExampleUDFConstant.ACCESS_STRATEGY_SLIDING_SIZE:
-        configurations.setAccessStrategy(
-            new SlidingSizeWindowAccessStrategy(
-                parameters.getInt(ExampleUDFConstant.WINDOW_SIZE_KEY)));
-        break;
-      case ExampleUDFConstant.ACCESS_STRATEGY_SLIDING_TIME:
-        configurations.setAccessStrategy(
-            parameters.hasAttribute(ExampleUDFConstant.SLIDING_STEP_KEY)
-                    && parameters.hasAttribute(ExampleUDFConstant.DISPLAY_WINDOW_BEGIN_KEY)
-                    && parameters.hasAttribute(ExampleUDFConstant.DISPLAY_WINDOW_END_KEY)
-                ? new SlidingTimeWindowAccessStrategy(
-                    parameters.getLong(ExampleUDFConstant.TIME_INTERVAL_KEY),
-                    parameters.getLong(ExampleUDFConstant.SLIDING_STEP_KEY),
-                    parameters.getLong(ExampleUDFConstant.DISPLAY_WINDOW_BEGIN_KEY),
-                    parameters.getLong(ExampleUDFConstant.DISPLAY_WINDOW_END_KEY))
-                : new SlidingTimeWindowAccessStrategy(
-                    parameters.getLong(ExampleUDFConstant.TIME_INTERVAL_KEY)));
-        break;
-      case ExampleUDFConstant.ACCESS_STRATEGY_ROW_BY_ROW:
-      default:
-        configurations.setAccessStrategy(new RowByRowAccessStrategy());
-    }
-  }
-
-  @Override
-  public void transform(Row row, PointCollector collector) throws Exception {
-    collector.putInt(row.getTime(), 1);
-  }
-
-  @Override
-  public void transform(RowWindow rowWindow, PointCollector collector) throws IOException {
-    if (rowWindow.windowSize() != 0) {
-      collector.putInt(rowWindow.getRow(0).getTime(), rowWindow.windowSize());
-    }
-  }
-
-  @Override
-  public void beforeDestroy() {
-    logger.debug("Counter#beforeDestroy");
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/ExampleUDFConstant.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/ExampleUDFConstant.java
deleted file mode 100644
index 87984d2db87..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/ExampleUDFConstant.java
+++ /dev/null
@@ -1,31 +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.udf.example;
-
-public class ExampleUDFConstant {
-  public static final String ACCESS_STRATEGY_KEY = "access";
-  public static final String ACCESS_STRATEGY_ROW_BY_ROW = "row-by-row";
-  public static final String ACCESS_STRATEGY_SLIDING_SIZE = "size";
-  public static final String ACCESS_STRATEGY_SLIDING_TIME = "time";
-  public static final String WINDOW_SIZE_KEY = "windowSize";
-  public static final String TIME_INTERVAL_KEY = "timeInterval";
-  public static final String SLIDING_STEP_KEY = "slidingStep";
-  public static final String DISPLAY_WINDOW_BEGIN_KEY = "displayWindowBegin";
-  public static final String DISPLAY_WINDOW_END_KEY = "displayWindowEnd";
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Max.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Max.java
deleted file mode 100644
index 47a44d6e021..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Max.java
+++ /dev/null
@@ -1,74 +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.udf.example;
-
-import org.apache.iotdb.udf.api.UDTF;
-import org.apache.iotdb.udf.api.access.Row;
-import org.apache.iotdb.udf.api.collector.PointCollector;
-import org.apache.iotdb.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.udf.api.type.Type;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-
-public class Max implements UDTF {
-
-  private static final Logger logger = LoggerFactory.getLogger(Max.class);
-
-  private Long time;
-  private int value;
-
-  @Override
-  public void validate(UDFParameterValidator validator) throws Exception {
-    validator.validateInputSeriesNumber(1).validateInputSeriesDataType(0, Type.INT32);
-  }
-
-  @Override
-  public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
-    logger.debug("Max#beforeStart");
-    configurations.setOutputDataType(Type.INT32).setAccessStrategy(new RowByRowAccessStrategy());
-  }
-
-  @Override
-  public void transform(Row row, PointCollector collector) throws IOException {
-    int candidateValue = row.getInt(0);
-    if (time == null || value < candidateValue) {
-      time = row.getTime();
-      value = candidateValue;
-    }
-  }
-
-  @Override
-  public void terminate(PointCollector collector) throws IOException {
-    if (time != null) {
-      collector.putInt(time, value);
-    }
-  }
-
-  @Override
-  public void beforeDestroy() {
-    logger.debug("Max#beforeDestroy");
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Multiplier.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Multiplier.java
deleted file mode 100644
index 2e9b95fc3ab..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Multiplier.java
+++ /dev/null
@@ -1,63 +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.udf.example;
-
-import org.apache.iotdb.udf.api.UDTF;
-import org.apache.iotdb.udf.api.access.Row;
-import org.apache.iotdb.udf.api.collector.PointCollector;
-import org.apache.iotdb.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.udf.api.type.Type;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class Multiplier implements UDTF {
-
-  private static final Logger logger = LoggerFactory.getLogger(Multiplier.class);
-
-  private long a;
-  private long b;
-
-  @Override
-  public void validate(UDFParameterValidator validator) throws Exception {
-    validator.validateInputSeriesNumber(1).validateInputSeriesDataType(0, Type.INT64);
-  }
-
-  @Override
-  public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
-    logger.debug("Multiplier#beforeStart");
-    a = parameters.getLongOrDefault("a", 0);
-    b = parameters.getLongOrDefault("b", 0);
-    configurations.setOutputDataType(Type.INT64).setAccessStrategy(new RowByRowAccessStrategy());
-  }
-
-  @Override
-  public void transform(Row row, PointCollector collector) throws Exception {
-    collector.putLong(row.getTime(), row.getLong(0) * a * b);
-  }
-
-  @Override
-  public void beforeDestroy() {
-    logger.debug("Multiplier#beforeDestroy");
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester0.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester0.java
deleted file mode 100644
index 677d2060fa4..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester0.java
+++ /dev/null
@@ -1,59 +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.udf.example;
-
-import org.apache.iotdb.udf.api.UDTF;
-import org.apache.iotdb.udf.api.access.RowWindow;
-import org.apache.iotdb.udf.api.collector.PointCollector;
-import org.apache.iotdb.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.udf.api.type.Type;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class SlidingSizeWindowConstructorTester0 implements UDTF {
-
-  private static final Logger logger =
-      LoggerFactory.getLogger(SlidingSizeWindowConstructorTester0.class);
-
-  @Override
-  public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
-    logger.debug("SlidingSizeWindowConstructorTester0#beforeStart");
-    int windowSize = parameters.getInt("windowSize");
-    int slidingStep = parameters.getInt("slidingStep");
-    configurations
-        .setOutputDataType(Type.INT32)
-        .setAccessStrategy(new SlidingSizeWindowAccessStrategy(windowSize, slidingStep));
-  }
-
-  @Override
-  public void transform(RowWindow rowWindow, PointCollector collector) throws Exception {
-    if (rowWindow.windowSize() != 0) {
-      collector.putInt(rowWindow.getRow(0).getTime(), rowWindow.windowSize());
-    }
-  }
-
-  @Override
-  public void beforeDestroy() {
-    logger.debug("SlidingSizeWindowConstructorTester0#beforeDestroy");
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester1.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester1.java
deleted file mode 100644
index defeaf7bb84..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester1.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.udf.example;
-
-import org.apache.iotdb.udf.api.UDTF;
-import org.apache.iotdb.udf.api.access.Row;
-import org.apache.iotdb.udf.api.collector.PointCollector;
-import org.apache.iotdb.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.udf.api.type.Type;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class SlidingSizeWindowConstructorTester1 implements UDTF {
-
-  private static final Logger logger =
-      LoggerFactory.getLogger(SlidingSizeWindowConstructorTester1.class);
-
-  private int consumptionPoint;
-
-  @Override
-  public void validate(UDFParameterValidator validator) throws Exception {
-    validator.validateInputSeriesNumber(1).validateInputSeriesDataType(0, Type.INT32);
-  }
-
-  @Override
-  public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
-    logger.debug("SlidingSizeWindowConstructorTester1#beforeStart");
-    consumptionPoint = parameters.getInt("consumptionPoint");
-    configurations.setOutputDataType(Type.INT32).setAccessStrategy(new RowByRowAccessStrategy());
-  }
-
-  @Override
-  public void transform(Row row, PointCollector collector) throws Exception {
-    if (row.getTime() == consumptionPoint) {
-      collector.putInt(row.getTime(), row.getInt(0));
-    }
-  }
-
-  @Override
-  public void beforeDestroy() {
-    logger.debug("SlidingSizeWindowConstructorTester1#beforeDestroy");
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingTimeWindowConstructionTester.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingTimeWindowConstructionTester.java
deleted file mode 100644
index 6d71877b20b..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingTimeWindowConstructionTester.java
+++ /dev/null
@@ -1,72 +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.udf.example;
-
-import org.apache.iotdb.udf.api.UDTF;
-import org.apache.iotdb.udf.api.access.RowIterator;
-import org.apache.iotdb.udf.api.access.RowWindow;
-import org.apache.iotdb.udf.api.collector.PointCollector;
-import org.apache.iotdb.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
-import org.apache.iotdb.udf.api.type.Type;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-
-public class SlidingTimeWindowConstructionTester implements UDTF {
-
-  private static final Logger logger =
-      LoggerFactory.getLogger(SlidingTimeWindowConstructionTester.class);
-
-  @Override
-  public void validate(UDFParameterValidator validator) throws Exception {
-    validator.validateInputSeriesNumber(1).validateInputSeriesDataType(0, Type.INT32);
-  }
-
-  @Override
-  public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
-    logger.debug("SlidingTimeWindowConstructionTester#beforeStart");
-    long timeInterval = parameters.getLong(ExampleUDFConstant.TIME_INTERVAL_KEY);
-    configurations
-        .setOutputDataType(Type.INT32)
-        .setAccessStrategy(new SlidingTimeWindowAccessStrategy(timeInterval));
-  }
-
-  @Override
-  public void transform(RowWindow rowWindow, PointCollector collector) throws IOException {
-    int accumulator = 0;
-    RowIterator rowIterator = rowWindow.getRowIterator();
-    while (rowIterator.hasNextRow()) {
-      accumulator += rowIterator.next().getInt(0);
-    }
-    if (rowWindow.windowSize() != 0) {
-      collector.putInt(rowWindow.getRow(0).getTime(), accumulator);
-    }
-  }
-
-  @Override
-  public void beforeDestroy() {
-    logger.debug("SlidingTimeWindowConstructionTester#beforeDestroy");
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/TerminateTester.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/TerminateTester.java
deleted file mode 100644
index 06e90cce04a..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/TerminateTester.java
+++ /dev/null
@@ -1,67 +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.udf.example;
-
-import org.apache.iotdb.udf.api.UDTF;
-import org.apache.iotdb.udf.api.access.Row;
-import org.apache.iotdb.udf.api.collector.PointCollector;
-import org.apache.iotdb.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.udf.api.type.Type;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TerminateTester implements UDTF {
-
-  private static final Logger logger = LoggerFactory.getLogger(TerminateTester.class);
-
-  private Long maxTime;
-  private int count;
-
-  @Override
-  public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
-    logger.debug("TerminateTester#beforeStart");
-    configurations.setOutputDataType(Type.INT32).setAccessStrategy(new RowByRowAccessStrategy());
-    maxTime = null;
-    count = 0;
-  }
-
-  @Override
-  public void transform(Row row, PointCollector collector) throws Exception {
-    maxTime = row.getTime();
-    ++count;
-
-    collector.putInt(maxTime, 1);
-  }
-
-  @Override
-  public void terminate(PointCollector collector) throws Exception {
-    if (maxTime != null) {
-      collector.putInt(maxTime + 1, count);
-    }
-  }
-
-  @Override
-  public void beforeDestroy() {
-    logger.debug("TerminateTester#beforeDestroy");
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/ValidateTester.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/ValidateTester.java
deleted file mode 100644
index e3248c07782..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/ValidateTester.java
+++ /dev/null
@@ -1,44 +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.udf.example;
-
-import org.apache.iotdb.udf.api.UDTF;
-import org.apache.iotdb.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.udf.api.type.Type;
-
-public class ValidateTester implements UDTF {
-
-  @Override
-  public void validate(UDFParameterValidator validator) throws Exception {
-    validator
-        .validateRequiredAttribute("k")
-        .validateInputSeriesNumber(2)
-        .validateInputSeriesDataType(0, Type.INT32, Type.INT64)
-        .validateInputSeriesDataType(1, Type.INT32, Type.INT64);
-  }
-
-  @Override
-  public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
-    configurations.setAccessStrategy(new RowByRowAccessStrategy()).setOutputDataType(Type.INT32);
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/WindowStartEnd.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/WindowStartEnd.java
deleted file mode 100644
index fb1f66ec4b0..00000000000
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/WindowStartEnd.java
+++ /dev/null
@@ -1,66 +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.udf.example;
-
-import org.apache.iotdb.udf.api.UDTF;
-import org.apache.iotdb.udf.api.access.RowWindow;
-import org.apache.iotdb.udf.api.collector.PointCollector;
-import org.apache.iotdb.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
-import org.apache.iotdb.udf.api.type.Type;
-
-import java.io.IOException;
-
-public class WindowStartEnd implements UDTF {
-
-  @Override
-  public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
-    configurations.setOutputDataType(Type.INT64);
-    if (ExampleUDFConstant.ACCESS_STRATEGY_SLIDING_SIZE.equals(
-        parameters.getString(ExampleUDFConstant.ACCESS_STRATEGY_KEY))) {
-      configurations.setAccessStrategy(
-          parameters.hasAttribute(ExampleUDFConstant.SLIDING_STEP_KEY)
-              ? new SlidingSizeWindowAccessStrategy(
-                  parameters.getInt(ExampleUDFConstant.WINDOW_SIZE_KEY),
-                  parameters.getInt(ExampleUDFConstant.SLIDING_STEP_KEY))
-              : new SlidingSizeWindowAccessStrategy(
-                  parameters.getInt(ExampleUDFConstant.WINDOW_SIZE_KEY)));
-    } else {
-      configurations.setAccessStrategy(
-          parameters.hasAttribute(ExampleUDFConstant.SLIDING_STEP_KEY)
-                  && parameters.hasAttribute(ExampleUDFConstant.DISPLAY_WINDOW_BEGIN_KEY)
-                  && parameters.hasAttribute(ExampleUDFConstant.DISPLAY_WINDOW_END_KEY)
-              ? new SlidingTimeWindowAccessStrategy(
-                  parameters.getLong(ExampleUDFConstant.TIME_INTERVAL_KEY),
-                  parameters.getLong(ExampleUDFConstant.SLIDING_STEP_KEY),
-                  parameters.getLong(ExampleUDFConstant.DISPLAY_WINDOW_BEGIN_KEY),
-                  parameters.getLong(ExampleUDFConstant.DISPLAY_WINDOW_END_KEY))
-              : new SlidingTimeWindowAccessStrategy(
-                  parameters.getLong(ExampleUDFConstant.TIME_INTERVAL_KEY)));
-    }
-  }
-
-  @Override
-  public void transform(RowWindow rowWindow, PointCollector collector) throws IOException {
-    collector.putLong(rowWindow.windowStartTime(), rowWindow.windowEndTime());
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/integration/env/ClusterEnvBase.java b/integration/src/main/java/org/apache/iotdb/integration/env/ClusterEnvBase.java
deleted file mode 100644
index 1772bd5cb64..00000000000
--- a/integration/src/main/java/org/apache/iotdb/integration/env/ClusterEnvBase.java
+++ /dev/null
@@ -1,279 +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.integration.env;
-
-import org.apache.iotdb.itbase.env.BaseEnv;
-import org.apache.iotdb.jdbc.Config;
-import org.apache.iotdb.jdbc.Constant;
-import org.apache.iotdb.jdbc.IoTDBConnection;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.apache.iotdb.jdbc.Config.VERSION;
-import static org.junit.Assert.fail;
-
-public abstract class ClusterEnvBase implements BaseEnv {
-
-  private static final Logger logger = LoggerFactory.getLogger(ClusterEnvBase.class);
-  protected List<ClusterNode> nodes;
-
-  public List<Integer> searchAvailablePort(int nodeNum) {
-    // To search available ports and to prepare for concurrent cluster testing, so we search port in
-    // batches. For example, when there are 5 nodes, the port range of the first search is
-    // 6671-6680, 10001-10010, 11001-21010. If any one of these 30 ports is occupied, it will be
-    // added up as a whole (add 10 to each port) to look for the next batch of ports.
-
-    String cmd = "lsof -iTCP -sTCP:LISTEN -P -n | grep -E ";
-    int rpcPortStart = 6671;
-    int metaPortStart = 10001;
-    int dataPortStart = 11001;
-    boolean flag = true;
-    int counter = 0;
-    do {
-      StringBuilder port =
-          new StringBuilder("" + rpcPortStart++)
-              .append("|")
-              .append(metaPortStart++)
-              .append("|")
-              .append(dataPortStart++)
-              .append("|")
-              .append(rpcPortStart++)
-              .append("|")
-              .append(metaPortStart++)
-              .append("|")
-              .append(dataPortStart++);
-      for (int i = 1; i < nodeNum; i++) {
-        port.append("|")
-            .append(rpcPortStart++)
-            .append("|")
-            .append(metaPortStart++)
-            .append("|")
-            .append(dataPortStart++)
-            .append("|")
-            .append(rpcPortStart++)
-            .append("|")
-            .append(metaPortStart++)
-            .append("|")
-            .append(dataPortStart++);
-      }
-      try {
-        Process proc = Runtime.getRuntime().exec(cmd + "\"" + port + "\"");
-        BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
-        String line;
-        while ((line = br.readLine()) != null) {
-          System.out.println(line);
-        }
-        System.out.println();
-        if (proc.waitFor() == 1) {
-          flag = false;
-        }
-      } catch (IOException | InterruptedException ex) {
-        // ignore
-      }
-
-      counter++;
-      if (counter >= 100) {
-        fail("No more available port to test cluster.");
-      }
-    } while (flag);
-
-    List<Integer> portList = new ArrayList<>();
-    for (int i = 0; i < nodeNum; i++) {
-      portList.add(rpcPortStart - 2 * (nodeNum - i));
-      portList.add(metaPortStart - 2 * (nodeNum - i));
-      portList.add(dataPortStart - 2 * (nodeNum - i));
-    }
-
-    return portList;
-  }
-
-  public void testWorking() throws InterruptedException {
-    int counter = 0;
-    Thread.sleep(2000);
-
-    do {
-      Thread.sleep(1000);
-
-      try (IoTDBConnection connection = getConnection(60);
-          Statement statement = connection.createStatement()) {
-        statement.execute("CREATE DATABASE root.test" + counter);
-        statement.execute(
-            "CREATE TIMESERIES root.test" + counter + ".d0.s0 WITH DATATYPE=INT32, ENCODING=RLE");
-        if (statement.execute("SHOW TIMESERIES")) {
-          ResultSet resultSet = statement.getResultSet();
-          if (resultSet.next()) {
-            statement.execute("DELETE DATABASE root.*");
-            break;
-          }
-        }
-
-      } catch (SQLException e) {
-        logger.debug(++counter + " time(s) connect to cluster failed!");
-        logger.debug(e.getMessage());
-      }
-
-      if (counter > 30) {
-        fail("After 30 times retry, the cluster can't work!");
-      }
-    } while (true);
-  }
-
-  public void startCluster() throws InterruptedException {
-    try {
-      for (ClusterNode node : this.nodes) {
-        node.start();
-      }
-    } catch (IOException ex) {
-      fail(ex.getMessage());
-    }
-
-    testWorking();
-  }
-
-  public void stopCluster() {
-    for (ClusterNode node : this.nodes) {
-      node.stop();
-    }
-    for (ClusterNode node : this.nodes) {
-      node.waitingToShutDown();
-    }
-  }
-
-  public void createNodeDir() {
-    for (ClusterNode node : this.nodes) {
-      node.createDir();
-    }
-  }
-
-  public void destroyNodeDir() {
-    for (ClusterNode node : this.nodes) {
-      node.destroyDir();
-    }
-  }
-
-  public void changeNodesConfig() {
-    try {
-      for (ClusterNode node : this.nodes) {
-        node.changeConfig(
-            ConfigFactory.getConfig().getEngineProperties(),
-            ConfigFactory.getConfig().getClusterProperties());
-      }
-      ConfigFactory.getConfig().clearAllProperties();
-    } catch (Exception e) {
-      fail(e.getMessage());
-    }
-  }
-
-  @Override
-  public void initBeforeClass() throws InterruptedException {}
-
-  @Override
-  public void cleanAfterClass() {
-    stopCluster();
-    destroyNodeDir();
-  }
-
-  @Override
-  public void initBeforeTest() throws InterruptedException {}
-
-  @Override
-  public void cleanAfterTest() {
-    stopCluster();
-    destroyNodeDir();
-  }
-
-  @Override
-  public Connection getConnection() throws SQLException {
-    Connection connection = null;
-
-    try {
-      Class.forName(Config.JDBC_DRIVER_NAME);
-      connection =
-          DriverManager.getConnection(
-              Config.IOTDB_URL_PREFIX
-                  + this.nodes.get(0).getIp()
-                  + ":"
-                  + this.nodes.get(0).getPort(),
-              System.getProperty("User", "root"),
-              System.getProperty("Password", "root"));
-    } catch (ClassNotFoundException e) {
-      e.printStackTrace();
-      fail();
-    }
-    return connection;
-  }
-
-  public IoTDBConnection getConnection(int queryTimeout) throws SQLException {
-    IoTDBConnection connection = null;
-    try {
-      Class.forName(Config.JDBC_DRIVER_NAME);
-      connection =
-          (IoTDBConnection)
-              DriverManager.getConnection(
-                  Config.IOTDB_URL_PREFIX
-                      + this.nodes.get(0).getIp()
-                      + ":"
-                      + this.nodes.get(0).getPort(),
-                  System.getProperty("User", "root"),
-                  System.getProperty("Password", "root"));
-      connection.setQueryTimeout(queryTimeout);
-    } catch (ClassNotFoundException e) {
-      e.printStackTrace();
-      fail();
-    }
-    return connection;
-  }
-
-  @Override
-  public Connection getConnection(Constant.Version version) throws SQLException {
-    Connection connection = null;
-
-    try {
-      Class.forName(Config.JDBC_DRIVER_NAME);
-      connection =
-          DriverManager.getConnection(
-              Config.IOTDB_URL_PREFIX
-                  + this.nodes.get(0).getIp()
-                  + ":"
-                  + this.nodes.get(0).getPort()
-                  + "?"
-                  + VERSION
-                  + "="
-                  + version.toString(),
-              System.getProperty("User", "root"),
-              System.getProperty("Password", "root"));
-    } catch (ClassNotFoundException e) {
-      e.printStackTrace();
-      fail();
-    }
-    return connection;
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/integration/env/ClusterEnvConfig.java b/integration/src/main/java/org/apache/iotdb/integration/env/ClusterEnvConfig.java
deleted file mode 100644
index 21aebb1651d..00000000000
--- a/integration/src/main/java/org/apache/iotdb/integration/env/ClusterEnvConfig.java
+++ /dev/null
@@ -1,154 +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.integration.env;
-
-import org.apache.iotdb.itbase.env.BaseConfig;
-
-import java.util.Properties;
-
-public class ClusterEnvConfig implements BaseConfig {
-  private final Properties engineProperties;
-  private final Properties clusterProperties;
-
-  public ClusterEnvConfig() {
-    engineProperties = new Properties();
-    clusterProperties = new Properties();
-  }
-
-  public void clearAllProperties() {
-    engineProperties.clear();
-    clusterProperties.clear();
-  }
-
-  public Properties getEngineProperties() {
-    return this.engineProperties;
-  }
-
-  public Properties getClusterProperties() {
-    return this.clusterProperties;
-  }
-
-  public BaseConfig setMaxNumberOfPointsInPage(int maxNumberOfPointsInPage) {
-    engineProperties.setProperty(
-        "max_number_of_points_in_page", String.valueOf(maxNumberOfPointsInPage));
-    return this;
-  }
-
-  public BaseConfig setPageSizeInByte(int pageSizeInByte) {
-    engineProperties.setProperty("page_size_in_byte", String.valueOf(pageSizeInByte));
-    return this;
-  }
-
-  public BaseConfig setGroupSizeInByte(int groupSizeInByte) {
-    engineProperties.setProperty("group_size_in_byte", String.valueOf(groupSizeInByte));
-    return this;
-  }
-
-  public BaseConfig setMemtableSizeThreshold(long memtableSizeThreshold) {
-    engineProperties.setProperty("memtable_size_threshold", String.valueOf(memtableSizeThreshold));
-    return this;
-  }
-
-  public BaseConfig setDataRegionNum(int dataRegionNum) {
-    engineProperties.setProperty("data_region_num", String.valueOf(dataRegionNum));
-    return this;
-  }
-
-  public BaseConfig setPartitionInterval(long partitionInterval) {
-    engineProperties.setProperty("time_partition_interval", String.valueOf(partitionInterval));
-    return this;
-  }
-
-  public BaseConfig setCompressor(String compressor) {
-    engineProperties.setProperty("compressor", compressor);
-    return this;
-  }
-
-  public BaseConfig setMaxQueryDeduplicatedPathNum(int maxQueryDeduplicatedPathNum) {
-    engineProperties.setProperty(
-        "max_deduplicated_path_num", String.valueOf(maxQueryDeduplicatedPathNum));
-    return this;
-  }
-
-  public BaseConfig setRpcThriftCompressionEnable(boolean rpcThriftCompressionEnable) {
-    engineProperties.setProperty(
-        "rpc_thrift_compression_enable", String.valueOf(rpcThriftCompressionEnable));
-    return this;
-  }
-
-  public BaseConfig setRpcAdvancedCompressionEnable(boolean rpcAdvancedCompressionEnable) {
-    engineProperties.setProperty(
-        "rpc_advanced_compression_enable", String.valueOf(rpcAdvancedCompressionEnable));
-    return this;
-  }
-
-  public BaseConfig setUdfCollectorMemoryBudgetInMB(float udfCollectorMemoryBudgetInMB) {
-    // udf_memory_budget_in_mb
-    // udf_reader_transformer_collector_memory_proportion
-    engineProperties.setProperty(
-        "udf_memory_budget_in_mb", String.valueOf(udfCollectorMemoryBudgetInMB * 3));
-    return this;
-  }
-
-  public BaseConfig setUdfTransformerMemoryBudgetInMB(float udfTransformerMemoryBudgetInMB) {
-    engineProperties.setProperty(
-        "udf_memory_budget_in_mb", String.valueOf(udfTransformerMemoryBudgetInMB * 3));
-    return this;
-  }
-
-  public BaseConfig setUdfReaderMemoryBudgetInMB(float udfReaderMemoryBudgetInMB) {
-    engineProperties.setProperty(
-        "udf_memory_budget_in_mb", String.valueOf(udfReaderMemoryBudgetInMB * 3));
-    return this;
-  }
-
-  public BaseConfig setEnableSeqSpaceCompaction(boolean enableSeqSpaceCompaction) {
-    engineProperties.setProperty(
-        "enable_seq_space_compaction", String.valueOf(enableSeqSpaceCompaction));
-    return this;
-  }
-
-  public BaseConfig setEnableUnseqSpaceCompaction(boolean enableUnseqSpaceCompaction) {
-    engineProperties.setProperty(
-        "enable_unseq_space_compaction", String.valueOf(enableUnseqSpaceCompaction));
-    return this;
-  }
-
-  public BaseConfig setEnableCrossSpaceCompaction(boolean enableCrossSpaceCompaction) {
-    engineProperties.setProperty(
-        "enable_cross_space_compaction", String.valueOf(enableCrossSpaceCompaction));
-    return this;
-  }
-
-  public BaseConfig setEnableIDTable(boolean isEnableIDTable) {
-    engineProperties.setProperty("enable_id_table", String.valueOf(isEnableIDTable));
-    return this;
-  }
-
-  public BaseConfig setDeviceIDTransformationMethod(String deviceIDTransformationMethod) {
-    engineProperties.setProperty("device_id_transformation_method", deviceIDTransformationMethod);
-    return this;
-  }
-
-  public BaseConfig setAutoCreateSchemaEnabled(boolean enableAutoCreateSchema) {
-    clusterProperties.setProperty(
-        "enable_auto_create_schema", String.valueOf(enableAutoCreateSchema));
-    return this;
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/integration/env/ClusterNode.java b/integration/src/main/java/org/apache/iotdb/integration/env/ClusterNode.java
deleted file mode 100644
index 1e304a756a6..00000000000
--- a/integration/src/main/java/org/apache/iotdb/integration/env/ClusterNode.java
+++ /dev/null
@@ -1,179 +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.integration.env;
-
-import org.apache.iotdb.commons.conf.IoTDBConstant;
-
-import org.apache.commons.io.FileUtils;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.Properties;
-
-import static org.junit.Assert.fail;
-
-public class ClusterNode {
-  private final String id;
-  private final String path;
-  private final String ip;
-  private final int rpcPort;
-  private final int metaPort;
-  private final int dataPort;
-  private final int[] metaPortArray;
-
-  private Process instance;
-
-  public ClusterNode(
-      String id, String ip, int rpcPort, int metaPort, int dataPort, int[] metaPortArray) {
-    this.id = id;
-    this.path =
-        System.getProperty("user.dir") + File.separator + "target" + File.separator + this.id;
-    this.ip = ip;
-    this.rpcPort = rpcPort;
-    this.metaPort = metaPort;
-    this.dataPort = dataPort;
-    this.metaPortArray = metaPortArray;
-  }
-
-  public void createDir() {
-    // cp template-node to this.path
-
-    String srcPath =
-        System.getProperty("user.dir")
-            + File.separator
-            + "target"
-            + File.separator
-            + "template-node";
-    String scriptPath =
-        this.path
-            + File.separator
-            + "template-node"
-            + File.separator
-            + "sbin"
-            + File.separator
-            + "start-node"
-            + ".sh";
-    try {
-      FileUtils.copyDirectoryToDirectory(new File(srcPath), new File(this.path));
-      new File(scriptPath).setExecutable(true);
-    } catch (IOException ex) {
-      fail("Copy cluster node dir failed. " + ex.getMessage());
-    }
-  }
-
-  public void destroyDir() {
-    // rm this.path
-    try {
-      FileUtils.forceDelete(new File(this.path));
-    } catch (IOException ex) {
-      // ignore
-    }
-  }
-
-  public void changeConfig(Properties engineProperties, Properties clusterProperties) {
-    try {
-      // iotdb-cluster.properties part
-      String clusterConfigPath =
-          this.path
-              + File.separator
-              + "template-node"
-              + File.separator
-              + "conf"
-              + File.separator
-              + "iotdb-cluster.properties";
-
-      Properties clusterConfig = new Properties();
-      clusterConfig.load(new FileInputStream(clusterConfigPath));
-      StringBuilder objString = new StringBuilder("127.0.0.1:" + metaPortArray[0]);
-      for (int i = 1; i < metaPortArray.length; i++) {
-        objString.append(",127.0.0.1:").append(metaPortArray[i]);
-      }
-      clusterConfig.setProperty("seed_nodes", objString.toString());
-      clusterConfig.setProperty("enable_auto_create_schema", "true");
-      clusterConfig.setProperty("internal_meta_port", String.valueOf(this.metaPort));
-      clusterConfig.setProperty("internal_data_port", String.valueOf(this.dataPort));
-      clusterConfig.setProperty("consistency_level", "strong");
-
-      // Temporary settings
-      clusterConfig.setProperty("cluster_info_public_port", String.valueOf(this.rpcPort - 100));
-      clusterConfig.putAll(clusterProperties);
-      clusterConfig.store(new FileWriter(clusterConfigPath), null);
-
-      // iotdb-common.properties part
-      String engineConfigPath =
-          this.path
-              + File.separator
-              + "template-node"
-              + File.separator
-              + "conf"
-              + File.separator
-              + "iotdb-datanode.properties";
-
-      Properties engineConfig = new Properties();
-      engineConfig.load(new FileInputStream(engineConfigPath));
-      engineConfig.setProperty(IoTDBConstant.DN_RPC_PORT, String.valueOf(this.rpcPort));
-      engineConfig.setProperty("enable_influxdb_rpc_service", Boolean.toString(false));
-      engineConfig.putAll(engineProperties);
-      engineConfig.store(new FileWriter(engineConfigPath), null);
-
-    } catch (IOException ex) {
-      fail("Change cluster config failed. " + ex.getMessage());
-    }
-  }
-
-  public void start() throws IOException {
-    ProcessBuilder processBuilder =
-        new ProcessBuilder(
-                this.path
-                    + File.separator
-                    + "template-node"
-                    + File.separator
-                    + "sbin"
-                    + File.separator
-                    + "start-node"
-                    + ".sh")
-            .redirectOutput(new File("/dev/null"))
-            .redirectError(new File("/dev/null"));
-    this.instance = processBuilder.start();
-  }
-
-  public void stop() {
-    this.instance.destroy();
-  }
-
-  public void waitingToShutDown() {
-    while (this.instance.isAlive()) {
-      try {
-        Thread.sleep(100);
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
-    }
-  }
-
-  public String getIp() {
-    return ip;
-  }
-
-  public int getPort() {
-    return rpcPort;
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/integration/env/ConfigFactory.java b/integration/src/main/java/org/apache/iotdb/integration/env/ConfigFactory.java
deleted file mode 100644
index b2b3d93cdbc..00000000000
--- a/integration/src/main/java/org/apache/iotdb/integration/env/ConfigFactory.java
+++ /dev/null
@@ -1,52 +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.integration.env;
-
-import org.apache.iotdb.itbase.env.BaseConfig;
-
-public class ConfigFactory {
-  private static BaseConfig config;
-
-  public static BaseConfig getConfig() {
-    if (config == null) {
-      try {
-        switch (System.getProperty("TestEnv", "Standalone")) {
-          case "Standalone":
-            config =
-                (BaseConfig)
-                    Class.forName("org.apache.iotdb.db.integration.env.StandaloneEnvConfig")
-                        .newInstance();
-            break;
-          case "Remote":
-            config = new RemoteEnvConfig();
-            break;
-          case "FiveNodeCluster1":
-            config = new ClusterEnvConfig();
-            break;
-          default:
-            throw new ClassNotFoundException("The Property class of TestEnv not found");
-        }
-      } catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) {
-        e.printStackTrace();
-        System.exit(-1);
-      }
-    }
-    return config;
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/integration/env/EnvFactory.java b/integration/src/main/java/org/apache/iotdb/integration/env/EnvFactory.java
deleted file mode 100644
index 784682ed613..00000000000
--- a/integration/src/main/java/org/apache/iotdb/integration/env/EnvFactory.java
+++ /dev/null
@@ -1,57 +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.integration.env;
-
-import org.apache.iotdb.itbase.env.BaseEnv;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class EnvFactory {
-  private static BaseEnv env;
-  private static final Logger logger = LoggerFactory.getLogger(EnvFactory.class);
-
-  public static BaseEnv getEnv() {
-    if (env == null) {
-      try {
-        logger.debug(">>>>>>>" + System.getProperty("TestEnv"));
-        switch (System.getProperty("TestEnv", "Standalone")) {
-          case "Standalone":
-            env =
-                (BaseEnv)
-                    Class.forName("org.apache.iotdb.db.integration.env.StandaloneEnv")
-                        .newInstance();
-            break;
-          case "Remote":
-            env = new RemoteServerEnv();
-            break;
-          case "FiveNodeCluster1":
-            env = new FiveNodeCluster1Env();
-            break;
-          default:
-            throw new ClassNotFoundException("The Property class of TestEnv not found");
-        }
-      } catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) {
-        e.printStackTrace();
-        System.exit(-1);
-      }
-    }
-    return env;
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/integration/env/FiveNodeCluster1Env.java b/integration/src/main/java/org/apache/iotdb/integration/env/FiveNodeCluster1Env.java
deleted file mode 100644
index 123223fd452..00000000000
--- a/integration/src/main/java/org/apache/iotdb/integration/env/FiveNodeCluster1Env.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.integration.env;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class FiveNodeCluster1Env extends ClusterEnvBase {
-  private static final Logger logger = LoggerFactory.getLogger(FiveNodeCluster1Env.class);
-
-  private void initEnvironment() throws InterruptedException {
-    List<Integer> portList = searchAvailablePort(5);
-    int[] metaPortArray =
-        new int[] {
-          portList.get(1), portList.get(4), portList.get(7), portList.get(10), portList.get(13)
-        };
-
-    this.nodes = new ArrayList<>();
-    for (int i = 0; i < 5; i++) {
-      this.nodes.add(
-          new ClusterNode(
-              "node" + portList.get(i * 3),
-              "127.0.0.1",
-              portList.get(i * 3),
-              portList.get(i * 3 + 1),
-              portList.get(i * 3 + 2),
-              metaPortArray));
-    }
-    createNodeDir();
-    changeNodesConfig();
-    startCluster();
-  }
-
-  @Override
-  public void initBeforeClass() throws InterruptedException {
-    logger.debug("=======start init class=======");
-    initEnvironment();
-  }
-
-  @Override
-  public void initBeforeTest() throws InterruptedException {
-    logger.debug("=======start init test=======");
-    initEnvironment();
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/integration/env/RemoteEnvConfig.java b/integration/src/main/java/org/apache/iotdb/integration/env/RemoteEnvConfig.java
deleted file mode 100644
index 476e1e0ab04..00000000000
--- a/integration/src/main/java/org/apache/iotdb/integration/env/RemoteEnvConfig.java
+++ /dev/null
@@ -1,23 +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.integration.env;
-
-import org.apache.iotdb.itbase.env.BaseConfig;
-
-public class RemoteEnvConfig implements BaseConfig {}
diff --git a/integration/src/main/java/org/apache/iotdb/integration/env/RemoteServerEnv.java b/integration/src/main/java/org/apache/iotdb/integration/env/RemoteServerEnv.java
deleted file mode 100644
index 82aee4e38bf..00000000000
--- a/integration/src/main/java/org/apache/iotdb/integration/env/RemoteServerEnv.java
+++ /dev/null
@@ -1,107 +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.integration.env;
-
-import org.apache.iotdb.itbase.env.BaseEnv;
-import org.apache.iotdb.jdbc.Config;
-import org.apache.iotdb.jdbc.Constant;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import static org.apache.iotdb.jdbc.Config.VERSION;
-import static org.junit.Assert.fail;
-
-public class RemoteServerEnv implements BaseEnv {
-  private String ip_addr = System.getProperty("RemoteIp", "127.0.0.1");
-  private String port = System.getProperty("RemotePort", "6667");
-  private String user = System.getProperty("RemoteUser", "root");
-  private String password = System.getProperty("RemotePassword", "root");
-
-  @Override
-  public void initBeforeClass() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.init;");
-      statement.execute("DELETE DATABASE root;");
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Override
-  public void cleanAfterClass() {}
-
-  @Override
-  public void initBeforeTest() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.init;");
-      statement.execute("DELETE DATABASE root;");
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Override
-  public void cleanAfterTest() {}
-
-  @Override
-  public Connection getConnection() throws SQLException {
-    Connection connection = null;
-    try {
-      Class.forName(Config.JDBC_DRIVER_NAME);
-      connection =
-          DriverManager.getConnection(
-              Config.IOTDB_URL_PREFIX + ip_addr + ":" + port, user, password);
-    } catch (ClassNotFoundException e) {
-      e.printStackTrace();
-      fail();
-    }
-    return connection;
-  }
-
-  @Override
-  public Connection getConnection(Constant.Version version) throws SQLException {
-    Connection connection = null;
-    try {
-      Class.forName(Config.JDBC_DRIVER_NAME);
-      connection =
-          DriverManager.getConnection(
-              Config.IOTDB_URL_PREFIX
-                  + ip_addr
-                  + ":"
-                  + port
-                  + "?"
-                  + VERSION
-                  + "="
-                  + version.toString(),
-              user,
-              password);
-    } catch (ClassNotFoundException e) {
-      e.printStackTrace();
-      fail();
-    }
-    return connection;
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/itbase/category/ClusterTest.java b/integration/src/main/java/org/apache/iotdb/itbase/category/ClusterTest.java
deleted file mode 100644
index 25fb7ed63de..00000000000
--- a/integration/src/main/java/org/apache/iotdb/itbase/category/ClusterTest.java
+++ /dev/null
@@ -1,21 +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.itbase.category;
-
-public interface ClusterTest {}
diff --git a/integration/src/main/java/org/apache/iotdb/itbase/category/LocalStandaloneTest.java b/integration/src/main/java/org/apache/iotdb/itbase/category/LocalStandaloneTest.java
deleted file mode 100644
index e297dbc82e8..00000000000
--- a/integration/src/main/java/org/apache/iotdb/itbase/category/LocalStandaloneTest.java
+++ /dev/null
@@ -1,21 +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.itbase.category;
-
-public interface LocalStandaloneTest {}
diff --git a/integration/src/main/java/org/apache/iotdb/itbase/category/RemoteTest.java b/integration/src/main/java/org/apache/iotdb/itbase/category/RemoteTest.java
deleted file mode 100644
index dbbea9e3b3f..00000000000
--- a/integration/src/main/java/org/apache/iotdb/itbase/category/RemoteTest.java
+++ /dev/null
@@ -1,21 +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.itbase.category;
-
-public interface RemoteTest {}
diff --git a/integration/src/main/java/org/apache/iotdb/itbase/env/BaseConfig.java b/integration/src/main/java/org/apache/iotdb/itbase/env/BaseConfig.java
deleted file mode 100644
index 76d227d8c18..00000000000
--- a/integration/src/main/java/org/apache/iotdb/itbase/env/BaseConfig.java
+++ /dev/null
@@ -1,112 +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.itbase.env;
-
-import java.util.Properties;
-
-public interface BaseConfig {
-
-  default void clearAllProperties() throws UnsupportedOperationException {
-    throw new UnsupportedOperationException("Method clearAllProperties not implement");
-  }
-
-  default Properties getEngineProperties() throws UnsupportedOperationException {
-    throw new UnsupportedOperationException("Method getEngineProperties not implement");
-  }
-
-  default Properties getClusterProperties() throws UnsupportedOperationException {
-    throw new UnsupportedOperationException("Method getClusterProperties not implement");
-  }
-
-  default BaseConfig setMaxNumberOfPointsInPage(int maxNumberOfPointsInPage) {
-    return this;
-  }
-
-  default BaseConfig setPageSizeInByte(int pageSizeInByte) {
-    return this;
-  }
-
-  default BaseConfig setGroupSizeInByte(int groupSizeInByte) {
-    return this;
-  }
-
-  default BaseConfig setMemtableSizeThreshold(long memtableSizeThreshold) {
-    return this;
-  }
-
-  default BaseConfig setDataRegionNum(int dataRegionNum) {
-    return this;
-  }
-
-  default BaseConfig setPartitionInterval(long partitionInterval) {
-    return this;
-  }
-
-  default BaseConfig setCompressor(String compressor) {
-    return this;
-  }
-
-  default BaseConfig setMaxQueryDeduplicatedPathNum(int maxQueryDeduplicatedPathNum) {
-    return this;
-  }
-
-  default BaseConfig setRpcThriftCompressionEnable(boolean rpcThriftCompressionEnable) {
-    return this;
-  }
-
-  default BaseConfig setRpcAdvancedCompressionEnable(boolean rpcAdvancedCompressionEnable) {
-    return this;
-  }
-
-  default BaseConfig setUdfCollectorMemoryBudgetInMB(float udfCollectorMemoryBudgetInMB) {
-    return this;
-  }
-
-  default BaseConfig setUdfTransformerMemoryBudgetInMB(float udfTransformerMemoryBudgetInMB) {
-    return this;
-  }
-
-  default BaseConfig setUdfReaderMemoryBudgetInMB(float udfReaderMemoryBudgetInMB) {
-    return this;
-  }
-
-  default BaseConfig setEnableSeqSpaceCompaction(boolean enableSeqSpaceCompaction) {
-    return this;
-  }
-
-  default BaseConfig setEnableUnseqSpaceCompaction(boolean enableUnseqSpaceCompaction) {
-    return this;
-  }
-
-  default BaseConfig setEnableCrossSpaceCompaction(boolean enableCrossSpaceCompaction) {
-    return this;
-  }
-
-  default BaseConfig setEnableIDTable(boolean isEnableIDTable) {
-    return this;
-  }
-
-  default BaseConfig setDeviceIDTransformationMethod(String deviceIDTransformationMethod) {
-    return this;
-  }
-
-  default BaseConfig setAutoCreateSchemaEnabled(boolean enableAutoCreateSchema) {
-    return this;
-  }
-}
diff --git a/integration/src/main/java/org/apache/iotdb/itbase/env/BaseEnv.java b/integration/src/main/java/org/apache/iotdb/itbase/env/BaseEnv.java
deleted file mode 100644
index b7d3d30ca54..00000000000
--- a/integration/src/main/java/org/apache/iotdb/itbase/env/BaseEnv.java
+++ /dev/null
@@ -1,39 +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.itbase.env;
-
-import org.apache.iotdb.jdbc.Constant;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-
-public interface BaseEnv {
-
-  void initBeforeClass() throws InterruptedException;
-
-  void cleanAfterClass();
-
-  void initBeforeTest() throws InterruptedException;
-
-  void cleanAfterTest();
-
-  Connection getConnection() throws SQLException;
-
-  Connection getConnection(Constant.Version version) throws SQLException;
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IOTDBInsertIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IOTDBInsertIT.java
deleted file mode 100644
index e1bf7d4cd3e..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IOTDBInsertIT.java
+++ /dev/null
@@ -1,200 +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.integration;
-
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.itbase.category.RemoteTest;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-/**
- * @author yuqi
- * @mail yuqi4733@gmail.com
- * @description This class is initially intend to test the issue of IOTDB-920, that is: Disable
- *     insert row thats only contains time/timestamp column
- * @time 27/9/20 20:56
- */
-@Category({LocalStandaloneTest.class, ClusterTest.class, RemoteTest.class})
-public class IOTDBInsertIT {
-  private static List<String> sqls = new ArrayList<>();
-  private static Connection connection;
-
-  @BeforeClass
-  public static void setUp() throws Exception {
-    EnvFactory.getEnv().initBeforeClass();
-    initCreateSQLStatement();
-    insertData();
-  }
-
-  @AfterClass
-  public static void tearDown() throws Exception {
-    close();
-    EnvFactory.getEnv().cleanAfterClass();
-  }
-
-  private static void close() {
-    if (Objects.nonNull(connection)) {
-      try {
-        connection.close();
-      } catch (Exception e) {
-        e.printStackTrace();
-      }
-    }
-  }
-
-  private static void initCreateSQLStatement() {
-    sqls.add("CREATE DATABASE root.t1");
-    sqls.add("CREATE TIMESERIES root.t1.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN");
-    sqls.add("CREATE TIMESERIES root.t1.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE");
-    sqls.add("CREATE TIMESERIES root.t1.wf01.wt01.f1 WITH DATATYPE=FLOAT, ENCODING=PLAIN");
-    sqls.add("CREATE TIMESERIES root.t1.wf01.wt01.d1 WITH DATATYPE=DOUBLE, ENCODING=PLAIN");
-  }
-
-  private static void insertData() throws SQLException {
-    connection = EnvFactory.getEnv().getConnection();
-    Statement statement = connection.createStatement();
-
-    for (String sql : sqls) {
-      statement.execute(sql);
-    }
-
-    statement.close();
-  }
-
-  @Test
-  public void testNormalInsert() throws SQLException {
-    Statement st0 = connection.createStatement();
-    st0.execute("insert into root.t1.wf01.wt01(timestamp, status) values (1000, true)");
-    st0.execute("insert into root.t1.wf01.wt01(timestamp, status) values (2000, false)");
-    st0.execute("insert into root.t1.wf01.wt01(timestamp, status) values (3000, true)");
-    st0.execute(
-        "insert into root.t1.wf01.wt01(timestamp, status, temperature) values (4000, true, 17.1)");
-    st0.execute(
-        "insert into root.t1.wf01.wt01(timestamp, status, temperature) values (5000, true, 20.1)");
-    st0.execute(
-        "insert into root.t1.wf01.wt01(timestamp, status, temperature) values (6000, true, 22)");
-    st0.close();
-
-    Statement st1 = connection.createStatement();
-    ResultSet rs1 = st1.executeQuery("select count(status) from root.t1.wf01.wt01");
-    rs1.next();
-    long countStatus = rs1.getLong(1);
-    Assert.assertTrue(countStatus == 6L);
-
-    ResultSet rs2 = st1.executeQuery("select count(temperature) from root.t1.wf01.wt01");
-    rs2.next();
-    long countTemperature = rs2.getLong(1);
-    Assert.assertTrue(countTemperature == 3);
-
-    st1.close();
-  }
-
-  @Test(expected = Exception.class)
-  public void testInsertWithTimesColumns() throws SQLException {
-    Statement st1 = connection.createStatement();
-    st1.execute("insert into root.t1.wf01.wt01(timestamp, status) values(11000)");
-  }
-
-  @Test(expected = Exception.class)
-  public void testInsertWithException1() throws SQLException {
-    Statement st1 = connection.createStatement();
-    st1.execute("insert into root.t1.wf01.wt01(timestamp, status) values(11000, true, 17.1)");
-  }
-
-  @Test(expected = Exception.class)
-  public void testInsertWithException2() throws SQLException {
-    Statement st1 = connection.createStatement();
-    st1.execute(
-        "insert into root.t1.wf01.wt01(timestamp, status, temperature) values(11000, true, 20.1, false)");
-  }
-
-  @Test(expected = Exception.class)
-  public void testInsertWithException3() throws SQLException {
-    Statement st1 = connection.createStatement();
-    st1.execute("insert into root.t1.wf01.wt01(status) values(11000, true)");
-  }
-
-  @Test(expected = Exception.class)
-  public void testInsertWithException4() throws SQLException {
-    Statement st1 = connection.createStatement();
-    st1.execute("insert into root.t1.wf01.wt01(status, temperature) values(true)");
-  }
-
-  @Test(expected = Exception.class)
-  public void testInsertWithException5() throws SQLException {
-    Statement st1 = connection.createStatement();
-    st1.execute("insert into root.t1.wf01.wt01(status, temperature) values(true, 20.1, false)");
-  }
-
-  @Test(expected = Exception.class)
-  public void testInsertWithException6() throws SQLException {
-    Statement st1 = connection.createStatement();
-    st1.execute(" insert into root.t1.*.a(timestamp, b) values(1509465600000, true)");
-  }
-
-  @Test
-  public void testInsertWithDuplicatedMeasurements() {
-    try (Statement st1 = connection.createStatement()) {
-      st1.execute(
-          "insert into root.t1.wf01.wt01(time, s3, status, status) values(100, true, 20.1, 20.2)");
-      Assert.fail();
-    } catch (SQLException e) {
-      Assert.assertEquals("411: Insertion contains duplicated measurement: status", e.getMessage());
-    }
-  }
-
-  @Test
-  public void testInsertInfinityFloatValue() {
-    try (Statement st1 = connection.createStatement()) {
-      st1.execute("insert into root.t1.wf01.wt01(time, f1) values(100, 3.4028235E300)");
-      Assert.fail();
-    } catch (SQLException e) {
-      Assert.assertEquals(
-          "313: failed to insert measurements [f1] caused by The input float value is Infinity",
-          e.getMessage());
-    }
-  }
-
-  @Test
-  public void testInsertInfinityDoubleValue() {
-    try (Statement st1 = connection.createStatement()) {
-      st1.execute("insert into root.t1.wf01.wt01(time, d1) values(100, 3.4028235E6000)");
-      Assert.fail();
-    } catch (SQLException e) {
-      Assert.assertEquals(
-          "313: failed to insert measurements [d1] caused by The input double value is Infinity",
-          e.getMessage());
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBAlignedTimeSeriesCompactionIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBAlignedTimeSeriesCompactionIT.java
deleted file mode 100644
index f5edc6bfb8b..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBAlignedTimeSeriesCompactionIT.java
+++ /dev/null
@@ -1,564 +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.integration;
-
-import org.apache.iotdb.integration.env.EnvFactory;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.Statement;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Random;
-import java.util.TreeMap;
-
-public class IoTDBAlignedTimeSeriesCompactionIT {
-  private static final String storageGroup = "root.compactionTestForAligned";
-  private final double E = 0.001;
-
-  @Before
-  public void setUp() throws Exception {
-    EnvFactory.getEnv().initBeforeClass();
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE " + storageGroup);
-    }
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("delete database " + storageGroup);
-    }
-    EnvFactory.getEnv().cleanAfterClass();
-  }
-
-  @Test
-  public void testSimpleAlignedCompaction() throws Exception {
-    String[] prepareSql =
-        new String[] {
-          "create aligned timeseries root.compactionTestForAligned.d1(s1 DOUBLE, s2 DOUBLE, s3 DOUBLE, s4 DOUBLE)",
-          "create aligned timeseries root.compactionTestForAligned.d2(s1 INT64, s2 INT64, s3 INT64, s4 INT64)",
-        };
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      for (String sql : prepareSql) {
-        statement.execute(sql);
-      }
-      long time = 1;
-      for (int i = 0; i < 30; ++i) {
-        long nextTime = time + 100;
-        while (time < nextTime) {
-          statement.execute(
-              String.format(
-                  "insert into root.compactionTestForAligned.d1(time, s1, s2, s3, s4) aligned values (%d, %d, %d, %d, %d)",
-                  time, time + 1, time + 2, time + 3, time + 4));
-          statement.execute(
-              String.format(
-                  "insert into root.compactionTestForAligned.d2(time, s1, s2, s3, s4) aligned values (%d, %d, %d, %d, %d)",
-                  time, time * 2, time * 3, time * 4, time * 5));
-          time++;
-        }
-        statement.execute("FLUSH");
-      }
-
-      statement.execute("MERGE");
-
-      Thread.sleep(500);
-      ResultSet resultSet =
-          statement.executeQuery("select * from root.compactionTestForAligned.**");
-
-      int count = 0;
-      while (resultSet.next()) {
-        count++;
-        long resultTime = resultSet.getLong("Time");
-        double d1s1 = resultSet.getDouble("root.compactionTestForAligned.d1.s1");
-        double d1s2 = resultSet.getDouble("root.compactionTestForAligned.d1.s2");
-        double d1s3 = resultSet.getDouble("root.compactionTestForAligned.d1.s3");
-        double d1s4 = resultSet.getDouble("root.compactionTestForAligned.d1.s4");
-
-        long d2s1 = resultSet.getLong("root.compactionTestForAligned.d2.s1");
-        long d2s2 = resultSet.getLong("root.compactionTestForAligned.d2.s2");
-        long d2s3 = resultSet.getLong("root.compactionTestForAligned.d2.s3");
-        long d2s4 = resultSet.getLong("root.compactionTestForAligned.d2.s4");
-
-        Assert.assertEquals(resultTime + 1, d1s1, E);
-        Assert.assertEquals(resultTime + 2, d1s2, E);
-        Assert.assertEquals(resultTime + 3, d1s3, E);
-        Assert.assertEquals(resultTime + 4, d1s4, E);
-
-        Assert.assertEquals(resultTime * 2, d2s1);
-        Assert.assertEquals(resultTime * 3, d2s2);
-        Assert.assertEquals(resultTime * 4, d2s3);
-        Assert.assertEquals(resultTime * 5, d2s4);
-      }
-      Assert.assertEquals(30 * 100, count);
-    }
-  }
-
-  @Test
-  public void testAlignedTsFileWithNullValue() throws Exception {
-    String[] prepareSql =
-        new String[] {
-          "create aligned timeseries root.compactionTestForAligned.d1(s1 DOUBLE, s2 DOUBLE, s3 DOUBLE, s4 DOUBLE)",
-          "create aligned timeseries root.compactionTestForAligned.d2(s1 INT64, s2 INT64, s3 INT64, s4 INT64)",
-        };
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      for (String sql : prepareSql) {
-        statement.execute(sql);
-      }
-      long time = 1;
-      Map<String, Map<Long, Long>> valueMap = new HashMap<>();
-      for (int i = 0; i < 30; ++i) {
-        long nextTime = time + 100;
-        while (time < nextTime) {
-          if (time % 2 == 0) {
-            statement.execute(
-                String.format(
-                    "insert into root.compactionTestForAligned.d1(time, s1, s2, s3, s4) aligned values (%d, %d, %d, %d, %d)",
-                    time, time + 1, time + 2, time + 3, time + 4));
-            statement.execute(
-                String.format(
-                    "insert into root.compactionTestForAligned.d2(time, s1, s2, s3, s4) aligned values (%d, %d, %d, %d, %d)",
-                    time, time * 2, time * 3, time * 4, time * 5));
-            valueMap.computeIfAbsent("d1s1", x -> new TreeMap<>()).put(time, time + 1);
-            valueMap.computeIfAbsent("d1s2", x -> new TreeMap<>()).put(time, time + 2);
-            valueMap.computeIfAbsent("d1s3", x -> new TreeMap<>()).put(time, time + 3);
-            valueMap.computeIfAbsent("d1s4", x -> new TreeMap<>()).put(time, time + 4);
-            valueMap.computeIfAbsent("d2s1", x -> new TreeMap<>()).put(time, time * 2);
-            valueMap.computeIfAbsent("d2s2", x -> new TreeMap<>()).put(time, time * 3);
-            valueMap.computeIfAbsent("d2s3", x -> new TreeMap<>()).put(time, time * 4);
-            valueMap.computeIfAbsent("d2s4", x -> new TreeMap<>()).put(time, time * 5);
-          } else {
-            statement.execute(
-                String.format(
-                    "insert into root.compactionTestForAligned.d1(time, s1, s2, s3, s4) aligned values (%d, %d, %d, %d, null)",
-                    time, time + 1, time + 2, time + 3));
-            statement.execute(
-                String.format(
-                    "insert into root.compactionTestForAligned.d2(time, s1, s2, s3, s4) aligned values (%d, null, %d, %d, %d)",
-                    time, time * 3, time * 4, time * 5));
-            valueMap.computeIfAbsent("d1s1", x -> new TreeMap<>()).put(time, time + 1);
-            valueMap.computeIfAbsent("d1s2", x -> new TreeMap<>()).put(time, time + 2);
-            valueMap.computeIfAbsent("d1s3", x -> new TreeMap<>()).put(time, time + 3);
-            valueMap.computeIfAbsent("d1s4", x -> new TreeMap<>()).put(time, 0L);
-            valueMap.computeIfAbsent("d2s1", x -> new TreeMap<>()).put(time, 0L);
-            valueMap.computeIfAbsent("d2s2", x -> new TreeMap<>()).put(time, time * 3);
-            valueMap.computeIfAbsent("d2s3", x -> new TreeMap<>()).put(time, time * 4);
-            valueMap.computeIfAbsent("d2s4", x -> new TreeMap<>()).put(time, time * 5);
-          }
-          time++;
-        }
-        statement.execute("FLUSH");
-      }
-
-      statement.execute("MERGE");
-
-      Thread.sleep(500);
-      ResultSet resultSet =
-          statement.executeQuery("select * from root.compactionTestForAligned.**");
-
-      int count = 0;
-      while (resultSet.next()) {
-        count++;
-        long resultTime = resultSet.getLong("Time");
-        double d1s1 = resultSet.getDouble("root.compactionTestForAligned.d1.s1");
-        double d1s2 = resultSet.getDouble("root.compactionTestForAligned.d1.s2");
-        double d1s3 = resultSet.getDouble("root.compactionTestForAligned.d1.s3");
-        double d1s4 = resultSet.getDouble("root.compactionTestForAligned.d1.s4");
-
-        long d2s1 = resultSet.getLong("root.compactionTestForAligned.d2.s1");
-        long d2s2 = resultSet.getLong("root.compactionTestForAligned.d2.s2");
-        long d2s3 = resultSet.getLong("root.compactionTestForAligned.d2.s3");
-        long d2s4 = resultSet.getLong("root.compactionTestForAligned.d2.s4");
-
-        Assert.assertEquals(valueMap.get("d1s1").get(resultTime).doubleValue(), d1s1, E);
-        Assert.assertEquals(valueMap.get("d1s2").get(resultTime).doubleValue(), d1s2, E);
-        Assert.assertEquals(valueMap.get("d1s3").get(resultTime).doubleValue(), d1s3, E);
-        Assert.assertEquals(valueMap.get("d1s4").get(resultTime).doubleValue(), d1s4, E);
-
-        Assert.assertEquals((long) valueMap.get("d2s1").get(resultTime), d2s1);
-        Assert.assertEquals((long) valueMap.get("d2s2").get(resultTime), d2s2);
-        Assert.assertEquals((long) valueMap.get("d2s3").get(resultTime), d2s3);
-        Assert.assertEquals((long) valueMap.get("d2s4").get(resultTime), d2s4);
-      }
-      Assert.assertEquals(30 * 100, count);
-    }
-  }
-
-  @Test
-  public void testAlignedTsFileWithDifferentSeriesInDifferentTsFile() throws Exception {
-    String[] prepareSql =
-        new String[] {
-          "create aligned timeseries root.compactionTestForAligned.d1(s1 DOUBLE, s2 DOUBLE, s3 DOUBLE, s4 DOUBLE)",
-          "create aligned timeseries root.compactionTestForAligned.d2(s1 INT64, s2 INT64, s3 INT64, s4 INT64)",
-        };
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      for (String sql : prepareSql) {
-        statement.execute(sql);
-      }
-      long time = 1;
-      Map<String, Map<Long, Long>> valueMap = new HashMap<>();
-      Random random = new Random(10);
-      for (int i = 0; i < 30; ++i) {
-        long nextTime = time + 100;
-        if (i % 2 == 0) {
-          while (time < nextTime) {
-            statement.execute(
-                String.format(
-                    "insert into root.compactionTestForAligned.d1(time, s1, s2, s3, s4) aligned values (%d, %d, %d, %d, %d)",
-                    time, time + 1, time + 2, time + 3, time + 4));
-            statement.execute(
-                String.format(
-                    "insert into root.compactionTestForAligned.d2(time, s1, s2, s3, s4) aligned values (%d, %d, %d, %d, %d)",
-                    time, time * 2, time * 3, time * 4, time * 5));
-            valueMap.computeIfAbsent("d1s1", x -> new TreeMap<>()).put(time, time + 1);
-            valueMap.computeIfAbsent("d1s2", x -> new TreeMap<>()).put(time, time + 2);
-            valueMap.computeIfAbsent("d1s3", x -> new TreeMap<>()).put(time, time + 3);
-            valueMap.computeIfAbsent("d1s4", x -> new TreeMap<>()).put(time, time + 4);
-            valueMap.computeIfAbsent("d2s1", x -> new TreeMap<>()).put(time, time * 2);
-            valueMap.computeIfAbsent("d2s2", x -> new TreeMap<>()).put(time, time * 3);
-            valueMap.computeIfAbsent("d2s3", x -> new TreeMap<>()).put(time, time * 4);
-            valueMap.computeIfAbsent("d2s4", x -> new TreeMap<>()).put(time, time * 5);
-            time++;
-          }
-        } else {
-          while (time < nextTime) {
-            statement.execute(
-                String.format(
-                    "insert into root.compactionTestForAligned.d1(time, s1, s2, s3, s4) aligned values (%d, null, %d, %d, null)",
-                    time, time + 2, time + 3));
-            statement.execute(
-                String.format(
-                    "insert into root.compactionTestForAligned.d2(time, s1, s2, s3, s4) aligned values (%d, null, %d, null, %d)",
-                    time, time * 3, time * 5));
-            valueMap.computeIfAbsent("d1s1", x -> new TreeMap<>()).put(time, 0L);
-            valueMap.computeIfAbsent("d1s2", x -> new TreeMap<>()).put(time, time + 2);
-            valueMap.computeIfAbsent("d1s3", x -> new TreeMap<>()).put(time, time + 3);
-            valueMap.computeIfAbsent("d1s4", x -> new TreeMap<>()).put(time, 0L);
-            valueMap.computeIfAbsent("d2s1", x -> new TreeMap<>()).put(time, 0L);
-            valueMap.computeIfAbsent("d2s2", x -> new TreeMap<>()).put(time, time * 3);
-            valueMap.computeIfAbsent("d2s3", x -> new TreeMap<>()).put(time, 0L);
-            valueMap.computeIfAbsent("d2s4", x -> new TreeMap<>()).put(time, time * 5);
-            time++;
-          }
-        }
-        statement.execute("FLUSH");
-      }
-
-      statement.execute("MERGE");
-
-      Thread.sleep(500);
-      ResultSet resultSet =
-          statement.executeQuery("select * from root.compactionTestForAligned.**");
-
-      int count = 0;
-      while (resultSet.next()) {
-        count++;
-        long resultTime = resultSet.getLong("Time");
-        double d1s1 = resultSet.getDouble("root.compactionTestForAligned.d1.s1");
-        double d1s2 = resultSet.getDouble("root.compactionTestForAligned.d1.s2");
-        double d1s3 = resultSet.getDouble("root.compactionTestForAligned.d1.s3");
-        double d1s4 = resultSet.getDouble("root.compactionTestForAligned.d1.s4");
-
-        long d2s1 = resultSet.getLong("root.compactionTestForAligned.d2.s1");
-        long d2s2 = resultSet.getLong("root.compactionTestForAligned.d2.s2");
-        long d2s3 = resultSet.getLong("root.compactionTestForAligned.d2.s3");
-        long d2s4 = resultSet.getLong("root.compactionTestForAligned.d2.s4");
-
-        Assert.assertEquals(valueMap.get("d1s1").get(resultTime).doubleValue(), d1s1, E);
-        Assert.assertEquals(valueMap.get("d1s2").get(resultTime).doubleValue(), d1s2, E);
-        Assert.assertEquals(valueMap.get("d1s3").get(resultTime).doubleValue(), d1s3, E);
-        Assert.assertEquals(valueMap.get("d1s4").get(resultTime).doubleValue(), d1s4, E);
-
-        Assert.assertEquals((long) valueMap.get("d2s1").get(resultTime), d2s1);
-        Assert.assertEquals((long) valueMap.get("d2s2").get(resultTime), d2s2);
-        Assert.assertEquals((long) valueMap.get("d2s3").get(resultTime), d2s3);
-        Assert.assertEquals((long) valueMap.get("d2s4").get(resultTime), d2s4);
-      }
-      Assert.assertEquals(30 * 100, count);
-    }
-  }
-
-  @Test
-  public void testAlignedTsFileWithDifferentDevicesInDifferentTsFile() throws Exception {
-    String[] prepareSql =
-        new String[] {
-          "create aligned timeseries root.compactionTestForAligned.d1(s1 DOUBLE, s2 DOUBLE, s3 DOUBLE, s4 DOUBLE)",
-          "create aligned timeseries root.compactionTestForAligned.d2(s1 INT64, s2 INT64, s3 INT64, s4 INT64)",
-        };
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      for (String sql : prepareSql) {
-        statement.execute(sql);
-      }
-      long time = 1;
-      Map<String, Map<Long, Long>> valueMap = new HashMap<>();
-      Random random = new Random(10);
-      for (int i = 0; i < 30; ++i) {
-        long nextTime = time + 100;
-        long tempTime = time;
-        while (tempTime < nextTime) {
-          statement.execute(
-              String.format(
-                  "insert into root.compactionTestForAligned.d1(time, s1, s2, s3, s4) aligned values (%d, %d, %d, %d, %d)",
-                  tempTime, tempTime + 1, tempTime + 2, tempTime + 3, tempTime + 4));
-          valueMap.computeIfAbsent("d1s1", x -> new TreeMap<>()).put(tempTime, tempTime + 1);
-          valueMap.computeIfAbsent("d1s2", x -> new TreeMap<>()).put(tempTime, tempTime + 2);
-          valueMap.computeIfAbsent("d1s3", x -> new TreeMap<>()).put(tempTime, tempTime + 3);
-          valueMap.computeIfAbsent("d1s4", x -> new TreeMap<>()).put(tempTime, tempTime + 4);
-          tempTime++;
-        }
-        statement.execute("FLUSH");
-        while (time < nextTime) {
-          statement.execute(
-              String.format(
-                  "insert into root.compactionTestForAligned.d2(time, s1, s2, s3, s4) aligned values (%d, null, %d, null, %d)",
-                  time, time * 3, time * 5));
-          valueMap.computeIfAbsent("d2s1", x -> new TreeMap<>()).put(time, 0L);
-          valueMap.computeIfAbsent("d2s2", x -> new TreeMap<>()).put(time, time * 3);
-          valueMap.computeIfAbsent("d2s3", x -> new TreeMap<>()).put(time, 0L);
-          valueMap.computeIfAbsent("d2s4", x -> new TreeMap<>()).put(time, time * 5);
-          time++;
-        }
-        statement.execute("FLUSH");
-      }
-
-      statement.execute("MERGE");
-
-      Thread.sleep(500);
-      ResultSet resultSet =
-          statement.executeQuery("select * from root.compactionTestForAligned.**");
-
-      int count = 0;
-      while (resultSet.next()) {
-        count++;
-        long resultTime = resultSet.getLong("Time");
-        double d1s1 = resultSet.getDouble("root.compactionTestForAligned.d1.s1");
-        double d1s2 = resultSet.getDouble("root.compactionTestForAligned.d1.s2");
-        double d1s3 = resultSet.getDouble("root.compactionTestForAligned.d1.s3");
-        double d1s4 = resultSet.getDouble("root.compactionTestForAligned.d1.s4");
-
-        long d2s1 = resultSet.getLong("root.compactionTestForAligned.d2.s1");
-        long d2s2 = resultSet.getLong("root.compactionTestForAligned.d2.s2");
-        long d2s3 = resultSet.getLong("root.compactionTestForAligned.d2.s3");
-        long d2s4 = resultSet.getLong("root.compactionTestForAligned.d2.s4");
-
-        Assert.assertEquals(valueMap.get("d1s1").get(resultTime).doubleValue(), d1s1, E);
-        Assert.assertEquals(valueMap.get("d1s2").get(resultTime).doubleValue(), d1s2, E);
-        Assert.assertEquals(valueMap.get("d1s3").get(resultTime).doubleValue(), d1s3, E);
-        Assert.assertEquals(valueMap.get("d1s4").get(resultTime).doubleValue(), d1s4, E);
-
-        Assert.assertEquals((long) valueMap.get("d2s1").get(resultTime), d2s1);
-        Assert.assertEquals((long) valueMap.get("d2s2").get(resultTime), d2s2);
-        Assert.assertEquals((long) valueMap.get("d2s3").get(resultTime), d2s3);
-        Assert.assertEquals((long) valueMap.get("d2s4").get(resultTime), d2s4);
-      }
-      Assert.assertEquals(30 * 100, count);
-    }
-  }
-
-  @Test
-  public void testAlignedTsFileWithDifferentDataType() throws Exception {
-    String[] prepareSql =
-        new String[] {
-          "create aligned timeseries root.compactionTestForAligned.d1(s1 DOUBLE, s2 DOUBLE, s3 DOUBLE, s4 DOUBLE)",
-          "create aligned timeseries root.compactionTestForAligned.d2(s1 INT64, s2 INT64, s3 INT64, s4 INT64)",
-          "create timeseries root.compactionTestForAligned.d3.s1 DOUBLE encoding=PLAIN",
-          "create timeseries root.compactionTestForAligned.d3.s2 DOUBLE encoding=PLAIN",
-          "create timeseries root.compactionTestForAligned.d3.s3 DOUBLE encoding=PLAIN",
-          "create timeseries root.compactionTestForAligned.d3.s4 DOUBLE encoding=PLAIN",
-        };
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      for (String sql : prepareSql) {
-        statement.execute(sql);
-      }
-      long time = 1;
-      Map<String, Map<Long, Long>> valueMap = new HashMap<>();
-      for (int i = 0; i < 30; ++i) {
-        long nextTime = time + 100;
-        while (time < nextTime) {
-          statement.execute(
-              String.format(
-                  "insert into root.compactionTestForAligned.d1(time, s1, s2, s3, s4) aligned values (%d, %d, %d, %d, %d)",
-                  time, time + 1, time + 2, time + 3, time + 4));
-          statement.execute(
-              String.format(
-                  "insert into root.compactionTestForAligned.d2(time, s1, s2, s3, s4) aligned values (%d, %d, %d, %d, %d)",
-                  time, time * 2, time * 3, time * 4, time * 5));
-          statement.execute(
-              String.format(
-                  "insert into root.compactionTestForAligned.d3(time, s1, s2, s3, s4) values (%d, %d, %d, %d, %d)",
-                  time, time * 20, time * 30, time * 40, time * 50));
-          valueMap.computeIfAbsent("d1s1", x -> new TreeMap<>()).put(time, time + 1);
-          valueMap.computeIfAbsent("d1s2", x -> new TreeMap<>()).put(time, time + 2);
-          valueMap.computeIfAbsent("d1s3", x -> new TreeMap<>()).put(time, time + 3);
-          valueMap.computeIfAbsent("d1s4", x -> new TreeMap<>()).put(time, time + 4);
-          valueMap.computeIfAbsent("d2s1", x -> new TreeMap<>()).put(time, time * 2);
-          valueMap.computeIfAbsent("d2s2", x -> new TreeMap<>()).put(time, time * 3);
-          valueMap.computeIfAbsent("d2s3", x -> new TreeMap<>()).put(time, time * 4);
-          valueMap.computeIfAbsent("d2s4", x -> new TreeMap<>()).put(time, time * 5);
-          valueMap.computeIfAbsent("d3s1", x -> new TreeMap<>()).put(time, time * 20);
-          valueMap.computeIfAbsent("d3s2", x -> new TreeMap<>()).put(time, time * 30);
-          valueMap.computeIfAbsent("d3s3", x -> new TreeMap<>()).put(time, time * 40);
-          valueMap.computeIfAbsent("d3s4", x -> new TreeMap<>()).put(time, time * 50);
-          time++;
-        }
-        statement.execute("FLUSH");
-      }
-
-      statement.execute("MERGE");
-
-      Thread.sleep(500);
-      ResultSet resultSet =
-          statement.executeQuery("select * from root.compactionTestForAligned.**");
-
-      int count = 0;
-      while (resultSet.next()) {
-        count++;
-        long resultTime = resultSet.getLong("Time");
-        double d1s1 = resultSet.getDouble("root.compactionTestForAligned.d1.s1");
-        double d1s2 = resultSet.getDouble("root.compactionTestForAligned.d1.s2");
-        double d1s3 = resultSet.getDouble("root.compactionTestForAligned.d1.s3");
-        double d1s4 = resultSet.getDouble("root.compactionTestForAligned.d1.s4");
-
-        long d2s1 = resultSet.getLong("root.compactionTestForAligned.d2.s1");
-        long d2s2 = resultSet.getLong("root.compactionTestForAligned.d2.s2");
-        long d2s3 = resultSet.getLong("root.compactionTestForAligned.d2.s3");
-        long d2s4 = resultSet.getLong("root.compactionTestForAligned.d2.s4");
-
-        double d3s1 = resultSet.getDouble("root.compactionTestForAligned.d3.s1");
-        double d3s2 = resultSet.getDouble("root.compactionTestForAligned.d3.s2");
-        double d3s3 = resultSet.getDouble("root.compactionTestForAligned.d3.s3");
-        double d3s4 = resultSet.getDouble("root.compactionTestForAligned.d3.s4");
-
-        Assert.assertEquals(valueMap.get("d1s1").get(resultTime).doubleValue(), d1s1, E);
-        Assert.assertEquals(valueMap.get("d1s2").get(resultTime).doubleValue(), d1s2, E);
-        Assert.assertEquals(valueMap.get("d1s3").get(resultTime).doubleValue(), d1s3, E);
-        Assert.assertEquals(valueMap.get("d1s4").get(resultTime).doubleValue(), d1s4, E);
-
-        Assert.assertEquals((long) valueMap.get("d2s1").get(resultTime), d2s1);
-        Assert.assertEquals((long) valueMap.get("d2s2").get(resultTime), d2s2);
-        Assert.assertEquals((long) valueMap.get("d2s3").get(resultTime), d2s3);
-        Assert.assertEquals((long) valueMap.get("d2s4").get(resultTime), d2s4);
-
-        Assert.assertEquals(valueMap.get("d3s1").get(resultTime).doubleValue(), d3s1, E);
-        Assert.assertEquals(valueMap.get("d3s2").get(resultTime).doubleValue(), d3s2, E);
-        Assert.assertEquals(valueMap.get("d3s3").get(resultTime).doubleValue(), d3s3, E);
-        Assert.assertEquals(valueMap.get("d3s4").get(resultTime).doubleValue(), d3s4, E);
-      }
-      Assert.assertEquals(30 * 100, count);
-    }
-  }
-
-  @Test
-  public void testAlignedTsFileWithModification() throws Exception {
-    String[] prepareSql =
-        new String[] {
-          "create aligned timeseries root.compactionTestForAligned.d1(s1 DOUBLE, s2 DOUBLE, s3 DOUBLE, s4 DOUBLE)",
-          "create aligned timeseries root.compactionTestForAligned.d2(s1 INT64, s2 INT64, s3 INT64, s4 INT64)",
-        };
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      for (String sql : prepareSql) {
-        statement.execute(sql);
-      }
-      long time = 1;
-      Map<String, Map<Long, Long>> valueMap = new HashMap<>();
-      for (int i = 0; i < 30; ++i) {
-        long nextTime = time + 100;
-        while (time < nextTime) {
-          statement.execute(
-              String.format(
-                  "insert into root.compactionTestForAligned.d1(time, s1, s2, s3, s4) aligned values (%d, %d, %d, %d, %d)",
-                  time, time + 1, time + 2, time + 3, time + 4));
-          statement.execute(
-              String.format(
-                  "insert into root.compactionTestForAligned.d2(time, s1, s2, s3, s4) aligned values (%d, %d, %d, %d, %d)",
-                  time, time * 2, time * 3, time * 4, time * 5));
-          valueMap.computeIfAbsent("d1s1", x -> new TreeMap<>()).put(time, time + 1);
-          valueMap.computeIfAbsent("d1s2", x -> new TreeMap<>()).put(time, time + 2);
-          valueMap.computeIfAbsent("d1s3", x -> new TreeMap<>()).put(time, time + 3);
-          valueMap.computeIfAbsent("d1s4", x -> new TreeMap<>()).put(time, time + 4);
-          valueMap.computeIfAbsent("d2s1", x -> new TreeMap<>()).put(time, time * 2);
-          valueMap.computeIfAbsent("d2s2", x -> new TreeMap<>()).put(time, time * 3);
-          valueMap.computeIfAbsent("d2s3", x -> new TreeMap<>()).put(time, time * 4);
-          valueMap.computeIfAbsent("d2s4", x -> new TreeMap<>()).put(time, time * 5);
-          time++;
-        }
-        statement.execute("FLUSH");
-      }
-      Random random = new Random(10);
-      for (int i = 0; i < 10; i++) {
-        long deleteTime = random.nextLong() % (30 * 100);
-        statement.execute(
-            "delete from root.compactionTestForAligned.d1.s1 where time = " + deleteTime);
-        valueMap.get("d1s1").put(deleteTime, 0L);
-      }
-      for (int i = 0; i < 10; i++) {
-        long deleteTime = random.nextLong() % (30 * 100);
-        statement.execute(
-            "delete from root.compactionTestForAligned.d2.s1 where time = " + deleteTime);
-        valueMap.get("d2s1").put(deleteTime, 0L);
-      }
-
-      statement.execute("MERGE");
-
-      Thread.sleep(500);
-      ResultSet resultSet =
-          statement.executeQuery("select * from root.compactionTestForAligned.**");
-
-      int count = 0;
-      while (resultSet.next()) {
-        count++;
-        long resultTime = resultSet.getLong("Time");
-        double d1s1 = resultSet.getDouble("root.compactionTestForAligned.d1.s1");
-        double d1s2 = resultSet.getDouble("root.compactionTestForAligned.d1.s2");
-        double d1s3 = resultSet.getDouble("root.compactionTestForAligned.d1.s3");
-        double d1s4 = resultSet.getDouble("root.compactionTestForAligned.d1.s4");
-
-        long d2s1 = resultSet.getLong("root.compactionTestForAligned.d2.s1");
-        long d2s2 = resultSet.getLong("root.compactionTestForAligned.d2.s2");
-        long d2s3 = resultSet.getLong("root.compactionTestForAligned.d2.s3");
-        long d2s4 = resultSet.getLong("root.compactionTestForAligned.d2.s4");
-
-        Assert.assertEquals(valueMap.get("d1s1").get(resultTime).doubleValue(), d1s1, E);
-        Assert.assertEquals(valueMap.get("d1s2").get(resultTime).doubleValue(), d1s2, E);
-        Assert.assertEquals(valueMap.get("d1s3").get(resultTime).doubleValue(), d1s3, E);
-        Assert.assertEquals(valueMap.get("d1s4").get(resultTime).doubleValue(), d1s4, E);
-
-        Assert.assertEquals((long) valueMap.get("d2s1").get(resultTime), d2s1);
-        Assert.assertEquals((long) valueMap.get("d2s2").get(resultTime), d2s2);
-        Assert.assertEquals((long) valueMap.get("d2s3").get(resultTime), d2s3);
-        Assert.assertEquals((long) valueMap.get("d2s4").get(resultTime), d2s4);
-      }
-      Assert.assertEquals(30 * 100, count);
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCheckConfigIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCheckConfigIT.java
deleted file mode 100644
index ad8b5709edf..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCheckConfigIT.java
+++ /dev/null
@@ -1,142 +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.integration;
-
-import org.apache.iotdb.commons.exception.ConfigurationException;
-import org.apache.iotdb.commons.file.SystemFileFactory;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.conf.IoTDBStartCheck;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.PrintStream;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class})
-public class IoTDBCheckConfigIT {
-  private File propertiesFile =
-      SystemFileFactory.INSTANCE.getFile(
-          IoTDBDescriptor.getInstance().getConfig().getSchemaDir()
-              + File.separator
-              + "system.properties");
-
-  private Map<String, String> systemProperties = new HashMap<>();
-
-  private Properties properties = new Properties();
-
-  private PrintStream console = null;
-  private ByteArrayOutputStream bytes = null;
-
-  @Before
-  public void setUp() {
-    EnvironmentUtils.envSetUp();
-
-    bytes = new ByteArrayOutputStream();
-    console = System.out;
-    System.setOut(new PrintStream(bytes));
-
-    systemProperties.put("partition_interval", "9223372036854775807");
-    systemProperties.put("timestamp_precision", "ms");
-    systemProperties.put("tsfile_storage_fs", "LOCAL");
-    systemProperties.put("enable_partition", "false");
-    systemProperties.put("max_degree_of_index_node", "256");
-    systemProperties.put("tag_attribute_total_size", "700");
-    systemProperties.put("iotdb_version", "0.13.0");
-    systemProperties.put("virtual_storage_group_num", "1");
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    EnvironmentUtils.cleanEnv();
-    systemProperties.clear();
-    properties.clear();
-    System.setOut(console);
-  }
-
-  @Test
-  public void testSaveTimeEncoderToSystemProperties() throws Exception {
-    IoTDBStartCheck.getInstance().checkSystemConfig();
-    // read properties from system.properties
-    try (FileInputStream inputStream = new FileInputStream(propertiesFile);
-        InputStreamReader inputStreamReader =
-            new InputStreamReader(inputStream, TSFileConfig.STRING_CHARSET)) {
-      properties.load(inputStreamReader);
-    }
-    String timeEncoder = (String) properties.get("time_encoder");
-    assertFalse(timeEncoder.isEmpty());
-  }
-
-  @Test
-  public void testAlterTimeEncoderAfterStartService() throws Exception {
-    EnvironmentUtils.shutdownDaemon();
-    EnvironmentUtils.stopDaemon();
-    systemProperties.put("time_encoder", "REGULAR");
-    writeSystemFile();
-    EnvironmentUtils.reactiveDaemon();
-    try {
-      IoTDBStartCheck.getInstance().checkSystemConfig();
-    } catch (ConfigurationException t) {
-      t.printStackTrace();
-      assertEquals("time_encoder", t.getParameter());
-      assertEquals("REGULAR", t.getCorrectValue());
-      return;
-    }
-    fail("should detect configuration errors");
-  }
-
-  @Test
-  public void testSameTimeEncoderAfterStartService() throws Exception {
-    EnvironmentUtils.shutdownDaemon();
-    EnvironmentUtils.stopDaemon();
-    systemProperties.put("time_encoder", "TS_2DIFF");
-    writeSystemFile();
-    EnvironmentUtils.reactiveDaemon();
-    try {
-      IoTDBStartCheck.getInstance().checkSystemConfig();
-    } catch (Throwable t) {
-      fail(t.getMessage());
-    }
-  }
-
-  private void writeSystemFile() throws IOException {
-    // write properties to system.properties
-    try (FileOutputStream outputStream = new FileOutputStream(propertiesFile)) {
-      systemProperties.forEach((k, v) -> properties.setProperty(k, v));
-      properties.store(outputStream, "System properties:");
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBClearCacheIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBClearCacheIT.java
deleted file mode 100644
index 6a51bc39caf..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBClearCacheIT.java
+++ /dev/null
@@ -1,171 +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.integration;
-
-import org.apache.iotdb.db.engine.cache.ChunkCache;
-import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.itbase.category.RemoteTest;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.Statement;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class, ClusterTest.class, RemoteTest.class})
-public class IoTDBClearCacheIT {
-
-  private static String[] sqls =
-      new String[] {
-        "CREATE DATABASE root.ln",
-        "create timeseries root.ln.wf01.wt01.status with datatype=BOOLEAN,encoding=PLAIN",
-        "insert into root.ln.wf01.wt01(timestamp,status) values(1509465600000,true)",
-        "insert into root.ln.wf01.wt01(timestamp,status) values(1509465660000,true)",
-        "insert into root.ln.wf01.wt01(timestamp,status) values(1509465720000,false)",
-        "insert into root.ln.wf01.wt01(timestamp,status) values(1509465780000,false)",
-        "insert into root.ln.wf01.wt01(timestamp,status) values(1509465840000,false)",
-        "insert into root.ln.wf01.wt01(timestamp,status) values(1509465900000,false)",
-        "insert into root.ln.wf01.wt01(timestamp,status) values(1509465960000,false)",
-        "insert into root.ln.wf01.wt01(timestamp,status) values(1509466020000,false)",
-        "insert into root.ln.wf01.wt01(timestamp,status) values(1509466080000,false)",
-        "insert into root.ln.wf01.wt01(timestamp,status) values(1509466140000,false)",
-        "create timeseries root.ln.wf01.wt01.temperature with datatype=FLOAT,encoding=RLE",
-        "insert into root.ln.wf01.wt01(timestamp,temperature) values(1509465600000,25.957603)",
-        "insert into root.ln.wf01.wt01(timestamp,temperature) values(1509465660000,24.359503)",
-        "insert into root.ln.wf01.wt01(timestamp,temperature) values(1509465720000,20.092794)",
-        "insert into root.ln.wf01.wt01(timestamp,temperature) values(1509465780000,20.182663)",
-        "insert into root.ln.wf01.wt01(timestamp,temperature) values(1509465840000,21.125198)",
-        "insert into root.ln.wf01.wt01(timestamp,temperature) values(1509465900000,22.720892)",
-        "insert into root.ln.wf01.wt01(timestamp,temperature) values(1509465960000,20.71)",
-        "insert into root.ln.wf01.wt01(timestamp,temperature) values(1509466020000,21.451046)",
-        "insert into root.ln.wf01.wt01(timestamp,temperature) values(1509466080000,22.57987)",
-        "insert into root.ln.wf01.wt01(timestamp,temperature) values(1509466140000,20.98177)",
-        "create timeseries root.ln.wf02.wt02.hardware with datatype=TEXT,encoding=PLAIN",
-        "insert into root.ln.wf02.wt02(timestamp,hardware) values(1509465600000,\"v2\")",
-        "insert into root.ln.wf02.wt02(timestamp,hardware) values(1509465660000,\"v2\")",
-        "insert into root.ln.wf02.wt02(timestamp,hardware) values(1509465720000,\"v1\")",
-        "insert into root.ln.wf02.wt02(timestamp,hardware) values(1509465780000,\"v1\")",
-        "insert into root.ln.wf02.wt02(timestamp,hardware) values(1509465840000,\"v1\")",
-        "insert into root.ln.wf02.wt02(timestamp,hardware) values(1509465900000,\"v1\")",
-        "insert into root.ln.wf02.wt02(timestamp,hardware) values(1509465960000,\"v1\")",
-        "insert into root.ln.wf02.wt02(timestamp,hardware) values(1509466020000,\"v1\")",
-        "insert into root.ln.wf02.wt02(timestamp,hardware) values(1509466080000,\"v1\")",
-        "insert into root.ln.wf02.wt02(timestamp,hardware) values(1509466140000,\"v1\")",
-        "create timeseries root.ln.wf02.wt02.status with datatype=BOOLEAN,encoding=PLAIN",
-        "insert into root.ln.wf02.wt02(timestamp,status) values(1509465600000,true)",
-        "insert into root.ln.wf02.wt02(timestamp,status) values(1509465660000,true)",
-        "insert into root.ln.wf02.wt02(timestamp,status) values(1509465720000,false)",
-        "insert into root.ln.wf02.wt02(timestamp,status) values(1509465780000,false)",
-        "insert into root.ln.wf02.wt02(timestamp,status) values(1509465840000,false)",
-        "insert into root.ln.wf02.wt02(timestamp,status) values(1509465900000,false)",
-        "insert into root.ln.wf02.wt02(timestamp,status) values(1509465960000,false)",
-        "insert into root.ln.wf02.wt02(timestamp,status) values(1509466020000,false)",
-        "insert into root.ln.wf02.wt02(timestamp,status) values(1509466080000,false)",
-        "insert into root.ln.wf02.wt02(timestamp,status) values(1509466140000,false)",
-        "CREATE DATABASE root.sgcc",
-        "create timeseries root.sgcc.wf03.wt01.status with datatype=BOOLEAN,encoding=PLAIN",
-        "insert into root.sgcc.wf03.wt01(timestamp,status) values(1509465600000,true)",
-        "insert into root.sgcc.wf03.wt01(timestamp,status) values(1509465660000,true)",
-        "insert into root.sgcc.wf03.wt01(timestamp,status) values(1509465720000,false)",
-        "insert into root.sgcc.wf03.wt01(timestamp,status) values(1509465780000,false)",
-        "insert into root.sgcc.wf03.wt01(timestamp,status) values(1509465840000,false)",
-        "insert into root.sgcc.wf03.wt01(timestamp,status) values(1509465900000,false)",
-        "insert into root.sgcc.wf03.wt01(timestamp,status) values(1509465960000,false)",
-        "insert into root.sgcc.wf03.wt01(timestamp,status) values(1509466020000,false)",
-        "insert into root.sgcc.wf03.wt01(timestamp,status) values(1509466080000,false)",
-        "insert into root.sgcc.wf03.wt01(timestamp,status) values(1509466140000,false)",
-        "create timeseries root.sgcc.wf03.wt01.temperature with datatype=FLOAT,encoding=RLE",
-        "insert into root.sgcc.wf03.wt01(timestamp,temperature) values(1509465600000,25.957603)",
-        "insert into root.sgcc.wf03.wt01(timestamp,temperature) values(1509465660000,24.359503)",
-        "insert into root.sgcc.wf03.wt01(timestamp,temperature) values(1509465720000,20.092794)",
-        "insert into root.sgcc.wf03.wt01(timestamp,temperature) values(1509465780000,20.182663)",
-        "insert into root.sgcc.wf03.wt01(timestamp,temperature) values(1509465840000,21.125198)",
-        "insert into root.sgcc.wf03.wt01(timestamp,temperature) values(1509465900000,22.720892)",
-        "insert into root.sgcc.wf03.wt01(timestamp,temperature) values(1509465960000,20.71)",
-        "insert into root.sgcc.wf03.wt01(timestamp,temperature) values(1509466020000,21.451046)",
-        "insert into root.sgcc.wf03.wt01(timestamp,temperature) values(1509466080000,22.57987)",
-        "insert into root.sgcc.wf03.wt01(timestamp,temperature) values(1509466140000,20.98177)",
-        "flush"
-      };
-
-  @BeforeClass
-  public static void setUp() throws Exception {
-    EnvFactory.getEnv().initBeforeClass();
-
-    importData();
-  }
-
-  @AfterClass
-  public static void tearDown() throws Exception {
-    EnvFactory.getEnv().cleanAfterClass();
-  }
-
-  private static void importData() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      for (String sql : sqls) {
-        statement.execute(sql);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  // Current LRUCache can not be really cleared easily. We screen this test for
-  // passing the CI on https://ci-builds.apache.org/job/IoTDB/job/IoTDB-Pipe/job/master/
-  // @Test
-  public void clearCacheTest() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet = statement.execute("select * from root where time > 10");
-      assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        int cnt = 0;
-        while (resultSet.next()) {
-          cnt++;
-        }
-        Assert.assertEquals(10, cnt);
-      }
-      assertFalse(ChunkCache.getInstance().isEmpty());
-      assertFalse(TimeSeriesMetadataCache.getInstance().isEmpty());
-
-      statement.execute("CLEAR CACHE");
-
-      assertTrue(ChunkCache.getInstance().isEmpty());
-      assertTrue(TimeSeriesMetadataCache.getInstance().isEmpty());
-
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCloseIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCloseIT.java
deleted file mode 100644
index 00bea906e80..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCloseIT.java
+++ /dev/null
@@ -1,191 +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.integration;
-
-import org.apache.iotdb.db.constant.TestConstant;
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
-import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.Statement;
-
-import static org.junit.Assert.fail;
-
-/**
- * Notice that, all test begins with "IoTDB" is integration test. All test which will start the
- * IoTDB server should be defined as integration test.
- */
-@Category({LocalStandaloneTest.class, ClusterTest.class})
-public class IoTDBCloseIT {
-
-  private static TSFileConfig tsFileConfig = TSFileDescriptor.getInstance().getConfig();
-  private static int maxNumberOfPointsInPage;
-  private static int pageSizeInByte;
-  private static int groupSizeInByte;
-
-  @BeforeClass
-  public static void setUp() throws Exception {
-    // use small page setting
-    // origin value
-    maxNumberOfPointsInPage = tsFileConfig.getMaxNumberOfPointsInPage();
-    pageSizeInByte = tsFileConfig.getPageSizeInByte();
-    groupSizeInByte = tsFileConfig.getGroupSizeInByte();
-
-    // new value
-    ConfigFactory.getConfig()
-        .setMaxNumberOfPointsInPage(1000)
-        .setPageSizeInByte(1024 * 150)
-        .setGroupSizeInByte(1024 * 1000)
-        .setMemtableSizeThreshold(1024 * 1000);
-
-    EnvFactory.getEnv().initBeforeClass();
-
-    insertData();
-  }
-
-  @AfterClass
-  public static void tearDown() throws Exception {
-    ConfigFactory.getConfig()
-        .setMaxNumberOfPointsInPage(maxNumberOfPointsInPage)
-        .setPageSizeInByte(pageSizeInByte)
-        .setGroupSizeInByte(groupSizeInByte)
-        .setMemtableSizeThreshold(groupSizeInByte);
-    EnvFactory.getEnv().cleanAfterClass();
-  }
-
-  private static void insertData() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      for (String sql : TestConstant.createSql) {
-        statement.execute(sql);
-      }
-
-      statement.execute("CREATE DATABASE root.fans");
-      statement.execute("CREATE TIMESERIES root.fans.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE");
-      statement.execute("CREATE TIMESERIES root.fans.d0.s1 WITH DATATYPE=INT64, ENCODING=RLE");
-
-      for (int time = 1; time < 10; time++) {
-
-        String sql =
-            String.format("insert into root.fans.d0(timestamp,s0) values(%s,%s)", time, time % 10);
-        statement.execute(sql);
-        sql = String.format("insert into root.fans.d0(timestamp,s1) values(%s,%s)", time, time % 5);
-        statement.execute(sql);
-      }
-
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  // one statement close shouldn't affect other statements in that connection
-  @Test
-  public void statementCloseTest() {
-    String[] retArray =
-        new String[] {
-          "1,1,1", "2,2,2", "3,3,3", "4,4,4", "5,5,0", "6,6,1", "7,7,2", "8,8,3", "9,9,4"
-        };
-
-    String selectSql = "select * from root.**";
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement1 = connection.createStatement();
-        Statement statement2 = connection.createStatement()) {
-
-      statement1.setFetchSize(10);
-      boolean hasResultSet1 = statement1.execute(selectSql);
-      Assert.assertTrue(hasResultSet1);
-      try (ResultSet resultSet1 = statement1.getResultSet()) {
-        int cnt1 = 0;
-        while (resultSet1.next() && cnt1 < 5) {
-          StringBuilder builder = new StringBuilder();
-          builder
-              .append(resultSet1.getString(TestConstant.TIMESTAMP_STR))
-              .append(",")
-              .append(resultSet1.getString("root.fans.d0.s0"))
-              .append(",")
-              .append(resultSet1.getString("root.fans.d0.s1"));
-          Assert.assertEquals(retArray[cnt1], builder.toString());
-          cnt1++;
-        }
-
-        statement2.setFetchSize(10);
-        boolean hasResultSet2 = statement2.execute(selectSql);
-        Assert.assertTrue(hasResultSet2);
-        try (ResultSet resultSet2 = statement2.getResultSet()) {
-          int cnt2 = 0;
-          while (resultSet2.next()) {
-            StringBuilder builder = new StringBuilder();
-            builder
-                .append(resultSet2.getString(TestConstant.TIMESTAMP_STR))
-                .append(",")
-                .append(resultSet2.getString("root.fans.d0.s0"))
-                .append(",")
-                .append(resultSet2.getString("root.fans.d0.s1"));
-            Assert.assertEquals(retArray[cnt2], builder.toString());
-            cnt2++;
-          }
-          Assert.assertEquals(9, cnt2);
-        }
-
-        // manually close the statement2 and this operation shouldn't affect the statement1
-        statement2.close();
-        Assert.assertTrue(statement2.isClosed());
-        Assert.assertFalse(statement1.isClosed());
-
-        // use do-while instead of while because in the previous while loop, we have executed the
-        // next function,
-        // and the cursor has been moved to the next position, so we should fetch that value first.
-        do {
-          StringBuilder builder = new StringBuilder();
-          builder
-              .append(resultSet1.getString(TestConstant.TIMESTAMP_STR))
-              .append(",")
-              .append(resultSet1.getString("root.fans.d0.s0"))
-              .append(",")
-              .append(resultSet1.getString("root.fans.d0.s1"));
-          Assert.assertEquals(retArray[cnt1], builder.toString());
-          cnt1++;
-        } while (resultSet1.next());
-        // Although the statement2 has the same sql as statement1, they shouldn't affect each other.
-        // So the statement1's ResultSet should also have 9 rows in total.
-        Assert.assertEquals(9, cnt1);
-        statement1.close();
-        Assert.assertTrue(statement1.isClosed());
-      }
-
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCompactionIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCompactionIT.java
deleted file mode 100644
index 7d9d5db7490..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCompactionIT.java
+++ /dev/null
@@ -1,338 +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.integration;
-
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.engine.compaction.schedule.CompactionTaskManager;
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class, ClusterTest.class})
-public class IoTDBCompactionIT {
-
-  private static final Logger logger = LoggerFactory.getLogger(IoTDBCompactionIT.class);
-  private long prevPartitionInterval;
-
-  @Before
-  public void setUp() throws Exception {
-    prevPartitionInterval = IoTDBDescriptor.getInstance().getConfig().getTimePartitionInterval();
-    ConfigFactory.getConfig().setPartitionInterval(1);
-    EnvFactory.getEnv().initBeforeTest();
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    EnvFactory.getEnv().cleanAfterTest();
-    ConfigFactory.getConfig().setPartitionInterval(prevPartitionInterval);
-  }
-
-  @Test
-  public void testOverlap() throws SQLException {
-    logger.info("test...");
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.mergeTest");
-      try {
-        statement.execute("CREATE TIMESERIES root.mergeTest.s1 WITH DATATYPE=INT64,ENCODING=PLAIN");
-      } catch (SQLException e) {
-        // ignore
-      }
-
-      statement.execute(
-          String.format("INSERT INTO root.mergeTest(timestamp,s1) VALUES (%d,%d)", 1, 1));
-      statement.execute(
-          String.format("INSERT INTO root.mergeTest(timestamp,s1) VALUES (%d,%d)", 2, 2));
-      statement.execute("FLUSH");
-      statement.execute(
-          String.format("INSERT INTO root.mergeTest(timestamp,s1) VALUES (%d,%d)", 5, 5));
-      statement.execute(
-          String.format("INSERT INTO root.mergeTest(timestamp,s1) VALUES (%d,%d)", 6, 6));
-      statement.execute("FLUSH");
-      statement.execute(
-          String.format("INSERT INTO root.mergeTest(timestamp,s1) VALUES (%d,%d)", 2, 3));
-      statement.execute(
-          String.format("INSERT INTO root.mergeTest(timestamp,s1) VALUES (%d,%d)", 3, 3));
-      statement.execute("FLUSH");
-
-      try (ResultSet resultSet = statement.executeQuery("SELECT * FROM root.mergeTest")) {
-        int cnt = 0;
-        while (resultSet.next()) {
-          long time = resultSet.getLong("Time");
-          long s1 = resultSet.getLong("root.mergeTest.s1");
-          if (time == 2) {
-            assertEquals(3, s1);
-          } else {
-            assertEquals(time, s1);
-          }
-          cnt++;
-        }
-        assertEquals(5, cnt);
-      }
-    }
-  }
-
-  @Test
-  public void test() throws SQLException {
-    logger.info("test...");
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.mergeTest");
-      for (int i = 1; i <= 3; i++) {
-        try {
-          statement.execute(
-              "CREATE TIMESERIES root.mergeTest.s"
-                  + i
-                  + " WITH DATATYPE=INT64,"
-                  + "ENCODING=PLAIN");
-        } catch (SQLException e) {
-          // ignore
-        }
-      }
-
-      for (int i = 0; i < 10; i++) {
-        logger.info("Running the {} round merge", i);
-        for (int j = i * 10 + 1; j <= (i + 1) * 10; j++) {
-          statement.addBatch(
-              String.format(
-                  "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                  j, j + 1, j + 2, j + 3));
-        }
-        statement.executeBatch();
-        statement.execute("FLUSH");
-        for (int j = i * 10 + 1; j <= (i + 1) * 10; j++) {
-          statement.addBatch(
-              String.format(
-                  "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                  j, j + 10, j + 20, j + 30));
-        }
-        statement.executeBatch();
-        statement.execute("FLUSH");
-        try {
-          Thread.sleep(1000);
-        } catch (InterruptedException e) {
-          e.printStackTrace();
-        }
-
-        int cnt;
-        try (ResultSet resultSet = statement.executeQuery("SELECT * FROM root.mergeTest")) {
-          cnt = 0;
-          while (resultSet.next()) {
-            long time = resultSet.getLong("Time");
-            long s1 = resultSet.getLong("root.mergeTest.s1");
-            long s2 = resultSet.getLong("root.mergeTest.s2");
-            long s3 = resultSet.getLong("root.mergeTest.s3");
-            assertEquals(time + 10, s1);
-            assertEquals(time + 20, s2);
-            assertEquals(time + 30, s3);
-            cnt++;
-          }
-        }
-        assertEquals((i + 1) * 10, cnt);
-      }
-    }
-  }
-
-  @Test
-  public void testInvertedOrder() {
-    logger.info("testInvertedOrder...");
-    // case: seq data and unseq data are written in reverted order
-    // e.g.: write 1. seq [10, 20), 2. seq [20, 30), 3. unseq [20, 30), 4. unseq [10, 20)
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.mergeTest");
-      for (int i = 1; i <= 3; i++) {
-        try {
-          statement.execute(
-              "CREATE TIMESERIES root.mergeTest.s"
-                  + i
-                  + " WITH DATATYPE=INT64,"
-                  + "ENCODING=PLAIN");
-        } catch (SQLException e) {
-          // ignore
-        }
-      }
-
-      for (int j = 10; j < 20; j++) {
-        statement.addBatch(
-            String.format(
-                "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                j, j + 1, j + 2, j + 3));
-      }
-      statement.executeBatch();
-      statement.execute("FLUSH");
-      for (int j = 20; j < 30; j++) {
-        statement.addBatch(
-            String.format(
-                "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                j, j + 1, j + 2, j + 3));
-      }
-      statement.executeBatch();
-      statement.execute("FLUSH");
-
-      for (int j = 20; j < 30; j++) {
-        statement.addBatch(
-            String.format(
-                "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                j, j + 10, j + 20, j + 30));
-      }
-      statement.executeBatch();
-      statement.execute("FLUSH");
-      for (int j = 10; j < 20; j++) {
-        statement.addBatch(
-            String.format(
-                "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                j, j + 10, j + 20, j + 30));
-      }
-      statement.executeBatch();
-      statement.execute("FLUSH");
-
-      statement.execute("MERGE");
-      try {
-        Thread.sleep(2000);
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
-
-      int cnt;
-      try (ResultSet resultSet = statement.executeQuery("SELECT * FROM root.mergeTest")) {
-        cnt = 0;
-        while (resultSet.next()) {
-          long time = resultSet.getLong("Time");
-          long s1 = resultSet.getLong("root.mergeTest.s1");
-          long s2 = resultSet.getLong("root.mergeTest.s2");
-          long s3 = resultSet.getLong("root.mergeTest.s3");
-          assertEquals(cnt + 10, time);
-          assertEquals(time + 10, s1);
-          assertEquals(time + 20, s2);
-          assertEquals(time + 30, s3);
-          cnt++;
-        }
-      }
-      assertEquals(20, cnt);
-    } catch (SQLException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void testCrossPartition() throws SQLException {
-    logger.info("testCrossPartition...");
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.mergeTest");
-      for (int i = 1; i <= 3; i++) {
-        try {
-          statement.execute(
-              "CREATE TIMESERIES root.mergeTest.s"
-                  + i
-                  + " WITH DATATYPE=INT64,"
-                  + "ENCODING=PLAIN");
-        } catch (SQLException e) {
-          // ignore
-        }
-      }
-
-      // file in partition
-      for (int k = 0; k < 7; k++) {
-        // partition num
-        for (int i = 0; i < 10; i++) {
-          // sequence files
-          for (int j = i * 1000 + 300 + k * 100; j <= i * 1000 + 399 + k * 100; j++) {
-            statement.execute(
-                String.format(
-                    "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                    j, j + 1, j + 2, j + 3));
-          }
-          statement.execute("FLUSH");
-          // unsequence files
-          for (int j = i * 1000 + k * 100; j <= i * 1000 + 99 + k * 100; j++) {
-            statement.execute(
-                String.format(
-                    "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                    j, j + 10, j + 20, j + 30));
-          }
-          statement.execute("FLUSH");
-        }
-      }
-
-      statement.execute("MERGE");
-      try {
-        Thread.sleep(1000);
-      } catch (InterruptedException e) {
-
-      }
-
-      long totalTime = 0;
-      while (CompactionTaskManager.currentTaskNum.get() > 0) {
-        // wait
-        try {
-          Thread.sleep(1000);
-          totalTime += 1000;
-          if (totalTime > 240_000) {
-            fail();
-            break;
-          }
-        } catch (InterruptedException e) {
-
-        }
-      }
-      int cnt;
-      try (ResultSet resultSet = statement.executeQuery("SELECT * FROM root.mergeTest")) {
-        cnt = 0;
-        while (resultSet.next()) {
-          long time = resultSet.getLong("Time");
-          long s1 = resultSet.getLong("root.mergeTest.s1");
-          long s2 = resultSet.getLong("root.mergeTest.s2");
-          long s3 = resultSet.getLong("root.mergeTest.s3");
-          assertEquals(cnt, time);
-          if (time % 1000 < 700) {
-            assertEquals(time + 10, s1);
-            assertEquals(time + 20, s2);
-            assertEquals(time + 30, s3);
-          } else {
-            assertEquals(time + 1, s1);
-            assertEquals(time + 2, s2);
-            assertEquals(time + 3, s3);
-          }
-          cnt++;
-        }
-      }
-      assertEquals(10000, cnt);
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCompactionWithIDTableIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCompactionWithIDTableIT.java
deleted file mode 100644
index ba62d256c03..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCompactionWithIDTableIT.java
+++ /dev/null
@@ -1,352 +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.integration;
-
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.engine.compaction.schedule.CompactionTaskManager;
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class, ClusterTest.class})
-public class IoTDBCompactionWithIDTableIT {
-
-  private static final Logger logger = LoggerFactory.getLogger(IoTDBCompactionIT.class);
-  private long prevPartitionInterval;
-
-  private static boolean isEnableIDTable = false;
-
-  private static String originalDeviceIDTransformationMethod = null;
-
-  @Before
-  public void setUp() throws Exception {
-    prevPartitionInterval = IoTDBDescriptor.getInstance().getConfig().getTimePartitionInterval();
-    ConfigFactory.getConfig().setPartitionInterval(1);
-    isEnableIDTable = IoTDBDescriptor.getInstance().getConfig().isEnableIDTable();
-    originalDeviceIDTransformationMethod =
-        IoTDBDescriptor.getInstance().getConfig().getDeviceIDTransformationMethod();
-
-    ConfigFactory.getConfig().setEnableIDTable(true);
-    ConfigFactory.getConfig().setDeviceIDTransformationMethod("SHA256");
-
-    EnvFactory.getEnv().initBeforeTest();
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    ConfigFactory.getConfig().setEnableIDTable(isEnableIDTable);
-    ConfigFactory.getConfig().setDeviceIDTransformationMethod(originalDeviceIDTransformationMethod);
-
-    EnvFactory.getEnv().cleanAfterTest();
-    ConfigFactory.getConfig().setPartitionInterval(prevPartitionInterval);
-  }
-
-  @Test
-  public void testOverlap() throws SQLException {
-    logger.info("test...");
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.mergeTest");
-      try {
-        statement.execute("CREATE TIMESERIES root.mergeTest.s1 WITH DATATYPE=INT64,ENCODING=PLAIN");
-      } catch (SQLException e) {
-        // ignore
-      }
-
-      statement.execute(
-          String.format("INSERT INTO root.mergeTest(timestamp,s1) VALUES (%d,%d)", 1, 1));
-      statement.execute(
-          String.format("INSERT INTO root.mergeTest(timestamp,s1) VALUES (%d,%d)", 2, 2));
-      statement.execute("FLUSH");
-      statement.execute(
-          String.format("INSERT INTO root.mergeTest(timestamp,s1) VALUES (%d,%d)", 5, 5));
-      statement.execute(
-          String.format("INSERT INTO root.mergeTest(timestamp,s1) VALUES (%d,%d)", 6, 6));
-      statement.execute("FLUSH");
-      statement.execute(
-          String.format("INSERT INTO root.mergeTest(timestamp,s1) VALUES (%d,%d)", 2, 3));
-      statement.execute(
-          String.format("INSERT INTO root.mergeTest(timestamp,s1) VALUES (%d,%d)", 3, 3));
-      statement.execute("FLUSH");
-
-      try (ResultSet resultSet = statement.executeQuery("SELECT * FROM root.mergeTest")) {
-        int cnt = 0;
-        while (resultSet.next()) {
-          long time = resultSet.getLong("Time");
-          long s1 = resultSet.getLong("root.mergeTest.s1");
-          if (time == 2) {
-            assertEquals(3, s1);
-          } else {
-            assertEquals(time, s1);
-          }
-          cnt++;
-        }
-        assertEquals(5, cnt);
-      }
-    }
-  }
-
-  @Test
-  public void test() throws SQLException {
-    logger.info("test...");
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.mergeTest");
-      for (int i = 1; i <= 3; i++) {
-        try {
-          statement.execute(
-              "CREATE TIMESERIES root.mergeTest.s"
-                  + i
-                  + " WITH DATATYPE=INT64,"
-                  + "ENCODING=PLAIN");
-        } catch (SQLException e) {
-          // ignore
-        }
-      }
-
-      for (int i = 0; i < 10; i++) {
-        logger.info("Running the {} round merge", i);
-        for (int j = i * 10 + 1; j <= (i + 1) * 10; j++) {
-          statement.addBatch(
-              String.format(
-                  "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                  j, j + 1, j + 2, j + 3));
-        }
-        statement.executeBatch();
-        statement.execute("FLUSH");
-        for (int j = i * 10 + 1; j <= (i + 1) * 10; j++) {
-          statement.addBatch(
-              String.format(
-                  "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                  j, j + 10, j + 20, j + 30));
-        }
-        statement.executeBatch();
-        statement.execute("FLUSH");
-        try {
-          Thread.sleep(1000);
-        } catch (InterruptedException e) {
-          e.printStackTrace();
-        }
-
-        int cnt;
-        try (ResultSet resultSet = statement.executeQuery("SELECT * FROM root.mergeTest")) {
-          cnt = 0;
-          while (resultSet.next()) {
-            long time = resultSet.getLong("Time");
-            long s1 = resultSet.getLong("root.mergeTest.s1");
-            long s2 = resultSet.getLong("root.mergeTest.s2");
-            long s3 = resultSet.getLong("root.mergeTest.s3");
-            assertEquals(time + 10, s1);
-            assertEquals(time + 20, s2);
-            assertEquals(time + 30, s3);
-            cnt++;
-          }
-        }
-        assertEquals((i + 1) * 10, cnt);
-      }
-    }
-  }
-
-  @Test
-  public void testInvertedOrder() {
-    logger.info("testInvertedOrder...");
-    // case: seq data and unseq data are written in reverted order
-    // e.g.: write 1. seq [10, 20), 2. seq [20, 30), 3. unseq [20, 30), 4. unseq [10, 20)
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.mergeTest");
-      for (int i = 1; i <= 3; i++) {
-        try {
-          statement.execute(
-              "CREATE TIMESERIES root.mergeTest.s"
-                  + i
-                  + " WITH DATATYPE=INT64,"
-                  + "ENCODING=PLAIN");
-        } catch (SQLException e) {
-          // ignore
-        }
-      }
-
-      for (int j = 10; j < 20; j++) {
-        statement.addBatch(
-            String.format(
-                "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                j, j + 1, j + 2, j + 3));
-      }
-      statement.executeBatch();
-      statement.execute("FLUSH");
-      for (int j = 20; j < 30; j++) {
-        statement.addBatch(
-            String.format(
-                "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                j, j + 1, j + 2, j + 3));
-      }
-      statement.executeBatch();
-      statement.execute("FLUSH");
-
-      for (int j = 20; j < 30; j++) {
-        statement.addBatch(
-            String.format(
-                "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                j, j + 10, j + 20, j + 30));
-      }
-      statement.executeBatch();
-      statement.execute("FLUSH");
-      for (int j = 10; j < 20; j++) {
-        statement.addBatch(
-            String.format(
-                "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                j, j + 10, j + 20, j + 30));
-      }
-      statement.executeBatch();
-      statement.execute("FLUSH");
-
-      statement.execute("MERGE");
-      try {
-        Thread.sleep(2000);
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
-
-      int cnt;
-      try (ResultSet resultSet = statement.executeQuery("SELECT * FROM root.mergeTest")) {
-        cnt = 0;
-        while (resultSet.next()) {
-          long time = resultSet.getLong("Time");
-          long s1 = resultSet.getLong("root.mergeTest.s1");
-          long s2 = resultSet.getLong("root.mergeTest.s2");
-          long s3 = resultSet.getLong("root.mergeTest.s3");
-          assertEquals(cnt + 10, time);
-          assertEquals(time + 10, s1);
-          assertEquals(time + 20, s2);
-          assertEquals(time + 30, s3);
-          cnt++;
-        }
-      }
-      assertEquals(20, cnt);
-    } catch (SQLException e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void testCrossPartition() throws SQLException {
-    logger.info("testCrossPartition...");
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.mergeTest");
-      for (int i = 1; i <= 3; i++) {
-        try {
-          statement.execute(
-              "CREATE TIMESERIES root.mergeTest.s"
-                  + i
-                  + " WITH DATATYPE=INT64,"
-                  + "ENCODING=PLAIN");
-        } catch (SQLException e) {
-          // ignore
-        }
-      }
-
-      // file in partition
-      for (int k = 0; k < 7; k++) {
-        // partition num
-        for (int i = 0; i < 10; i++) {
-          // sequence files
-          for (int j = i * 1000 + 300 + k * 100; j <= i * 1000 + 399 + k * 100; j++) {
-            statement.execute(
-                String.format(
-                    "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                    j, j + 1, j + 2, j + 3));
-          }
-          statement.execute("FLUSH");
-          // unsequence files
-          for (int j = i * 1000 + k * 100; j <= i * 1000 + 99 + k * 100; j++) {
-            statement.execute(
-                String.format(
-                    "INSERT INTO root.mergeTest(timestamp,s1,s2,s3) VALUES (%d,%d," + "%d,%d)",
-                    j, j + 10, j + 20, j + 30));
-          }
-          statement.execute("FLUSH");
-        }
-      }
-
-      statement.execute("MERGE");
-      try {
-        Thread.sleep(1000);
-      } catch (InterruptedException e) {
-
-      }
-
-      long totalTime = 0;
-      while (CompactionTaskManager.currentTaskNum.get() > 0) {
-        // wait
-        try {
-          Thread.sleep(1000);
-          totalTime += 1000;
-          if (totalTime > 240_000) {
-            fail();
-            break;
-          }
-        } catch (InterruptedException e) {
-
-        }
-      }
-      int cnt;
-      try (ResultSet resultSet = statement.executeQuery("SELECT * FROM root.mergeTest")) {
-        cnt = 0;
-        while (resultSet.next()) {
-          long time = resultSet.getLong("Time");
-          long s1 = resultSet.getLong("root.mergeTest.s1");
-          long s2 = resultSet.getLong("root.mergeTest.s2");
-          long s3 = resultSet.getLong("root.mergeTest.s3");
-          assertEquals(cnt, time);
-          if (time % 1000 < 700) {
-            assertEquals(time + 10, s1);
-            assertEquals(time + 20, s2);
-            assertEquals(time + 30, s3);
-          } else {
-            assertEquals(time + 1, s1);
-            assertEquals(time + 2, s2);
-            assertEquals(time + 3, s3);
-          }
-          cnt++;
-        }
-      }
-      assertEquals(10000, cnt);
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCompressTypeIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCompressTypeIT.java
deleted file mode 100644
index 07e347a9437..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBCompressTypeIT.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.integration;
-
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.Statement;
-
-@Category({LocalStandaloneTest.class})
-public class IoTDBCompressTypeIT {
-  @Before
-  public void setUp() throws Exception {
-    EnvFactory.getEnv().initBeforeTest();
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    EnvFactory.getEnv().cleanAfterTest();
-  }
-
-  @Test
-  public void testGZIPCompression() throws Exception {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      statement.execute("CREATE TIMESERIES root.ln.wf01.wt01.name WITH DATATYPE=TEXT");
-      statement.execute(
-          "CREATE TIMESERIES root.ln.wf01.wt01.age WITH DATATYPE=INT32, ENCODING=RLE, COMPRESSOR = GZIP");
-
-      statement.execute(
-          "insert into root.ln.wf01.wt01(timestamp,name,age) values(1000,'zhang',10)");
-      statement.execute("flush");
-
-      ResultSet r1 = statement.executeQuery("select * from root.ln.wf01.wt01");
-      r1.next();
-
-      Assert.assertEquals("zhang", r1.getString(2));
-      Assert.assertEquals(10, r1.getInt(3));
-
-      statement.execute("insert into root.ln.wf01.wt01(timestamp,name,age) values(2000,'wang',20)");
-      statement.execute("flush");
-      statement.execute("insert into root.ln.wf01.wt01(timestamp,name,age) values(3000,'li',30)");
-
-      ResultSet r2 = statement.executeQuery("select * from root.ln.wf01.wt01 where name = 'wang'");
-      r2.next();
-      Assert.assertEquals(20, r2.getInt(3));
-
-      ResultSet r3 = statement.executeQuery("select * from root.ln.wf01.wt01 where name = 'li'");
-      r3.next();
-      Assert.assertEquals(30, r3.getInt(3));
-
-      ResultSet r4 = statement.executeQuery("select sum(age) from root.ln.wf01.wt01");
-      r4.next();
-      double d = r4.getDouble(1);
-
-      Assert.assertTrue(60.0 == d);
-
-      // now we try to insert more values
-      for (int i = 1; i <= 1000; i++) {
-        String time = String.valueOf(i * 100);
-        String values = String.valueOf(i * 10);
-        statement.execute(
-            String.format(
-                "insert into root.ln.wf01.wt01(timestamp,name,age) values(%s,'wang', %s)",
-                time, values));
-      }
-
-      statement.execute("flush");
-      ResultSet r5 =
-          statement.executeQuery("select * from root.ln.wf01.wt01 where timestamp = 100000");
-      r5.next();
-      Assert.assertEquals(10000, r5.getInt(3));
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBContinuousQueryIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBContinuousQueryIT.java
deleted file mode 100644
index 4dbb02d3e48..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBContinuousQueryIT.java
+++ /dev/null
@@ -1,544 +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.integration;
-
-import org.apache.iotdb.commons.exception.IllegalPathException;
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.jdbc.Config;
-import org.apache.iotdb.tsfile.utils.Pair;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class})
-public class IoTDBContinuousQueryIT {
-
-  private static final int EXPECTED_TEST_SIZE = 3;
-
-  private Statement statement;
-  private Connection connection;
-  private volatile Exception exception = null;
-
-  private PartialPath[] partialPathArray;
-
-  private final Thread dataGenerator =
-      new Thread() {
-        @Override
-        public void run() {
-          try (Connection connection =
-                  DriverManager.getConnection(
-                      Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
-              Statement statement = connection.createStatement()) {
-            do {
-              for (PartialPath partialPath : partialPathArray) {
-                statement.execute(
-                    String.format(
-                        "insert into %s(timestamp, %s) values(now(), %.3f)",
-                        partialPath.getDevicePath(),
-                        partialPath.getMeasurement(),
-                        200 * Math.random()));
-              }
-            } while (!isInterrupted());
-          } catch (Exception e) {
-            exception = e;
-          }
-        }
-      };
-
-  private void startDataGenerator() {
-    dataGenerator.start();
-  }
-
-  private void stopDataGenerator() throws InterruptedException {
-    dataGenerator.interrupt();
-    dataGenerator.join();
-  }
-
-  private void createTimeSeries(String[] timeSeriesArray) throws SQLException {
-    initPartialPaths(timeSeriesArray);
-    for (PartialPath partialPath : partialPathArray) {
-      statement.execute(
-          String.format(
-              "create timeseries %s with datatype=FLOAT,encoding=RLE", partialPath.getFullPath()));
-    }
-  }
-
-  private void initPartialPaths(String[] timeSeriesArray) {
-    partialPathArray = new PartialPath[timeSeriesArray.length];
-    for (int i = 0; i < timeSeriesArray.length; ++i) {
-      try {
-        partialPathArray[i] = new PartialPath(timeSeriesArray[i]);
-      } catch (IllegalPathException e) {
-        fail(e.getMessage());
-      }
-    }
-  }
-
-  @Before
-  public void setUp() throws Exception {
-    EnvironmentUtils.envSetUp();
-    Class.forName(Config.JDBC_DRIVER_NAME);
-    connection = DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
-    statement = connection.createStatement();
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    statement.close();
-    connection.close();
-    EnvironmentUtils.cleanEnv();
-  }
-
-  @Test
-  public void testCreateAndDropContinuousQuery() throws Exception {
-    createTimeSeries(
-        new String[] {
-          "root.ln.wf01.wt01.ws01.temperature",
-          "root.ln.wf01.wt01.ws02.temperature",
-          "root.ln.wf01.wt02.ws01.temperature",
-          "root.ln.wf01.wt02.ws02.temperature",
-          "root.ln.wf02.wt01.ws01.temperature",
-          "root.ln.wf02.wt01.ws02.temperature",
-          "root.ln.wf02.wt02.ws01.temperature",
-          "root.ln.wf02.wt02.ws02.temperature"
-        });
-
-    statement.execute(
-        "CREATE CONTINUOUS QUERY cq1 "
-            + "BEGIN SELECT max_value(temperature) INTO temperature_max FROM root.ln.*.*.* "
-            + "GROUP BY time(1s) END");
-    statement.execute(
-        "CREATE CONTINUOUS QUERY cq2 "
-            + "BEGIN SELECT avg(temperature) INTO temperature_cnt FROM root.ln.wf01.*.* "
-            + " GROUP BY time(1s), level=3 END");
-    statement.execute(
-        "CREATE CONTINUOUS QUERY cq3 "
-            + "RESAMPLE EVERY 2s FOR 2s "
-            + "BEGIN SELECT min_value(temperature) INTO temperature_avg FROM root.ln.wf01.*.* "
-            + "GROUP BY time(1s), level=2 END");
-
-    statement.execute("DROP CONTINUOUS QUERY cq1");
-    statement.execute("DROP CONTINUOUS QUERY cq2");
-
-    checkShowContinuousQueriesResult(new String[] {"cq3"});
-
-    statement.close();
-    connection.close();
-    EnvironmentUtils.shutdownDaemon();
-    EnvironmentUtils.stopDaemon();
-    setUp();
-
-    checkShowContinuousQueriesResult(new String[] {"cq3"});
-
-    try {
-      statement.execute(
-          "CREATE CONTINUOUS QUERY cq3 "
-              + "RESAMPLE EVERY 2s FOR 2s "
-              + "BEGIN SELECT avg(temperature) INTO temperature_avg FROM root.ln.wf01.*.* "
-              + "GROUP BY time(1s), level=2 END");
-    } catch (Exception e) {
-      assertTrue(e.getMessage().contains("already exists"));
-    }
-
-    try {
-      statement.execute("DROP CONTINUOUS QUERY cq1");
-    } catch (Exception e) {
-      assertTrue(e.getMessage().contains("not exist"));
-    }
-
-    statement.execute(
-        "CREATE CONTINUOUS QUERY cq1 "
-            + "BEGIN SELECT sum(temperature) INTO temperature_max FROM root.ln.*.*.* "
-            + "GROUP BY time(1s) END");
-    statement.execute(
-        "CREATE CONTINUOUS QUERY cq2 "
-            + "BEGIN SELECT avg(temperature) INTO temperature_cnt FROM root.ln.wf01.*.* "
-            + " GROUP BY time(1s), level=3 END");
-
-    checkShowContinuousQueriesResult(new String[] {"cq3", "cq1", "cq2"});
-
-    statement.execute("DROP CONTINUOUS QUERY cq1");
-    statement.execute("DROP CONTINUOUS QUERY cq2");
-    statement.execute("DROP CONTINUOUS QUERY cq3");
-  }
-
-  @Test
-  public void testContinuousQueryResultSeriesWithLevels() throws Exception {
-    createTimeSeries(
-        new String[] {
-          "root.ln.wf01.wt01.ws01.temperature",
-          "root.ln.wf01.wt01.ws02.temperature",
-          "root.ln.wf01.wt02.ws01.temperature",
-          "root.ln.wf01.wt02.ws02.temperature",
-          "root.ln.wf02.wt01.ws01.temperature",
-          "root.ln.wf02.wt01.ws02.temperature",
-          "root.ln.wf02.wt02.ws01.temperature",
-          "root.ln.wf02.wt02.ws02.temperature"
-        });
-    startDataGenerator();
-
-    Thread.sleep(500);
-
-    statement.execute(
-        "CREATE CONTINUOUS QUERY cq1 "
-            + "BEGIN SELECT count(temperature) INTO temperature_cnt FROM root.ln.*.*.* "
-            + "GROUP BY time(1s), level=1,2 END");
-
-    Thread.sleep(5500);
-
-    checkShowTimeSeriesResult(
-        new String[] {
-          "root.ln.wf01.wt01.ws01.temperature",
-          "root.ln.wf01.wt01.ws02.temperature",
-          "root.ln.wf01.wt02.ws01.temperature",
-          "root.ln.wf01.wt02.ws02.temperature",
-          "root.ln.wf02.wt01.ws01.temperature",
-          "root.ln.wf02.wt01.ws02.temperature",
-          "root.ln.wf02.wt02.ws01.temperature",
-          "root.ln.wf02.wt02.ws02.temperature",
-          "root.ln.wf01.temperature_cnt",
-          "root.ln.wf02.temperature_cnt"
-        });
-
-    statement.execute("DROP CONTINUOUS QUERY cq1");
-
-    stopDataGenerator();
-  }
-
-  public void testContinuousQueryResultSeriesWithLevels1() throws Exception {
-    createTimeSeries(
-        new String[] {
-          "root.ln.wf01.wt01.ws01.`(temperature)`",
-          "root.ln.wf01.wt01.ws02.`(temperature)`",
-          "root.ln.wf01.wt02.ws01.`(temperature)`",
-          "root.ln.wf01.wt02.ws02.`(temperature)`",
-          "root.ln.wf02.wt01.ws01.`(temperature)`",
-          "root.ln.wf02.wt01.ws02.`(temperature)`",
-          "root.ln.wf02.wt02.ws01.`(temperature)`",
-          "root.ln.wf02.wt02.ws02.`(temperature)`"
-        });
-    startDataGenerator();
-
-    Thread.sleep(500);
-
-    statement.execute(
-        "CREATE CONTINUOUS QUERY cq1 "
-            + "BEGIN SELECT count(`(temperature)`) INTO temperature_cnt FROM root.ln.*.*.* "
-            + "GROUP BY time(1s), level=1,2 END");
-
-    Thread.sleep(5500);
-
-    checkShowTimeSeriesResult(
-        new String[] {
-          "root.ln.wf01.wt01.ws01.`(temperature)`",
-          "root.ln.wf01.wt01.ws02.`(temperature)`",
-          "root.ln.wf01.wt02.ws01.`(temperature)`",
-          "root.ln.wf01.wt02.ws02.`(temperature)`",
-          "root.ln.wf02.wt01.ws01.`(temperature)`",
-          "root.ln.wf02.wt01.ws02.`(temperature)`",
-          "root.ln.wf02.wt02.ws01.`(temperature)`",
-          "root.ln.wf02.wt02.ws02.`(temperature)`",
-          "root.ln.wf01.temperature_cnt",
-          "root.ln.wf02.temperature_cnt"
-        });
-
-    statement.execute("DROP CONTINUOUS QUERY cq1");
-
-    stopDataGenerator();
-  }
-
-  @Test
-  public void testContinuousQueryResultSeriesWithDuplicatedTargetPaths() throws Exception {
-    createTimeSeries(
-        new String[] {
-          "root.ln.wf01.ws02.temperature",
-          "root.ln.wf01.ws01.temperature",
-          "root.ln.wf02.wt01.temperature",
-          "root.ln.wf02.wt02.temperature",
-        });
-    startDataGenerator();
-
-    Thread.sleep(500);
-
-    try {
-      statement.execute(
-          "CREATE CONTINUOUS QUERY cq1 "
-              + "BEGIN SELECT avg(temperature) INTO root.target.{2}.{3}.avg FROM root.ln.*.* "
-              + "GROUP BY time(1s) END");
-    } catch (Exception e) {
-      assertTrue(e.getMessage().contains("duplicated"));
-    } finally {
-      stopDataGenerator();
-    }
-  }
-
-  @Test
-  public void testContinuousQueryResultSeriesWithoutLevels1() throws Exception {
-    String[] timeSeriesArray = new String[30];
-    int wsIndex = 1;
-    for (int i = 1; i <= 30; ++i) {
-      timeSeriesArray[i - 1] =
-          "root.ln.wf0" + (i < 15 ? 1 : 2) + ".ws" + wsIndex++ + ".temperature";
-    }
-    createTimeSeries(timeSeriesArray);
-    startDataGenerator();
-
-    Thread.sleep(500);
-
-    statement.execute(
-        "CREATE CONTINUOUS QUERY cq1 "
-            + "BEGIN SELECT avg(temperature) INTO root.target.${2}.${3}_avg FROM root.ln.*.* "
-            + "GROUP BY time(1s) END");
-
-    Thread.sleep(5500);
-
-    checkShowTimeSeriesCount(2 * timeSeriesArray.length);
-
-    statement.execute("DROP CONTINUOUS QUERY cq1");
-
-    stopDataGenerator();
-  }
-
-  @Test
-  public void testContinuousQueryResultSeriesWithoutLevels2() throws Exception {
-    String[] timeSeriesArray = new String[30];
-    int wsIndex = 1;
-    for (int i = 1; i <= 30; ++i) {
-      timeSeriesArray[i - 1] =
-          "root.ln.wf0" + (i < 15 ? 1 : 2) + ".ws" + wsIndex++ + ".temperature";
-    }
-    createTimeSeries(timeSeriesArray);
-    startDataGenerator();
-
-    Thread.sleep(500);
-
-    statement.execute(
-        "CREATE CONTINUOUS QUERY cq1 "
-            + "BEGIN SELECT avg(temperature) INTO root.target.${2}.${3}.avg FROM root.ln.*.* "
-            + "GROUP BY time(1s) END");
-
-    Thread.sleep(5500);
-
-    checkShowTimeSeriesCount(2 * timeSeriesArray.length);
-
-    statement.execute("DROP CONTINUOUS QUERY cq1");
-
-    stopDataGenerator();
-  }
-
-  @Test
-  public void testInterval1000() throws Exception {
-    createTimeSeries(
-        new String[] {
-          "root.ln.wf01.wt01.ws01.temperature",
-          "root.ln.wf01.wt01.ws02.temperature",
-          "root.ln.wf01.wt02.ws01.temperature",
-          "root.ln.wf01.wt02.ws02.temperature",
-          "root.ln.wf02.wt01.ws01.temperature",
-          "root.ln.wf02.wt01.ws02.temperature",
-          "root.ln.wf02.wt02.ws01.temperature",
-          "root.ln.wf02.wt02.ws02.temperature"
-        });
-    startDataGenerator();
-
-    statement.execute(
-        "CREATE CQ cq1 "
-            + "RESAMPLE EVERY 1s FOR 1s "
-            + "BEGIN SELECT avg(temperature) INTO temperature_avg FROM root.ln.wf01.*.* "
-            + "GROUP BY time(1s), level=1,2 END");
-    checkCQExecutionResult(1000);
-    statement.execute("DROP CQ cq1");
-
-    stopDataGenerator();
-  }
-
-  @Test
-  public void testInterval2000() throws Exception {
-    createTimeSeries(
-        new String[] {
-          "root.ln.wf01.wt01.ws01.temperature",
-          "root.ln.wf01.wt01.ws02.temperature",
-          "root.ln.wf01.wt02.ws01.temperature",
-          "root.ln.wf01.wt02.ws02.temperature",
-          "root.ln.wf02.wt01.ws01.temperature",
-          "root.ln.wf02.wt01.ws02.temperature",
-          "root.ln.wf02.wt02.ws01.temperature",
-          "root.ln.wf02.wt02.ws02.temperature"
-        });
-    startDataGenerator();
-
-    statement.execute(
-        "CREATE CONTINUOUS QUERY cq1 "
-            + "RESAMPLE EVERY 2s "
-            + "BEGIN SELECT avg(temperature) INTO temperature_avg FROM root.ln.wf01.*.* "
-            + "GROUP BY time(2s), level=1,2 END");
-    checkCQExecutionResult(2000);
-    statement.execute("DROP CQ cq1");
-
-    stopDataGenerator();
-  }
-
-  @Test
-  public void testInterval3000() throws Exception {
-    createTimeSeries(
-        new String[] {
-          "root.ln.wf01.wt01.ws01.temperature",
-          "root.ln.wf01.wt01.ws02.temperature",
-          "root.ln.wf01.wt02.ws01.temperature",
-          "root.ln.wf01.wt02.ws02.temperature",
-          "root.ln.wf02.wt01.ws01.temperature",
-          "root.ln.wf02.wt01.ws02.temperature",
-          "root.ln.wf02.wt02.ws01.temperature",
-          "root.ln.wf02.wt02.ws02.temperature"
-        });
-    startDataGenerator();
-
-    statement.execute(
-        "CREATE CONTINUOUS QUERY cq1 "
-            + "BEGIN SELECT avg(temperature) INTO temperature_avg FROM root.ln.wf01.*.* "
-            + "GROUP BY time(3s), level=1,2 END");
-    checkCQExecutionResult(3000);
-    statement.execute("DROP CQ cq1");
-
-    stopDataGenerator();
-  }
-
-  private void checkCQExecutionResult(long groupByInterval)
-      throws SQLException, InterruptedException {
-    // IOTDB-1821
-    // ignore the check when the background data generation thread's connection is broken
-    if (exception != null) {
-      return;
-    }
-
-    long waitMillSeconds = 0;
-    List<Pair<Long, Double>> actualResult;
-    do {
-      Thread.sleep(waitMillSeconds);
-      waitMillSeconds += 100;
-
-      statement.execute("select temperature_avg from root.ln.wf01");
-      actualResult = collectQueryResult();
-    } while (actualResult.size() < EXPECTED_TEST_SIZE);
-
-    long actualWindowBegin = actualResult.get(0).left;
-    long actualWindowEnd = actualResult.get(actualResult.size() - 1).left;
-    statement.execute(
-        String.format(
-            "select avg(temperature) from root.ln.wf01.*.* GROUP BY ([%d, %d), %dms), level=1,2 without null all",
-            actualWindowBegin, actualWindowEnd + groupByInterval, groupByInterval));
-    List<Pair<Long, Double>> expectedResult = collectQueryResult();
-
-    assertEquals(expectedResult.size(), actualResult.size());
-    final int size = expectedResult.size();
-    for (int i = 0; i < size; ++i) {
-      Pair<Long, Double> expected = expectedResult.get(i);
-      Pair<Long, Double> actual = actualResult.get(i);
-      assertEquals(expected.left, actual.left);
-      assertEquals(expected.right, actual.right, 10e-6);
-    }
-  }
-
-  private List<Pair<Long, Double>> collectQueryResult() {
-    List<Pair<Long, Double>> result = new ArrayList<>();
-    try (ResultSet resultSet = statement.getResultSet()) {
-      while (resultSet.next()) {
-        String timestamp = resultSet.getString(1);
-        String value = resultSet.getString(2);
-        result.add(new Pair<>(Long.parseLong(timestamp), Double.parseDouble(value)));
-      }
-    } catch (SQLException throwable) {
-      fail(throwable.getMessage());
-    }
-    return result;
-  }
-
-  private void checkShowContinuousQueriesResult(String[] continuousQueryArray) throws SQLException {
-    Assert.assertTrue(statement.execute("show continuous queries"));
-
-    List<String> resultList = new ArrayList<>();
-    try (ResultSet resultSet = statement.getResultSet()) {
-      while (resultSet.next()) {
-        resultList.add(resultSet.getString("cq name"));
-      }
-    }
-    Assert.assertEquals(continuousQueryArray.length, resultList.size());
-
-    List<String> collect =
-        resultList.stream()
-            .sorted(Comparator.comparingInt(e -> e.split("\\.").length))
-            .collect(Collectors.toList());
-
-    for (String s : continuousQueryArray) {
-      Assert.assertTrue(collect.contains(s));
-    }
-  }
-
-  private void checkShowTimeSeriesResult(String[] timeSeriesArray) throws SQLException {
-    Assert.assertTrue(statement.execute("show timeseries"));
-
-    List<String> resultList = new ArrayList<>();
-    try (ResultSet resultSet = statement.getResultSet()) {
-      while (resultSet.next()) {
-        resultList.add(resultSet.getString("timeseries"));
-      }
-    }
-    Assert.assertEquals(timeSeriesArray.length, resultList.size());
-
-    List<String> collect =
-        resultList.stream()
-            .sorted(Comparator.comparingInt(e -> e.split("\\.").length))
-            .collect(Collectors.toList());
-
-    for (String s : timeSeriesArray) {
-      Assert.assertTrue(collect.contains(s));
-    }
-  }
-
-  private void checkShowTimeSeriesCount(int expected) throws SQLException {
-    Assert.assertTrue(statement.execute("show timeseries"));
-    int autual = 0;
-    try (ResultSet resultSet = statement.getResultSet()) {
-      while (resultSet.next()) {
-        ++autual;
-      }
-    }
-    Assert.assertEquals(expected, autual);
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBDaemonIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBDaemonIT.java
deleted file mode 100644
index 001da8c2cc3..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBDaemonIT.java
+++ /dev/null
@@ -1,456 +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.integration;
-
-import org.apache.iotdb.commons.conf.IoTDBConstant;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.itbase.category.RemoteTest;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.Statement;
-
-import static org.apache.iotdb.db.constant.TestConstant.TIMESTAMP_STR;
-import static org.apache.iotdb.db.constant.TestConstant.d0;
-import static org.apache.iotdb.db.constant.TestConstant.d1;
-import static org.apache.iotdb.db.constant.TestConstant.s0;
-import static org.apache.iotdb.db.constant.TestConstant.s1;
-import static org.apache.iotdb.db.constant.TestConstant.s2;
-import static org.apache.iotdb.db.constant.TestConstant.s3;
-import static org.apache.iotdb.db.constant.TestConstant.s4;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-/**
- * Notice that, all test begins with "IoTDB" is integration test. All test which will start the
- * IoTDB server should be defined as integration test.
- */
-@Category({LocalStandaloneTest.class, ClusterTest.class, RemoteTest.class})
-public class IoTDBDaemonIT {
-
-  private static String[] sqls =
-      new String[] {
-        "CREATE DATABASE root.vehicle.d0",
-        "CREATE DATABASE root.vehicle.d1",
-        "CREATE TIMESERIES root.vehicle.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
-        "CREATE TIMESERIES root.vehicle.d0.s1 WITH DATATYPE=INT64, ENCODING=RLE",
-        "CREATE TIMESERIES root.vehicle.d0.s2 WITH DATATYPE=FLOAT, ENCODING=RLE",
-        "CREATE TIMESERIES root.vehicle.d0.s3 WITH DATATYPE=TEXT, ENCODING=PLAIN",
-        "CREATE TIMESERIES root.vehicle.d0.s4 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
-        "CREATE TIMESERIES root.vehicle.d1.s0 WITH DATATYPE=INT32, ENCODING=RLE",
-        "insert into root.vehicle.d0(timestamp,s0) values(1,101)",
-        "insert into root.vehicle.d0(timestamp,s0) values(2,198)",
-        "insert into root.vehicle.d0(timestamp,s0) values(100,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(101,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(102,80)",
-        "insert into root.vehicle.d0(timestamp,s0) values(103,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(104,90)",
-        "insert into root.vehicle.d0(timestamp,s0) values(105,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(106,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(2,10000)",
-        "insert into root.vehicle.d0(timestamp,s0) values(50,10000)",
-        "insert into root.vehicle.d0(timestamp,s0) values(1000,22222)",
-        "insert into root.vehicle.d0(timestamp,s1) values(1,1101)",
-        "insert into root.vehicle.d0(timestamp,s1) values(2,198)",
-        "insert into root.vehicle.d0(timestamp,s1) values(100,199)",
-        "insert into root.vehicle.d0(timestamp,s1) values(101,199)",
-        "insert into root.vehicle.d0(timestamp,s1) values(102,180)",
-        "insert into root.vehicle.d0(timestamp,s1) values(103,199)",
-        "insert into root.vehicle.d0(timestamp,s1) values(104,190)",
-        "insert into root.vehicle.d0(timestamp,s1) values(105,199)",
-        "insert into root.vehicle.d0(timestamp,s1) values(2,40000)",
-        "insert into root.vehicle.d0(timestamp,s1) values(50,50000)",
-        "insert into root.vehicle.d0(timestamp,s1) values(1000,55555)",
-        "insert into root.vehicle.d0(timestamp,s2) values(1000,55555)",
-        "insert into root.vehicle.d0(timestamp,s2) values(2,2.22)",
-        "insert into root.vehicle.d0(timestamp,s2) values(3,3.33)",
-        "insert into root.vehicle.d0(timestamp,s2) values(4,4.44)",
-        "insert into root.vehicle.d0(timestamp,s2) values(102,10.00)",
-        "insert into root.vehicle.d0(timestamp,s2) values(105,11.11)",
-        "insert into root.vehicle.d0(timestamp,s2) values(1000,1000.11)",
-        "insert into root.vehicle.d0(timestamp,s3) values(60,'aaaaa')",
-        "insert into root.vehicle.d0(timestamp,s3) values(70,'bbbbb')",
-        "insert into root.vehicle.d0(timestamp,s3) values(80,'ccccc')",
-        "insert into root.vehicle.d0(timestamp,s3) values(101,'ddddd')",
-        "insert into root.vehicle.d0(timestamp,s3) values(102,'fffff')",
-        "insert into root.vehicle.d1(timestamp,s0) values(1,999)",
-        "insert into root.vehicle.d1(timestamp,s0) values(1000,888)",
-        "insert into root.vehicle.d0(timestamp,s1) values(2000-01-01T08:00:00+08:00, 100)",
-        "insert into root.vehicle.d0(timestamp,s3) values(2000-01-01T08:00:00+08:00, 'good')",
-        "insert into root.vehicle.d0(timestamp,s4) values(100, false)",
-        "insert into root.vehicle.d0(timestamp,s4) values(100, true)",
-      };
-
-  @BeforeClass
-  public static void setUp() throws Exception {
-    EnvFactory.getEnv().initBeforeClass();
-
-    insertData();
-  }
-
-  @AfterClass
-  public static void tearDown() throws Exception {
-
-    EnvFactory.getEnv().cleanAfterClass();
-  }
-
-  private static void insertData() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      for (String sql : sqls) {
-        statement.execute(sql);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-    }
-  }
-
-  @Test
-  public void selectWithDuplicatedColumnsTest1() {
-    String[] retArray =
-        new String[] {
-          "1,101,101,1101,",
-          "2,10000,10000,40000,",
-          "50,10000,10000,50000,",
-          "100,99,99,199,",
-          "101,99,99,199,",
-          "102,80,80,180,",
-          "103,99,99,199,",
-          "104,90,90,190,",
-          "105,99,99,199,",
-          "106,99,99,null,",
-          "1000,22222,22222,55555,",
-          "946684800000,null,null,100,"
-        };
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet = statement.execute("select s0,s0,s1 from root.vehicle.d0");
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
-        StringBuilder header = new StringBuilder();
-        for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
-          header.append(resultSetMetaData.getColumnName(i)).append(",");
-        }
-        assertEquals(
-            "Time,root.vehicle.d0.s0,root.vehicle.d0.s0,root.vehicle.d0.s1,", header.toString());
-
-        int cnt = 0;
-        while (resultSet.next()) {
-          StringBuilder builder = new StringBuilder();
-          for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
-            builder.append(resultSet.getString(i)).append(",");
-          }
-          assertEquals(retArray[cnt], builder.toString());
-          cnt++;
-        }
-        assertEquals(12, cnt);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void selectWithDuplicatedColumnsTest2() {
-    String[] retArray = new String[] {"11,11,42988.0,11,"};
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet =
-          statement.execute("select count(s0),count(s0),sum(s0),count(s1) from root.vehicle.d0");
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
-        StringBuilder header = new StringBuilder();
-        for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
-          header.append(resultSetMetaData.getColumnName(i)).append(",");
-        }
-        assertEquals(
-            "count(root.vehicle.d0.s0),count(root.vehicle.d0.s0),"
-                + "sum(root.vehicle.d0.s0),count(root.vehicle.d0.s1),",
-            header.toString());
-
-        int cnt = 0;
-        while (resultSet.next()) {
-          StringBuilder builder = new StringBuilder();
-          for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
-            builder.append(resultSet.getString(i)).append(",");
-          }
-          assertEquals(retArray[cnt], builder.toString());
-          cnt++;
-        }
-        assertEquals(1, cnt);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void selectAllSQLTest() {
-    String[] retArray =
-        new String[] {
-          "1,101,1101,null,null,999",
-          "2,10000,40000,2.22,null,null",
-          "3,null,null,3.33,null,null",
-          "4,null,null,4.44,null,null",
-          "50,10000,50000,null,null,null",
-          "60,null,null,null,aaaaa,null",
-          "70,null,null,null,bbbbb,null",
-          "80,null,null,null,ccccc,null",
-          "100,99,199,null,null,null",
-          "101,99,199,null,ddddd,null",
-          "102,80,180,10.0,fffff,null",
-          "103,99,199,null,null,null",
-          "104,90,190,null,null,null",
-          "105,99,199,11.11,null,null",
-          "106,99,null,null,null,null",
-          "1000,22222,55555,1000.11,null,888",
-          "946684800000,null,100,null,good,null"
-        };
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet = statement.execute("select * from root.**");
-      Assert.assertTrue(hasResultSet);
-
-      int cnt;
-      try (ResultSet resultSet = statement.getResultSet()) {
-        cnt = 0;
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s0)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s1)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s2)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s3)
-                  + ","
-                  + resultSet.getString(d1 + IoTDBConstant.PATH_SEPARATOR + s0);
-          assertEquals(retArray[cnt], ans);
-          cnt++;
-        }
-        assertEquals(17, cnt);
-      }
-
-      retArray = new String[] {"100,true"};
-      hasResultSet = statement.execute("select s4 from root.vehicle.d0");
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        cnt = 0;
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s4);
-          assertEquals(ans, retArray[cnt]);
-          cnt++;
-        }
-        assertEquals(1, cnt);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void selectWildCardSQLTest() {
-    String[] retArray =
-        new String[] {"2,2.22", "3,3.33", "4,4.44", "102,10.0", "105,11.11", "1000,1000.11"};
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet = statement.execute("select s2 from root.vehicle.*");
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        int cnt = 0;
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s2);
-          assertEquals(ans, retArray[cnt]);
-          cnt++;
-        }
-        assertEquals(6, cnt);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void dnfErrorSQLTest() {
-    String[] retArray =
-        new String[] {
-          "1,101,1101",
-          "2,10000,40000",
-          "50,10000,50000",
-          "100,99,199",
-          "101,99,199",
-          "102,80,180",
-          "103,99,199",
-          "104,90,190",
-          "105,99,199"
-        };
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet =
-          statement.execute(
-              "select s0,s1 from root.vehicle.d0 where time < 106 and (s0 >= 60 or s1 <= 200)");
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        int cnt = 0;
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s0)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s1);
-          assertEquals(retArray[cnt], ans);
-          cnt++;
-        }
-        assertEquals(9, cnt);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void selectAndOperatorTest() {
-    String[] retArray = new String[] {"1000,22222,55555,888"};
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      // TODO select s0,s1 from root.vehicle.d0 where time > 106 and root.vehicle.d1.s0 > 100;
-      boolean hasResultSet =
-          statement.execute(
-              "select d0.s0, d0.s1, d1.s0 from root.vehicle where time > 106 and root.vehicle.d0.s0 > 100");
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        int cnt = 0;
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s0)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s1)
-                  + ","
-                  + resultSet.getString(d1 + IoTDBConstant.PATH_SEPARATOR + s0);
-          assertEquals(ans, retArray[cnt]);
-          cnt++;
-        }
-        assertEquals(1, cnt);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void selectAndOpeCrossTest() {
-    String[] retArray = new String[] {"1000,22222,55555"};
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet =
-          statement.execute(
-              "select s0,s1 from root.vehicle.d0 where time > 106 and root.vehicle.d1.s0 > 100");
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        int cnt = 0;
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s0)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s1);
-          assertEquals(ans, retArray[cnt]);
-          cnt++;
-        }
-        assertEquals(1, cnt);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void selectOneColumnWithFilterTest() {
-    String[] retArray = new String[] {"102,180", "104,190", "946684800000,100"};
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasTextMaxResultSet =
-          statement.execute("select s1 from root.vehicle.d0 where s1 < 199");
-      Assert.assertTrue(hasTextMaxResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        int cnt = 0;
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(d0 + IoTDBConstant.PATH_SEPARATOR + s1);
-          assertEquals(retArray[cnt++], ans);
-        }
-        assertEquals(3, cnt);
-      }
-
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBDisableAlignIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBDisableAlignIT.java
deleted file mode 100644
index ce515a38510..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBDisableAlignIT.java
+++ /dev/null
@@ -1,392 +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.integration;
-
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.itbase.category.RemoteTest;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.Types;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class, ClusterTest.class, RemoteTest.class})
-public class IoTDBDisableAlignIT {
-
-  private static String[] sqls =
-      new String[] {
-        "CREATE DATABASE root.vehicle",
-        "CREATE DATABASE root.other",
-        "CREATE TIMESERIES root.vehicle.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
-        "CREATE TIMESERIES root.vehicle.d0.s1 WITH DATATYPE=INT64, ENCODING=RLE",
-        "CREATE TIMESERIES root.vehicle.d0.s2 WITH DATATYPE=FLOAT, ENCODING=RLE",
-        "CREATE TIMESERIES root.vehicle.d0.s3 WITH DATATYPE=TEXT, ENCODING=PLAIN",
-        "CREATE TIMESERIES root.vehicle.d0.s4 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
-        "CREATE TIMESERIES root.vehicle.d1.s0 WITH DATATYPE=INT32, ENCODING=RLE",
-        "CREATE TIMESERIES root.other.d1.s0 WITH DATATYPE=FLOAT, ENCODING=RLE",
-        "insert into root.vehicle.d0(timestamp,s0) values(1,101)",
-        "insert into root.vehicle.d0(timestamp,s0) values(2,198)",
-        "insert into root.vehicle.d0(timestamp,s0) values(100,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(101,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(102,80)",
-        "insert into root.vehicle.d0(timestamp,s0) values(103,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(104,90)",
-        "insert into root.vehicle.d0(timestamp,s0) values(105,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(106,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(2,10000)",
-        "insert into root.vehicle.d0(timestamp,s0) values(50,10000)",
-        "insert into root.vehicle.d0(timestamp,s0) values(1000,22222)",
-        "insert into root.vehicle.d0(timestamp,s1) values(1,1101)",
-        "insert into root.vehicle.d0(timestamp,s1) values(2,198)",
-        "insert into root.vehicle.d0(timestamp,s1) values(100,199)",
-        "insert into root.vehicle.d0(timestamp,s1) values(101,199)",
-        "insert into root.vehicle.d0(timestamp,s1) values(102,180)",
-        "insert into root.vehicle.d0(timestamp,s1) values(103,199)",
-        "insert into root.vehicle.d0(timestamp,s1) values(104,190)",
-        "insert into root.vehicle.d0(timestamp,s1) values(105,199)",
-        "insert into root.vehicle.d0(timestamp,s1) values(2,40000)",
-        "insert into root.vehicle.d0(timestamp,s1) values(50,50000)",
-        "insert into root.vehicle.d0(timestamp,s1) values(1000,55555)",
-        "insert into root.vehicle.d0(timestamp,s2) values(1000,55555)",
-        "insert into root.vehicle.d0(timestamp,s2) values(2,2.22)",
-        "insert into root.vehicle.d0(timestamp,s2) values(3,3.33)",
-        "insert into root.vehicle.d0(timestamp,s2) values(4,4.44)",
-        "insert into root.vehicle.d0(timestamp,s2) values(102,10.00)",
-        "insert into root.vehicle.d0(timestamp,s2) values(105,11.11)",
-        "insert into root.vehicle.d0(timestamp,s2) values(1000,1000.11)",
-        "insert into root.vehicle.d0(timestamp,s3) values(60,'aaaaa')",
-        "insert into root.vehicle.d0(timestamp,s3) values(70,'bbbbb')",
-        "insert into root.vehicle.d0(timestamp,s3) values(80,'ccccc')",
-        "insert into root.vehicle.d0(timestamp,s3) values(101,'ddddd')",
-        "insert into root.vehicle.d0(timestamp,s3) values(102,'fffff')",
-        "insert into root.vehicle.d1(timestamp,s0) values(1,999)",
-        "insert into root.vehicle.d1(timestamp,s0) values(1000,888)",
-        "insert into root.vehicle.d0(timestamp,s1) values(2000-01-01T08:00:00+08:00, 100)",
-        "insert into root.vehicle.d0(timestamp,s3) values(2000-01-01T08:00:00+08:00, 'good')",
-        "insert into root.vehicle.d0(timestamp,s4) values(100, false)",
-        "insert into root.vehicle.d0(timestamp,s4) values(100, true)",
-        "insert into root.other.d1(timestamp,s0) values(2, 3.14)",
-      };
-
-  @BeforeClass
-  public static void setUp() throws Exception {
-    EnvFactory.getEnv().initBeforeClass();
-    insertData();
-  }
-
-  @AfterClass
-  public static void tearDown() throws Exception {
-    EnvFactory.getEnv().cleanAfterClass();
-  }
-
-  private static void insertData() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      for (String sql : sqls) {
-        statement.execute(sql);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-    }
-  }
-
-  @Test
-  public void selectTest() {
-    String[] retArray =
-        new String[] {
-          "1,101,1,1101,2,2.22,60,aaaaa,100,true,1,999,",
-          "2,10000,2,40000,3,3.33,70,bbbbb,null,null,1000,888,",
-          "50,10000,50,50000,4,4.44,80,ccccc,null,null,null,null,",
-          "100,99,100,199,102,10.0,101,ddddd,null,null,null,null,",
-          "101,99,101,199,105,11.11,102,fffff,null,null,null,null,",
-          "102,80,102,180,1000,1000.11,946684800000,good,null,null,null,null,",
-          "103,99,103,199,null,null,null,null,null,null,null,null,",
-          "104,90,104,190,null,null,null,null,null,null,null,null,",
-          "105,99,105,199,null,null,null,null,null,null,null,null,",
-          "106,99,1000,55555,null,null,null,null,null,null,null,null,",
-          "1000,22222,946684800000,100,null,null,null,null,null,null,null,null,",
-        };
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet = statement.execute("select * from root.vehicle.** disable align");
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
-        List<Integer> actualIndexToExpectedIndexList =
-            checkHeader(
-                resultSetMetaData,
-                "Timeroot.vehicle.d0.s0,root.vehicle.d0.s0,"
-                    + "Timeroot.vehicle.d0.s1,root.vehicle.d0.s1,"
-                    + "Timeroot.vehicle.d0.s2,root.vehicle.d0.s2,"
-                    + "Timeroot.vehicle.d0.s3,root.vehicle.d0.s3,"
-                    + "Timeroot.vehicle.d0.s4,root.vehicle.d0.s4,"
-                    + "Timeroot.vehicle.d1.s0,root.vehicle.d1.s0,",
-                new int[] {
-                  Types.INTEGER,
-                  Types.BIGINT,
-                  Types.FLOAT,
-                  Types.VARCHAR,
-                  Types.BOOLEAN,
-                  Types.INTEGER
-                });
-
-        int cnt = 0;
-        while (resultSet.next()) {
-          String[] expectedStrings = retArray[cnt].split(",");
-          StringBuilder expectedBuilder = new StringBuilder();
-          StringBuilder actualBuilder = new StringBuilder();
-          for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
-            actualBuilder.append(resultSet.getString(i)).append(",");
-            expectedBuilder
-                .append(expectedStrings[actualIndexToExpectedIndexList.get(i - 1)])
-                .append(",");
-          }
-          Assert.assertEquals(expectedBuilder.toString(), actualBuilder.toString());
-          cnt++;
-        }
-        Assert.assertEquals(11, cnt);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void selectWithDuplicatedPathsTest() {
-    String[] retArray =
-        new String[] {
-          "1,101,1,101,1,1101,",
-          "2,10000,2,10000,2,40000,",
-          "50,10000,50,10000,50,50000,",
-          "100,99,100,99,100,199,",
-          "101,99,101,99,101,199,",
-          "102,80,102,80,102,180,",
-          "103,99,103,99,103,199,",
-          "104,90,104,90,104,190,",
-          "105,99,105,99,105,199,",
-          "106,99,106,99,1000,55555,",
-          "1000,22222,1000,22222,946684800000,100,",
-        };
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet =
-          statement.execute("select s0,s0,s1 from root.vehicle.d0 disable align");
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
-        List<Integer> actualIndexToExpectedIndexList =
-            checkHeader(
-                resultSetMetaData,
-                "Timeroot.vehicle.d0.s0,root.vehicle.d0.s0,"
-                    + "Timeroot.vehicle.d0.s0,root.vehicle.d0.s0,"
-                    + "Timeroot.vehicle.d0.s1,root.vehicle.d0.s1,",
-                new int[] {Types.INTEGER, Types.INTEGER, Types.BIGINT});
-
-        int cnt = 0;
-        while (resultSet.next()) {
-          String[] expectedStrings = retArray[cnt].split(",");
-          StringBuilder expectedBuilder = new StringBuilder();
-          StringBuilder actualBuilder = new StringBuilder();
-          for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
-            actualBuilder.append(resultSet.getString(i)).append(",");
-            expectedBuilder
-                .append(expectedStrings[actualIndexToExpectedIndexList.get(i - 1)])
-                .append(",");
-          }
-          Assert.assertEquals(expectedBuilder.toString(), actualBuilder.toString());
-          cnt++;
-        }
-        Assert.assertEquals(11, cnt);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void selectLimitTest() {
-    String[] retArray =
-        new String[] {
-          "2,10000,1000,888,2,40000,3,3.33,70,bbbbb,null,null,",
-          "50,10000,null,null,50,50000,4,4.44,80,ccccc,null,null,",
-          "100,99,null,null,100,199,102,10.0,101,ddddd,null,null,",
-          "101,99,null,null,101,199,105,11.11,102,fffff,null,null,",
-          "102,80,null,null,102,180,1000,1000.11,946684800000,good,null,null,",
-          "103,99,null,null,103,199,null,null,null,null,null,null,",
-          "104,90,null,null,104,190,null,null,null,null,null,null,",
-          "105,99,null,null,105,199,null,null,null,null,null,null,",
-          "106,99,null,null,1000,55555,null,null,null,null,null,null,",
-          "1000,22222,null,null,946684800000,100,null,null,null,null,null,null,",
-        };
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet =
-          statement.execute(
-              "select s0,s1,s2,s3,s4 from root.vehicle.* limit 10 offset 1 disable align");
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
-        List<Integer> actualIndexToExpectedIndexList =
-            checkHeader(
-                resultSetMetaData,
-                "Timeroot.vehicle.d0.s0,root.vehicle.d0.s0,"
-                    + "Timeroot.vehicle.d1.s0,root.vehicle.d1.s0,"
-                    + "Timeroot.vehicle.d0.s1,root.vehicle.d0.s1,"
-                    + "Timeroot.vehicle.d0.s2,root.vehicle.d0.s2,"
-                    + "Timeroot.vehicle.d0.s3,root.vehicle.d0.s3,"
-                    + "Timeroot.vehicle.d0.s4,root.vehicle.d0.s4,",
-                new int[] {
-                  Types.INTEGER,
-                  Types.INTEGER,
-                  Types.BIGINT,
-                  Types.FLOAT,
-                  Types.VARCHAR,
-                  Types.BOOLEAN
-                });
-
-        int cnt = 0;
-        while (resultSet.next()) {
-          String[] expectedStrings = retArray[cnt].split(",");
-          StringBuilder expectedBuilder = new StringBuilder();
-          StringBuilder actualBuilder = new StringBuilder();
-          for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
-            actualBuilder.append(resultSet.getString(i)).append(",");
-            expectedBuilder
-                .append(expectedStrings[actualIndexToExpectedIndexList.get(i - 1)])
-                .append(",");
-          }
-          Assert.assertEquals(expectedBuilder.toString(), actualBuilder.toString());
-          cnt++;
-        }
-        Assert.assertEquals(10, cnt);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void selectSlimitTest() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet =
-          statement.execute("select * from root.vehicle.** slimit 2 soffset 1 disable align");
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
-        Assert.assertEquals(4, resultSetMetaData.getColumnCount());
-
-        int cnt = 0;
-        while (resultSet.next()) {
-          cnt++;
-        }
-        Assert.assertEquals(11, cnt);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void errorCaseTest1() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute(
-          "select * from root.vehicle.** where time = 3 Fill(int32[previous, 5ms]) disable align");
-      fail("No exception thrown.");
-    } catch (Exception e) {
-      Assert.assertTrue(e.getMessage().contains("doesn't support disable align clause."));
-    }
-  }
-
-  @Test
-  public void errorCaseTest2() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("select count(*) from root.vehicle GROUP BY ([2,50),20ms) disable align");
-      fail("No exception thrown.");
-    } catch (Exception e) {
-      Assert.assertTrue(e.getMessage().contains("doesn't support disable align clause."));
-    }
-  }
-
-  @Test
-  public void errorCaseTest3() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("select count(*) from root disable align");
-      fail("No exception thrown.");
-    } catch (Exception e) {
-      Assert.assertTrue(e.getMessage().contains("doesn't support disable align clause."));
-    }
-  }
-
-  private List<Integer> checkHeader(
-      ResultSetMetaData resultSetMetaData, String expectedHeaderStrings, int[] expectedTypes)
-      throws SQLException {
-    String[] expectedHeaders = expectedHeaderStrings.split(",");
-    Map<String, Integer> expectedHeaderToTypeIndexMap = new HashMap<>();
-    Map<String, Integer> expectedHeaderToColumnIndexMap = new HashMap<>();
-    for (int i = 0; i < expectedHeaders.length; ++i) {
-      if (i % 2 != 0) {
-        expectedHeaderToTypeIndexMap.put(expectedHeaders[i], i / 2);
-      }
-      expectedHeaderToColumnIndexMap.put(expectedHeaders[i], i);
-    }
-
-    List<Integer> actualIndexToExpectedIndexList = new ArrayList<>();
-    for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
-      String columnName = resultSetMetaData.getColumnName(i);
-      Integer typeIndex = expectedHeaderToTypeIndexMap.get(columnName);
-      if (typeIndex != null) {
-        Assert.assertEquals(expectedTypes[typeIndex], resultSetMetaData.getColumnType(i));
-      }
-      actualIndexToExpectedIndexList.add(expectedHeaderToColumnIndexMap.get(columnName));
-    }
-    return actualIndexToExpectedIndexList;
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBFillIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBFillIT.java
deleted file mode 100644
index e046d4882a2..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBFillIT.java
+++ /dev/null
@@ -1,1227 +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.integration;
-
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class, ClusterTest.class})
-public class IoTDBFillIT {
-
-  private static String[] dataSet1 =
-      new String[] {
-        "CREATE DATABASE root.ln.wf01.wt01",
-        "CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
-        "CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=DOUBLE, ENCODING=PLAIN",
-        "CREATE TIMESERIES root.ln.wf01.wt01.hardware WITH DATATYPE=INT32, ENCODING=PLAIN",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(1, 1.1, false, 11)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(2, 2.2, true, 22)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(3, 3.3, false, 33 )",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(4, 4.4, false, 44)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(5, 5.5, false, 55)",
-        "flush",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(100, 100.1, false, 110)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(150, 200.2, true, 220)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(200, 300.3, false, 330 )",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(250, 400.4, false, 440)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(300, 500.5, false, 550)",
-        "flush",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(10, 10.1, false, 110)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(20, 20.2, true, 220)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(30, 30.3, false, 330 )",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(40, 40.4, false, 440)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(50, 50.5, false, 550)",
-        "flush",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(500, 100.1, false, 110)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(510, 200.2, true, 220)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(520, 300.3, false, 330 )",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(530, 400.4, false, 440)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(540, 500.5, false, 550)",
-        "flush",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(580, 100.1, false, 110)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(590, 200.2, true, 220)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(600, 300.3, false, 330 )",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(610, 400.4, false, 440)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
-            + "values(620, 500.5, false, 550)",
-      };
-
-  private static String[] dataSet2 =
-      new String[] {
-        "CREATE DATABASE root.ln.wf01.wt02",
-        "CREATE TIMESERIES root.ln.wf01.wt02.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
-        "CREATE TIMESERIES root.ln.wf01.wt02.temperature WITH DATATYPE=DOUBLE, ENCODING=PLAIN",
-        "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) "
-            + "values(100, 100.1, false)",
-        "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) " + "values(150, 200.2, true)",
-        "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) "
-            + "values(300, 500.5, false)",
-        "flush",
-        "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) " + "values(600, 31.1, false)",
-        "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) " + "values(750, 55.2, true)",
-        "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) "
-            + "values(900, 1020.5, false)",
-        "flush",
-        "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) "
-            + "values(1100, 98.41, false)",
-        "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) "
-            + "values(1250, 220.2, true)",
-        "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) " + "values(1400, 31, false)",
-        "flush",
-      };
-
-  private static final String TIMESTAMP_STR = "Time";
-  private static final String TEMPERATURE_STR_1 = "root.ln.wf01.wt01.temperature";
-  private static final String STATUS_STR_1 = "root.ln.wf01.wt01.status";
-  private static final String TEMPERATURE_STR_2 = "root.ln.wf01.wt02.temperature";
-  private static final String STATUS_STR_2 = "root.ln.wf01.wt02.status";
-  private static final String HARDWARE_STR = "root.ln.wf01.wt01.hardware";
-
-  @Before
-  public void setUp() throws Exception {
-    EnvFactory.getEnv().initBeforeTest();
-    prepareData();
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    EnvFactory.getEnv().cleanAfterTest();
-  }
-
-  @Test
-  public void fillWithoutFilterTest() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute(
-          "SELECT temperature, status, hardware"
-              + " FROM root.ln.wf01.wt01"
-              + " FILL(int32[linear, 5ms, 5ms], double[linear, 5ms, 5ms], boolean[previous, 5ms])");
-      fail();
-    } catch (SQLException e) {
-      Assert.assertTrue(e.getMessage().contains("FILL must be used with a WHERE clause"));
-    }
-  }
-
-  @Test
-  public void fillWithInvalidFilterTest() {
-    // Test fill with where clause with condition other than time=constant
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute(
-          "SELECT temperature, status, hardware"
-              + " FROM root.ln.wf01.wt01 WHERE status=true"
-              + " FILL(int32[linear, 5ms, 5ms], double[linear, 5ms, 5ms], boolean[previous, 5ms])");
-      fail();
-    } catch (SQLException e) {
-      Assert.assertTrue(
-          e.getMessage().contains("The condition of WHERE clause must be like time=constant"));
-    }
-  }
-
-  @Test
-  public void fillWithInvalidFilterTest2() {
-    // Test fill with where clause with condition other than time=constant
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute(
-          "SELECT temperature, status, hardware"
-              + " FROM root.ln.wf01.wt01 WHERE time>0"
-              + " FILL(int32[linear, 5ms, 5ms], double[linear, 5ms, 5ms], boolean[previous, 5ms])");
-      fail();
-    } catch (SQLException e) {
-      Assert.assertTrue(
-          e.getMessage().contains("The condition of WHERE clause must be like time=constant"));
-    }
-  }
-
-  @Test
-  public void oldTypeLinearFillCommonTest() {
-    String[] retArray1 =
-        new String[] {"3,3.3,false,33", "70,70.34,false,374", "70,70.34,false,374"};
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet =
-          statement.execute(
-              "select temperature,status, hardware from "
-                  + "root.ln.wf01.wt01 where time = 3 "
-                  + "Fill(int32[linear, 5ms, 5ms], double[linear, 5ms, 5ms], boolean[previous, 5ms])");
-
-      Assert.assertTrue(hasResultSet);
-
-      ResultSet resultSet = statement.getResultSet();
-      int cnt = 0;
-      try {
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        hasResultSet =
-            statement.execute(
-                "select temperature,status, hardware "
-                    + "from root.ln.wf01.wt01 where time = 70 Fill(int32[linear, 500ms, 500ms], "
-                    + "double[linear, 500ms, 500ms], boolean[previous, 500ms])");
-
-        Assert.assertTrue(hasResultSet);
-        resultSet = statement.getResultSet();
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        hasResultSet =
-            statement.execute(
-                "select temperature,status, hardware "
-                    + "from root.ln.wf01.wt01 where time = 70 Fill(int32[linear], "
-                    + "double[linear], boolean[previous])");
-
-        Assert.assertTrue(hasResultSet);
-        resultSet = statement.getResultSet();
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-      } finally {
-        resultSet.close();
-      }
-
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void LinearFillCommonTest() {
-    String[] retArray1 = new String[] {"3,3.3,false,33", "70,70.34,null,374", "70,70.34,null,374"};
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet =
-          statement.execute(
-              "select temperature, status, hardware from "
-                  + "root.ln.wf01.wt01 where time = 3 "
-                  + "Fill(linear, 5ms, 5ms)");
-
-      Assert.assertTrue(hasResultSet);
-
-      ResultSet resultSet = statement.getResultSet();
-      int cnt = 0;
-      try {
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        hasResultSet =
-            statement.execute(
-                "select temperature, status, hardware "
-                    + "from root.ln.wf01.wt01 where time = 70 "
-                    + "Fill(linear, 500ms, 500ms)");
-
-        Assert.assertTrue(hasResultSet);
-        resultSet = statement.getResultSet();
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        hasResultSet =
-            statement.execute(
-                "select temperature, status, hardware "
-                    + "from root.ln.wf01.wt01 where time = 70 "
-                    + "Fill(linear)");
-
-        Assert.assertTrue(hasResultSet);
-        resultSet = statement.getResultSet();
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-      } finally {
-        resultSet.close();
-      }
-
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void LinearFillWithBeforeOrAfterValueNullTest() {
-    String[] retArray1 =
-        new String[] {"70,null,null,null", "80,null,null,null", "625,null,false,null"};
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet =
-          statement.execute(
-              "select temperature,status, hardware "
-                  + "from root.ln.wf01.wt01 where time = 70 "
-                  + "Fill(int32[linear, 25ms, 25ms], double[linear, 25ms, 25ms], boolean[previous, 5ms])");
-
-      int cnt = 0;
-      Assert.assertTrue(hasResultSet);
-      ResultSet resultSet = statement.getResultSet();
-      try {
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        hasResultSet =
-            statement.execute(
-                "select temperature,status, hardware "
-                    + "from root.ln.wf01.wt01 where time = 80 "
-                    + "Fill(int32[linear, 25ms, 25ms], double[linear, 25ms, 25ms], boolean[previous, 5ms])");
-
-        Assert.assertTrue(hasResultSet);
-        resultSet = statement.getResultSet();
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        hasResultSet =
-            statement.execute(
-                "select temperature,status, hardware "
-                    + "from root.ln.wf01.wt01 where time = 625 "
-                    + "Fill(int32[linear, 25ms, 25ms], double[linear, 25ms, 25ms], boolean[previous, 5ms])");
-
-        Assert.assertTrue(hasResultSet);
-        resultSet = statement.getResultSet();
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-      } finally {
-        resultSet.close();
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void oldTypeValueFillTest() {
-    String res = "7,7.0,true,7";
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet =
-          statement.execute(
-              "select temperature,status, hardware "
-                  + "from root.ln.wf01.wt01 where time = 7 "
-                  + "Fill(int32[7], double[7], boolean[true])");
-
-      Assert.assertTrue(hasResultSet);
-      ResultSet resultSet = statement.getResultSet();
-      while (resultSet.next()) {
-        String ans =
-            resultSet.getString(TIMESTAMP_STR)
-                + ","
-                + resultSet.getString(TEMPERATURE_STR_1)
-                + ","
-                + resultSet.getString(STATUS_STR_1)
-                + ","
-                + resultSet.getString(HARDWARE_STR);
-        Assert.assertEquals(res, ans);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void valueFillTest() {
-    String res = "7,7.0,null,7";
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet =
-          statement.execute(
-              "select temperature, status, hardware "
-                  + "from root.ln.wf01.wt01 where time = 7 "
-                  + "Fill(7)");
-
-      Assert.assertTrue(hasResultSet);
-      ResultSet resultSet = statement.getResultSet();
-      while (resultSet.next()) {
-        String ans =
-            resultSet.getString(TIMESTAMP_STR)
-                + ","
-                + resultSet.getString(TEMPERATURE_STR_1)
-                + ","
-                + resultSet.getString(STATUS_STR_1)
-                + ","
-                + resultSet.getString(HARDWARE_STR);
-        Assert.assertEquals(res, ans);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void stringValueFillTest() {
-    String res = "7,null,null,null";
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet =
-          statement.execute(
-              "select temperature, status, hardware "
-                  + "from root.ln.wf01.wt01 where time = 7 "
-                  + "Fill('test string')");
-
-      Assert.assertTrue(hasResultSet);
-      ResultSet resultSet = statement.getResultSet();
-      while (resultSet.next()) {
-        String ans =
-            resultSet.getString(TIMESTAMP_STR)
-                + ","
-                + resultSet.getString(TEMPERATURE_STR_1)
-                + ","
-                + resultSet.getString(STATUS_STR_1)
-                + ","
-                + resultSet.getString(HARDWARE_STR);
-        Assert.assertEquals(res, ans);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void boolValueFillTest() {
-    String res = "7,null,true,null";
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet =
-          statement.execute(
-              "select temperature, status, hardware "
-                  + "from root.ln.wf01.wt01 where time = 7 "
-                  + "Fill(true)");
-
-      Assert.assertTrue(hasResultSet);
-      ResultSet resultSet = statement.getResultSet();
-      while (resultSet.next()) {
-        String ans =
-            resultSet.getString(TIMESTAMP_STR)
-                + ","
-                + resultSet.getString(TEMPERATURE_STR_1)
-                + ","
-                + resultSet.getString(STATUS_STR_1)
-                + ","
-                + resultSet.getString(HARDWARE_STR);
-        Assert.assertEquals(res, ans);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void valueFillNonNullTest() {
-    String res = "1,1.1,false,11";
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet =
-          statement.execute(
-              "SELECT temperature, status, hardware"
-                  + " FROM root.ln.wf01.wt01"
-                  + " WHERE time = 1 FILL(int32[7], double[7], boolean[true])");
-
-      Assert.assertTrue(hasResultSet);
-      ResultSet resultSet = statement.getResultSet();
-      while (resultSet.next()) {
-        String ans =
-            resultSet.getString(TIMESTAMP_STR)
-                + ","
-                + resultSet.getString(TEMPERATURE_STR_1)
-                + ","
-                + resultSet.getString(STATUS_STR_1)
-                + ","
-                + resultSet.getString(HARDWARE_STR);
-        Assert.assertEquals(res, ans);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void oldTypePreviousFillTest() {
-    String[] retArray1 = new String[] {"3,3.3,false,33", "70,50.5,false,550", "70,null,null,null"};
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet =
-          statement.execute(
-              "select temperature,status, hardware "
-                  + "from root.ln.wf01.wt01 where time = 3 "
-                  + "Fill(int32[previous, 5ms], double[previous, 5ms], boolean[previous, 5ms])");
-
-      Assert.assertTrue(hasResultSet);
-      int cnt;
-      ResultSet resultSet = statement.getResultSet();
-      try {
-        cnt = 0;
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        hasResultSet =
-            statement.execute(
-                "select temperature,status, hardware "
-                    + "from root.ln.wf01.wt01 where time = 70 "
-                    + "Fill(int32[previous, 500ms], double[previous, 500ms], boolean[previous, 500ms])");
-
-        Assert.assertTrue(hasResultSet);
-        resultSet = statement.getResultSet();
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        hasResultSet =
-            statement.execute(
-                "select temperature,status, hardware "
-                    + "from root.ln.wf01.wt01 where time = 70 "
-                    + "Fill(int32[previous, 15ms], double[previous, 15ms], boolean[previous, 5ms])");
-
-        Assert.assertTrue(hasResultSet);
-        resultSet = statement.getResultSet();
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-        Assert.assertEquals(retArray1.length, cnt);
-      } finally {
-        resultSet.close();
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void PreviousFillTest() {
-    String[] retArray1 = new String[] {"3,3.3,false,33", "70,50.5,false,550", "70,null,null,null"};
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet =
-          statement.execute(
-              "select temperature,status, hardware "
-                  + "from root.ln.wf01.wt01 where time = 3 "
-                  + "Fill(previous, 5ms)");
-
-      Assert.assertTrue(hasResultSet);
-      int cnt;
-      ResultSet resultSet = statement.getResultSet();
-      try {
-        cnt = 0;
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        hasResultSet =
-            statement.execute(
-                "select temperature,status, hardware "
-                    + "from root.ln.wf01.wt01 where time = 70 "
-                    + "Fill(previous, 500ms)");
-
-        Assert.assertTrue(hasResultSet);
-        resultSet = statement.getResultSet();
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        hasResultSet =
-            statement.execute(
-                "select temperature,status, hardware "
-                    + "from root.ln.wf01.wt01 where time = 70 "
-                    + "Fill(previous, 5ms)");
-
-        Assert.assertTrue(hasResultSet);
-        resultSet = statement.getResultSet();
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-        Assert.assertEquals(retArray1.length, cnt);
-      } finally {
-        resultSet.close();
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void EmptyTimeRangeFillTest() {
-    String[] retArray1 = new String[] {"3,3.3,false,33", "70,70.34,false,374"};
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet =
-          statement.execute(
-              "select temperature,status, hardware "
-                  + "from root.ln.wf01.wt01 where time = 3 "
-                  + "Fill(int32[linear], double[linear], boolean[previous])");
-
-      Assert.assertTrue(hasResultSet);
-      int cnt = 0;
-      ResultSet resultSet = statement.getResultSet();
-      try {
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        hasResultSet =
-            statement.execute(
-                "select temperature,status, hardware "
-                    + "from root.ln.wf01.wt01 where time = 70 "
-                    + "Fill(int32[linear], double[linear], boolean[previous])");
-
-        Assert.assertTrue(hasResultSet);
-        resultSet = statement.getResultSet();
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_1)
-                  + ","
-                  + resultSet.getString(STATUS_STR_1)
-                  + ","
-                  + resultSet.getString(HARDWARE_STR);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-      } finally {
-        resultSet.close();
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void PreviousFillWithOnlySeqFileTest() {
-    String[] retArray = new String[] {"1050,1020.5,false", "800,55.2,true"};
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      ResultSet resultSet =
-          statement.executeQuery(
-              "select temperature,status "
-                  + "from root.ln.wf01.wt02 where time = 1050 Fill(double[previous])");
-
-      int cnt = 0;
-      try {
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray[cnt], ans);
-          cnt++;
-        }
-
-        resultSet =
-            statement.executeQuery(
-                "select temperature,status "
-                    + "from root.ln.wf01.wt02 where time = 800 Fill(double[previous])");
-
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray[cnt], ans);
-          cnt++;
-        }
-      } finally {
-        resultSet.close();
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void PreviousFillWithOnlyUnseqFileOverlappedTest() {
-    String[] retArray = new String[] {"58,82.1,true", "40,121.22,true", "80,32.2,false"};
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(50, 82.1, true)");
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(35, 121.22, true)");
-      statement.execute("flush");
-
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(25, 102.15, true)");
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(78, 32.2, false)");
-      statement.execute("flush");
-
-      int cnt = 0;
-      ResultSet resultSet =
-          statement.executeQuery(
-              "select temperature,status "
-                  + "from root.ln.wf01.wt02 where time = 58 Fill(double[previous])");
-      try {
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray[cnt], ans);
-          cnt++;
-        }
-
-        resultSet =
-            statement.executeQuery(
-                "select temperature,status "
-                    + "from root.ln.wf01.wt02 where time = 40 Fill(double[previous])");
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray[cnt], ans);
-          cnt++;
-        }
-
-        resultSet =
-            statement.executeQuery(
-                "select temperature,status "
-                    + "from root.ln.wf01.wt02 where time = 80 Fill(double[previous])");
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray[cnt], ans);
-          cnt++;
-        }
-      } finally {
-        resultSet.close();
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void PreviousFillMultiUnseqFileWithSameLastTest() {
-    String[] retArray =
-        new String[] {
-          "59,82.1,true", "52,32.2,false",
-        };
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(50, 82.1, true)");
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(35, 121.22, true)");
-      statement.execute("flush");
-
-      int cnt = 0;
-      ResultSet resultSet =
-          statement.executeQuery(
-              "select temperature,status "
-                  + "from root.ln.wf01.wt02 where time = 59 Fill(double[previous])");
-      try {
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray[cnt], ans);
-          cnt++;
-        }
-
-        statement.execute(
-            "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(25, 102.15, true)");
-        statement.execute(
-            "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(50, 32.2, false)");
-        statement.execute("flush");
-
-        resultSet =
-            statement.executeQuery(
-                "select temperature,status "
-                    + "from root.ln.wf01.wt02 where time = 52 Fill(double[previous])");
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray[cnt], ans);
-          cnt++;
-        }
-      } finally {
-        resultSet.close();
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void PreviousFillSeqFileFilterOverlappedFilesTest() {
-    String[] retArray1 =
-        new String[] {
-          "886,55.2,true", "730,121.22,true",
-        };
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      int cnt = 0;
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(950, 82.1, true)");
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(650, 121.22, true)");
-      statement.execute("flush");
-
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(740, 33.1, false)");
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(420, 125.1, true)");
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(890, 22.82, false)");
-      statement.execute("flush");
-
-      ResultSet resultSet =
-          statement.executeQuery(
-              "select temperature,status from root.ln.wf01.wt02 where time = 886 "
-                  + "Fill(double[previous])");
-      try {
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        resultSet =
-            statement.executeQuery(
-                "select temperature,status from root.ln.wf01.wt02 where time = 730 "
-                    + "Fill(double[previous])");
-
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-      } finally {
-        resultSet.close();
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void PreviousFillUnseqFileFilterOverlappedFilesTest() {
-    String[] retArray1 =
-        new String[] {
-          "990,121.22,true", "925,33.1,false",
-        };
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      int cnt = 0;
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(1030, 82.1, true)");
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(940, 121.22, true)");
-      statement.execute("flush");
-
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(740, 62.1, false)");
-      statement.execute("INSERT INTO root.ln.wf01.wt02(timestamp,status) values(980, true)");
-      statement.execute("flush");
-
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(910, 33.1, false)");
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(620, 125.1, true)");
-      statement.execute("flush");
-
-      ResultSet resultSet =
-          statement.executeQuery(
-              "select temperature,status from root.ln.wf01.wt02 where time = 990 "
-                  + "Fill(double[previous])");
-      try {
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-
-        resultSet =
-            statement.executeQuery(
-                "select temperature,status from root.ln.wf01.wt02 where time = 925 "
-                    + "Fill(double[previous])");
-
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-      } finally {
-        resultSet.close();
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void PreviousFillWithNullUnseqFilesTest() {
-    String[] retArray1 =
-        new String[] {
-          "990,1020.5,true",
-        };
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      int cnt = 0;
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp, temperature, status) values(1030, 21.6, true)");
-      statement.execute("INSERT INTO root.ln.wf01.wt02(timestamp,status) values(940, true)");
-      statement.execute("flush");
-
-      statement.execute("INSERT INTO root.ln.wf01.wt02(timestamp,status) values(740, false)");
-      statement.execute("INSERT INTO root.ln.wf01.wt02(timestamp,status) values(980, true)");
-      statement.execute("flush");
-
-      ResultSet resultSet =
-          statement.executeQuery(
-              "select temperature,status from root.ln.wf01.wt02 where time = 990 "
-                  + "Fill(double[previous])");
-      try {
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-      } finally {
-        resultSet.close();
-      }
-
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void PreviousFillWithDeletionTest() {
-    String[] retArray1 =
-        new String[] {
-          "1080,21.6,true",
-        };
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      int cnt = 0;
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp, temperature, status) values(1030, 21.6, true)");
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp, temperature, status) values(940, 188.2, false)");
-
-      statement.execute("DELETE FROM root.ln.wf01.wt02.temperature WHERE time < 1000");
-      statement.execute("flush");
-      statement.execute(
-          "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status) values(980, 47.22, true)");
-      statement.execute("flush");
-
-      ResultSet resultSet =
-          statement.executeQuery(
-              "select temperature,status from root.ln.wf01.wt02 where time = 1080 "
-                  + "Fill(double[previous])");
-      try {
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(TEMPERATURE_STR_2)
-                  + ","
-                  + resultSet.getString(STATUS_STR_2);
-          Assert.assertEquals(retArray1[cnt], ans);
-          cnt++;
-        }
-      } finally {
-        resultSet.close();
-      }
-
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  private void prepareData() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      for (String sql : dataSet1) {
-        statement.execute(sql);
-      }
-      for (String sql : dataSet2) {
-        statement.execute(sql);
-      }
-
-    } catch (Exception e) {
-      e.printStackTrace();
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBFlushQueryMergeIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBFlushQueryMergeIT.java
deleted file mode 100644
index 5172ac96830..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBFlushQueryMergeIT.java
+++ /dev/null
@@ -1,197 +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.integration;
-
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.itbase.category.RemoteTest;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Locale;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class, ClusterTest.class, RemoteTest.class})
-public class IoTDBFlushQueryMergeIT {
-
-  private static final Logger logger = LoggerFactory.getLogger(IoTDBFlushQueryMergeIT.class);
-  private static String[] sqls =
-      new String[] {
-        "CREATE DATABASE root.vehicle.d0",
-        "CREATE TIMESERIES root.vehicle.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
-        "insert into root.vehicle.d0(timestamp,s0) values(1,101)",
-        "insert into root.vehicle.d0(timestamp,s0) values(2,198)",
-        "insert into root.vehicle.d0(timestamp,s0) values(100,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(101,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(102,80)",
-        "insert into root.vehicle.d0(timestamp,s0) values(103,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(104,90)",
-        "insert into root.vehicle.d0(timestamp,s0) values(105,99)",
-        "insert into root.vehicle.d0(timestamp,s0) values(106,99)",
-        "flush",
-        "insert into root.vehicle.d0(timestamp,s0) values(2,10000)",
-        "insert into root.vehicle.d0(timestamp,s0) values(50,10000)",
-        "insert into root.vehicle.d0(timestamp,s0) values(1000,22222)",
-      };
-
-  @BeforeClass
-  public static void setUp() throws Exception {
-    Locale.setDefault(Locale.ENGLISH);
-    EnvFactory.getEnv().initBeforeClass();
-    insertData();
-  }
-
-  @AfterClass
-  public static void tearDown() throws Exception {
-    EnvFactory.getEnv().cleanAfterClass();
-  }
-
-  private static void insertData() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      for (String sql : sqls) {
-        statement.execute(sql);
-      }
-    } catch (Exception e) {
-      logger.error("insertData failed", e);
-    }
-  }
-
-  @Test
-  public void selectAllSQLTest() {
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet = statement.execute("SELECT * FROM root.**");
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        int cnt = 0;
-        while (resultSet.next()) {
-          cnt++;
-        }
-      }
-      statement.execute("merge");
-    } catch (Exception e) {
-      logger.error("selectAllSQLTest failed", e);
-      fail(e.getMessage());
-    }
-  }
-
-  @Test
-  public void testFlushGivenGroup() {
-    String insertTemplate =
-        "INSERT INTO root.group%d(timestamp, s1, s2, s3) VALUES (%d, %d, %f, %s)";
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.group1");
-      statement.execute("CREATE DATABASE root.group2");
-      statement.execute("CREATE DATABASE root.group3");
-
-      for (int i = 1; i <= 3; i++) {
-        for (int j = 10; j < 20; j++) {
-          statement.execute(String.format(insertTemplate, i, j, j, j * 0.1, j));
-        }
-      }
-      statement.execute("FLUSH");
-
-      for (int i = 1; i <= 3; i++) {
-        for (int j = 0; j < 10; j++) {
-          statement.execute(String.format(insertTemplate, i, j, j, j * 0.1, j));
-        }
-      }
-      statement.execute("FLUSH root.group1");
-      statement.execute("FLUSH root.group2,root.group3");
-
-      for (int i = 1; i <= 3; i++) {
-        for (int j = 0; j < 30; j++) {
-          statement.execute(String.format(insertTemplate, i, j, j, j * 0.1, j));
-        }
-      }
-      statement.execute("FLUSH root.group1 TRUE");
-      statement.execute("FLUSH root.group2,root.group3 FALSE");
-
-      int i = 0;
-      try (ResultSet resultSet =
-          statement.executeQuery("SELECT * FROM root.group1,root.group2,root" + ".group3")) {
-        while (resultSet.next()) {
-          i++;
-        }
-      }
-      assertEquals(30, i);
-
-    } catch (Exception e) {
-      logger.error("testFlushGivenGroup failed", e);
-      fail(e.getMessage());
-    }
-  }
-
-  // bug fix test, https://issues.apache.org/jira/browse/IOTDB-875
-  @Test
-  public void testFlushGivenGroupNoData() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.nodatagroup1");
-      statement.execute("CREATE DATABASE root.nodatagroup2");
-      statement.execute("CREATE DATABASE root.nodatagroup3");
-      statement.execute("FLUSH root.nodatagroup1");
-      statement.execute("FLUSH root.nodatagroup2");
-      statement.execute("FLUSH root.nodatagroup3");
-      statement.execute("FLUSH root.nodatagroup1, root.nodatagroup2");
-    } catch (Exception e) {
-      logger.error("testFlushGivenGroupNoData failed", e);
-      fail(e.getMessage());
-    }
-  }
-
-  // bug fix test, https://issues.apache.org/jira/browse/IOTDB-875
-  @Test
-  public void testFlushNotExistGroupNoData() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      statement.execute("CREATE DATABASE root.noexist.nodatagroup1");
-      try {
-        statement.execute(
-            "FLUSH root.noexist.nodatagroup1,root.notExistGroup1,root.notExistGroup2");
-      } catch (SQLException sqe) {
-        String expectedMsg =
-            "Database is not set for current seriesPath: [root.notExistGroup2,root.notExistGroup1]";
-        sqe.printStackTrace();
-        Assert.assertTrue(sqe.getMessage().contains(expectedMsg));
-      }
-    } catch (Exception e) {
-      logger.error("testFlushNotExistGroupNoData failed", e);
-      fail(e.getMessage());
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBKillQueryIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBKillQueryIT.java
deleted file mode 100644
index ef097d0f552..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBKillQueryIT.java
+++ /dev/null
@@ -1,80 +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.integration;
-
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.itbase.category.RemoteTest;
-import org.apache.iotdb.jdbc.IoTDBSQLException;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.Statement;
-
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class, ClusterTest.class, RemoteTest.class})
-public class IoTDBKillQueryIT {
-
-  @Before
-  public void setUp() throws Exception {
-    EnvFactory.getEnv().initBeforeClass();
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    EnvFactory.getEnv().cleanAfterClass();
-  }
-
-  /** Test killing query with specified query id which is not exist. */
-  @Test
-  public void killQueryTest1() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      statement.execute("kill query 998");
-      fail("QueryIdNotExistException is not thrown");
-    } catch (IoTDBSQLException e) {
-      Assert.assertTrue(e.getMessage().contains("Query Id 998 is not exist"));
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  /** Test killing query without explicit query id. It's supposed to run successfully. */
-  @Test
-  public void killQueryTest2() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet = statement.execute("kill query");
-      Assert.assertEquals(false, hasResultSet);
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBLargeDataIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBLargeDataIT.java
deleted file mode 100644
index a1ad679223a..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBLargeDataIT.java
+++ /dev/null
@@ -1,373 +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.integration;
-
-import org.apache.iotdb.commons.conf.IoTDBConstant;
-import org.apache.iotdb.db.constant.TestConstant;
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
-import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.Statement;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-/**
- * Notice that, all test begins with "IoTDB" is integration test. All test which will start the
- * IoTDB server should be defined as integration test.
- */
-@Category({LocalStandaloneTest.class, ClusterTest.class})
-public class IoTDBLargeDataIT {
-
-  private static TSFileConfig tsFileConfig = TSFileDescriptor.getInstance().getConfig();
-  private static int maxNumberOfPointsInPage;
-  private static int pageSizeInByte;
-  private static int groupSizeInByte;
-
-  @BeforeClass
-  public static void setUp() throws Exception {
-
-    // use small page setting
-    // origin value
-    maxNumberOfPointsInPage = tsFileConfig.getMaxNumberOfPointsInPage();
-    pageSizeInByte = tsFileConfig.getPageSizeInByte();
-    groupSizeInByte = tsFileConfig.getGroupSizeInByte();
-
-    // new value
-    ConfigFactory.getConfig().setMaxNumberOfPointsInPage(1000);
-    ConfigFactory.getConfig().setPageSizeInByte(1024 * 150);
-    ConfigFactory.getConfig().setGroupSizeInByte(1024 * 1000);
-    ConfigFactory.getConfig().setMemtableSizeThreshold(1024 * 1000);
-
-    EnvFactory.getEnv().initBeforeClass();
-
-    insertData();
-  }
-
-  @AfterClass
-  public static void tearDown() throws Exception {
-
-    // recovery value
-    ConfigFactory.getConfig()
-        .setMaxNumberOfPointsInPage(maxNumberOfPointsInPage)
-        .setPageSizeInByte(pageSizeInByte)
-        .setGroupSizeInByte(groupSizeInByte)
-        .setMemtableSizeThreshold(groupSizeInByte);
-
-    EnvFactory.getEnv().cleanAfterClass();
-  }
-
-  private static void insertData() {
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      for (String sql : TestConstant.createSql) {
-        statement.execute(sql);
-      }
-
-      // insert large amount of data time range : 13700 ~ 24000
-      for (int time = 13700; time < 24000; time++) {
-
-        String sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time % 70);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, time % 40);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, time % 123);
-        statement.execute(sql);
-      }
-
-      // insert large amount of data time range : 3000 ~ 13600
-      for (int time = 3000; time < 13600; time++) {
-        // System.out.println("===" + time);
-        String sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time % 100);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, time % 17);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, time % 22);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s3) values(%s,'%s')",
-                time, TestConstant.stringValue[time % 5]);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s4) values(%s, %s)",
-                time, TestConstant.booleanValue[time % 2]);
-        statement.execute(sql);
-        sql = String.format("insert into root.vehicle.d0(timestamp,s5) values(%s, %s)", time, time);
-        statement.execute(sql);
-      }
-
-      statement.execute("flush");
-      statement.execute("merge");
-
-      // buffwrite data, unsealed file
-      for (int time = 100000; time < 101000; time++) {
-
-        String sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time % 20);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, time % 30);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, time % 77);
-        statement.execute(sql);
-      }
-
-      statement.execute("flush");
-
-      // sequential data, memory data
-      for (int time = 200000; time < 201000; time++) {
-
-        String sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, -time % 20);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, -time % 30);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, -time % 77);
-        statement.execute(sql);
-      }
-
-      // unseq insert, time < 3000
-      for (int time = 2000; time < 2500; time++) {
-
-        String sql =
-            String.format("insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, time + 1);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, time + 2);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s3) values(%s,'%s')",
-                time, TestConstant.stringValue[time % 5]);
-        statement.execute(sql);
-      }
-
-      // seq insert, time > 200000
-      for (int time = 200900; time < 201000; time++) {
-
-        String sql =
-            String.format("insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, 6666);
-        statement.execute(sql);
-        sql = String.format("insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, 7777);
-        statement.execute(sql);
-        sql = String.format("insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, 8888);
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s3) values(%s,'%s')", time, "goodman");
-        statement.execute(sql);
-        sql =
-            String.format(
-                "insert into root.vehicle.d0(timestamp,s4) values(%s, %s)",
-                time, TestConstant.booleanValue[time % 2]);
-        statement.execute(sql);
-        sql = String.format("insert into root.vehicle.d0(timestamp,s5) values(%s, %s)", time, 9999);
-        statement.execute(sql);
-      }
-
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  // "select * from root.vehicle.**" : test select wild data
-  @Test
-  public void selectAllTest() {
-    String selectSql = "select * from root.vehicle.**";
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-
-      boolean hasResultSet = statement.execute(selectSql);
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        int cnt = 0;
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TestConstant.TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(
-                      TestConstant.d0 + IoTDBConstant.PATH_SEPARATOR + TestConstant.s0)
-                  + ","
-                  + resultSet.getString(
-                      TestConstant.d0 + IoTDBConstant.PATH_SEPARATOR + TestConstant.s1)
-                  + ","
-                  + resultSet.getString(
-                      TestConstant.d0 + IoTDBConstant.PATH_SEPARATOR + TestConstant.s2)
-                  + ","
-                  + resultSet.getString(
-                      TestConstant.d0 + IoTDBConstant.PATH_SEPARATOR + TestConstant.s3)
-                  + ","
-                  + resultSet.getString(
-                      TestConstant.d0 + IoTDBConstant.PATH_SEPARATOR + TestConstant.s4)
-                  + ","
-                  + resultSet.getString(
-                      TestConstant.d0 + IoTDBConstant.PATH_SEPARATOR + TestConstant.s5);
-          cnt++;
-        }
-
-        assertEquals(23400, cnt);
-      }
-
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  // "select s0 from root.vehicle.d0 where s0 >= 20" : test select same series with same series
-  // filter
-  @Test
-  public void selectOneSeriesWithValueFilterTest() {
-
-    String selectSql = "select s0 from root.vehicle.d0 where s0 >= 20";
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      boolean hasResultSet = statement.execute(selectSql);
-      Assert.assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        int cnt = 0;
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TestConstant.TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(
-                      TestConstant.d0 + IoTDBConstant.PATH_SEPARATOR + TestConstant.s0);
-          // System.out.println("===" + ans);
-          cnt++;
-        }
-        assertEquals(16440, cnt);
-      }
-
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  // "select s0 from root.vehicle.d0 where time > 22987 " : test select clause with only global time
-  // filter
-  @Test
-  public void seriesGlobalTimeFilterTest() {
-
-    boolean hasResultSet;
-
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      hasResultSet = statement.execute("select s0 from root.vehicle.d0 where time > 22987");
-      assertTrue(hasResultSet);
-
-      int cnt = 0;
-      try (ResultSet resultSet = statement.getResultSet()) {
-        while (resultSet.next()) {
-          String ans =
-              resultSet.getString(TestConstant.TIMESTAMP_STR)
-                  + ","
-                  + resultSet.getString(
-                      TestConstant.d0 + IoTDBConstant.PATH_SEPARATOR + TestConstant.s0);
-          //           System.out.println(ans);
-          cnt++;
-        }
-
-        assertEquals(3012, cnt);
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-
-  // "select s1 from root.vehicle.d0 where s0 < 111" : test select clause with different series
-  // filter
-  @Test
-  public void crossSeriesReadUpdateTest() {
-
-    boolean hasResultSet;
-    try (Connection connection = EnvFactory.getEnv().getConnection();
-        Statement statement = connection.createStatement()) {
-      hasResultSet = statement.execute("select s1 from root.vehicle.d0 where s0 < 111");
-      assertTrue(hasResultSet);
-
-      try (ResultSet resultSet = statement.getResultSet()) {
-        int cnt = 0;
-        while (resultSet.next()) {
-          long time = Long.parseLong(resultSet.getString(TestConstant.TIMESTAMP_STR));
-          String value =
-              resultSet.getString(TestConstant.d0 + IoTDBConstant.PATH_SEPARATOR + TestConstant.s1);
-          if (time > 200900) {
-            assertEquals("7777", value);
-          }
-          // String ans = resultSet.getString(d0s1);
-          cnt++;
-        }
-        assertEquals(22800, cnt);
-      }
-
-    } catch (Exception e) {
-      e.printStackTrace();
-      fail(e.getMessage());
-    }
-  }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBLastIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBLastIT.java
deleted file mode 100644
index a2e3ca93d56..00000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBLastIT.java
+++ /dev/null
@@ -1,629 +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.integration;
-
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.Statement;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import static org.apache.iotdb.db.constant.TestConstant.DATA_TYPE_STR;
-import static org.apache.iotdb.db.constant.TestConstant.TIMESEIRES_STR;
-import static org.apache.iotdb.db.constant.TestConstant.TIMESTAMP_STR;
-import static org.apache.iotdb.db.constant.TestConstant.VALUE_STR;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-@SuppressWarnings("ALL")
-@Category({LocalStandaloneTest.class})
-public class IoTDBLastIT {
-
-  private static final String[] dataSet1 =
-      new String[] {
-        "CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
-        "CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=DOUBLE, ENCODING=PLAIN",
-        "CREATE TIMESERIES root.ln.wf01.wt01.id WITH DATATYPE=INT32, ENCODING=PLAIN",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, id) "
-            + "values(100, 25.1, false, 7)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, id) "
-            + "values(200, 25.2, true, 8)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, id) "
-            + "values(300, 15.7, false, 9)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, id) "
-            + "values(400, 16.2, false, 6)",
-        "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, id) "
-            + "values(500, 22.1, false, 5)",
-        "flush",
-      };
-
-  private static final String[] dataSet2 =
-      new String[] {
-        "CREATE TIMESERIES root.ln.wf01.wt02.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
-        "CREATE TIMESERIES root.ln.wf01.wt02.temperature WITH DATATYPE=DOUBLE, ENCODING=PLAIN",
-        "CREATE TIMESERIES root.ln.wf01.wt02.id WITH DATATYPE=INT32, ENCODING=PLAIN",
-        "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status, id) "
-            + "values(100, 18.6, false, 7)",
-        "INSERT INTO root.ln.wf01.wt02(timestamp,temperature,status, id) "
-            + "values(300, 23.1, true, 8)",
... 13737 lines suppressed ...