This is an automated email from the ASF dual-hosted git repository. rong pushed a commit to branch iotdb-1620 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit d116a218c4fa0a49e1e73b0133dccdfba1a0b38f Merge: 23e505f a8d9e4b Author: Steve Yurong Su <[email protected]> AuthorDate: Tue Oct 26 10:08:13 2021 +0800 merge master and fix conflits .asf.yaml | 2 +- .github/dependabot.yml | 71 + .github/workflows/influxdb-protocol.yml | 64 + .github/workflows/main-unix.yml | 3 +- .github/workflows/main-win.yml | 31 +- .github/workflows/sonar-coveralls.yml | 2 +- .mvn/wrapper/MavenWrapperDownloader.java | 2 +- .../org/apache/iotdb/db/qp/sql/IoTDBSqlLexer.g4 | 987 ++++++ .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 856 +++++ .../antlr4/org/apache/iotdb/db/qp/sql/SqlBase.g4 | 1532 --------- cli/pom.xml | 2 +- .../java/org/apache/iotdb/cli/AbstractCli.java | 67 + client-cpp/pom.xml | 2 +- client-py/SessionExample.py | 13 + client-py/SessionTest.py | 63 +- client-py/iotdb/Session.py | 2 +- .asf.yaml => client-py/iotdb/utils/BitMap.py | 26 +- client-py/iotdb/utils/Tablet.py | 87 +- .../cluster/client/sync/SyncClientAdaptor.java | 10 + .../iotdb/cluster/log/StableEntryManager.java | 6 + .../cluster/log/manage/CommittedEntryManager.java | 12 + .../manage/FilePartitionedSnapshotLogManager.java | 12 +- .../iotdb/cluster/log/manage/RaftLogManager.java | 6 +- .../serializable/SyncLogDequeSerializer.java | 25 + .../iotdb/cluster/log/snapshot/FileSnapshot.java | 13 +- .../apache/iotdb/cluster/metadata/CMManager.java | 85 +- .../iotdb/cluster/query/ClusterPlanExecutor.java | 138 + .../iotdb/cluster/query/ClusterPlanRouter.java | 60 +- .../iotdb/cluster/query/LocalQueryExecutor.java | 59 +- .../iotdb/cluster/query/RemoteQueryContext.java | 5 +- .../cluster/query/filter/SlotTsFileFilter.java | 5 +- .../cluster/query/reader/ClusterReaderFactory.java | 24 +- .../apache/iotdb/cluster/server/ClientServer.java | 6 +- .../iotdb/cluster/server/DataClusterServer.java | 15 + .../cluster/server/member/DataGroupMember.java | 2 +- .../cluster/server/service/DataAsyncService.java | 12 + .../cluster/server/service/DataSyncService.java | 9 + .../iotdb/cluster/utils/ClusterQueryUtils.java | 43 + .../apache/iotdb/cluster/utils/PartitionUtils.java | 5 +- .../cluster/client/sync/SyncClientAdaptorTest.java | 14 +- .../org/apache/iotdb/cluster/common/TestUtils.java | 2 +- .../iotdb/cluster/integration/SingleNodeTest.java | 2 +- .../cluster/log/snapshot/PullSnapshotTaskTest.java | 13 +- .../cluster/partition/SlotPartitionTableTest.java | 37 - .../apache/iotdb/cluster/query/BaseQueryTest.java | 9 +- .../cluster/server/member/DataGroupMemberTest.java | 11 +- compile-tools/thrift/pom.xml | 2 +- docker/ReadMe.md | 44 + .../main/DockerCompose/docker-compose-grafana.yml | 50 + docker/src/main/Dockerfile-0.12.2-grafana | 41 + docs/SystemDesign/StorageEngine/MergeManager.md | 6 +- docs/UserGuide/API/Programming-Java-Native-API.md | 10 + .../Administration-Management/Administration.md | 8 +- docs/UserGuide/Advanced-Features/Triggers.md | 12 +- .../Advanced-Features/UDF-User-Defined-Function.md | 6 +- docs/UserGuide/Appendix/SQL-Reference.md | 24 +- docs/UserGuide/Data-Concept/Data-Type.md | 12 +- docs/UserGuide/Data-Concept/Encoding.md | 4 +- .../UserGuide/Data-Concept/Measurement-Template.md | 2 +- .../UserGuide/Ecosystem Integration/Spark IoTDB.md | 18 +- .../DML-Data-Manipulation-Language.md | 34 +- .../IoTDB-SQL-Language/Maintenance-Command.md | 4 +- .../UserGuide/System-Tools/Load-External-Tsfile.md | 38 +- .../System-Tools/Monitor-and-Log-Tools.md | 6 +- .../System-Tools/Performance-Tracing-Tool.md | 56 +- docs/UserGuide/System-Tools/Watermark-Tool.md | 2 +- docs/zh/SystemDesign/StorageEngine/MergeManager.md | 6 +- docs/zh/UserGuide/API/InfluxDB-Protocol.md | 249 ++ .../UserGuide/API/Programming-Java-Native-API.md | 16 +- .../Administration-Management/Administration.md | 8 +- docs/zh/UserGuide/Advanced-Features/Triggers.md | 14 +- .../Advanced-Features/UDF-User-Defined-Function.md | 6 +- docs/zh/UserGuide/Appendix/Config-Manual.md | 18 - docs/zh/UserGuide/Appendix/SQL-Reference.md | 24 +- docs/zh/UserGuide/Cluster/Cluster-Setup.md | 8 +- docs/zh/UserGuide/Data-Concept/Data-Type.md | 14 +- docs/zh/UserGuide/Data-Concept/Encoding.md | 4 +- .../UserGuide/Data-Concept/Measurement-Template.md | 2 +- .../UserGuide/Ecosystem Integration/Spark IoTDB.md | 18 +- .../DML-Data-Manipulation-Language.md | 28 +- .../IoTDB-SQL-Language/Maintenance-Command.md | 3 +- .../UserGuide/System-Tools/Load-External-Tsfile.md | 38 +- .../System-Tools/Monitor-and-Log-Tools.md | 4 +- .../System-Tools/Performance-Tracing-Tool.md | 58 +- docs/zh/UserGuide/System-Tools/Watermark-Tool.md | 2 +- .../main/java/org/apache/iotdb/JDBCExample.java | 6 +- .../org/apache/iotdb/PrepareStatementDemo.java | 2 +- example/trigger/pom.xml | 2 +- example/udf/pom.xml | 2 +- .../flink/tsfile/RowTsFileInputFormatTest.java | 14 +- hive-connector/pom.xml | 4 +- influxdb-protocol/pom.xml | 162 + .../org/apache/iotdb/influxdb/IoTDBInfluxDB.java | 422 +++ .../iotdb/influxdb/IoTDBInfluxDBFactory.java | 70 + .../iotdb/influxdb/example/InfluxDBExample.java | 102 + .../protocol/constant/InfluxDBConstant.java | 14 +- .../iotdb/influxdb/protocol/dto/IoTDBPoint.java | 55 +- .../iotdb/influxdb/protocol/dto/SessionPoint.java | 47 +- .../protocol/impl/IoTDBInfluxDBService.java | 148 + .../iotdb/influxdb/protocol/meta/MetaManager.java | 181 + .../influxdb/protocol/meta/MetaManagerHolder.java | 54 + .../influxdb/protocol/meta/TagInfoRecords.java | 85 + .../influxdb/protocol/util/DataTypeUtils.java | 86 + .../influxdb/protocol/util/ParameterUtils.java | 28 +- .../influxdb/integration/IoTDBInfluxDBIT.java | 244 ++ .../iotdb/jdbc/AbstractIoTDBJDBCResultSet.java | 22 + .../main/java/org/apache/iotdb/jdbc/Constant.java | 12 + .../org/apache/iotdb/jdbc/IoTDBConnection.java | 6 +- .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 25 + .../org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java | 11 + .../iotdb/jdbc/IoTDBNonAlignJDBCResultSet.java | 6 + .../java/org/apache/iotdb/jdbc/IoTDBStatement.java | 16 +- .../org/apache/iotdb/jdbc/IoTDBTracingInfo.java | 103 + jenkins.pom | 2 +- pom.xml | 78 +- server/pom.xml | 3 +- .../resources/conf/iotdb-engine.properties | 96 +- server/src/assembly/resources/conf/logback.xml | 20 + .../resources/tools/tsfileToolSet/settle.bat | 62 + .../resources/tools/tsfileToolSet/settle.sh | 43 +- .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 285 +- .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java | 6 +- .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 102 +- .../iotdb/db/conf/adapter/CompressionRatio.java | 2 +- .../db/cq/ContinuousQueryTaskPoolManager.java | 2 +- .../org/apache/iotdb/db/engine/StorageEngine.java | 85 +- .../apache/iotdb/db/engine/cache/ChunkCache.java | 4 +- .../db/engine/cache/TimeSeriesMetadataCache.java | 15 +- .../compaction/CompactionMergeTaskPoolManager.java | 195 -- .../CompactionPriority.java} | 11 +- .../db/engine/compaction/CompactionScheduler.java | 299 ++ .../compaction/CompactionTaskComparator.java | 109 + .../engine/compaction/CompactionTaskManager.java | 265 ++ .../db/engine/compaction/TsFileManagement.java | 460 --- .../AbstractCrossSpaceCompactionRecoverTask.java | 16 +- .../AbstractCrossSpaceCompactionSelector.java | 51 + .../cross/AbstractCrossSpaceCompactionTask.java | 96 + .../compaction/cross/CrossCompactionStrategy.java | 117 + .../cross/CrossSpaceCompactionTaskFactory.java | 58 + .../inplace/InplaceCompactionRecoverTask.java | 109 + .../cross/inplace/InplaceCompactionSelector.java | 152 + .../cross/inplace/InplaceCompactionTask.java | 251 ++ .../inplace/manage/CrossSpaceMergeContext.java} | 6 +- .../inplace/manage/CrossSpaceMergeResource.java} | 17 +- .../cross/inplace}/manage/MergeFuture.java | 10 +- .../cross/inplace}/manage/MergeManager.java | 66 +- .../cross/inplace}/manage/MergeManagerMBean.java | 2 +- .../cross/inplace}/manage/MergeThreadPool.java | 14 +- .../cross/inplace}/recover/LogAnalyzer.java | 34 +- .../cross/inplace}/recover/MergeLogger.java | 15 +- .../selector/ICrossSpaceMergeFileSelector.java} | 4 +- .../selector/IFileQueryMemMeasurement.java | 2 +- .../inplace}/selector/IMergePathSelector.java | 2 +- .../selector/MaxFileMergeFileSelector.java | 25 +- .../selector/MaxSeriesMergeFileSelector.java | 6 +- .../cross/inplace}/selector/MergeFileStrategy.java | 2 +- .../cross/inplace}/selector/NaivePathSelector.java | 2 +- .../cross/inplace/task/CrossSpaceMergeTask.java} | 40 +- .../cross/inplace}/task/MergeCallback.java | 2 +- .../cross/inplace}/task/MergeFileTask.java | 24 +- .../cross/inplace}/task/MergeMultiChunkTask.java | 43 +- .../cross/inplace/task/RecoverCrossMergeTask.java} | 24 +- .../AbstractInnerSpaceCompactionSelector.java | 52 + .../inner/AbstractInnerSpaceCompactionTask.java | 131 + .../compaction/inner/InnerCompactionStrategy.java | 108 + .../inner/InnerSpaceCompactionTaskFactory.java | 51 + .../SizeTieredCompactionRecoverTask.java | 151 + .../sizetiered/SizeTieredCompactionSelector.java | 200 ++ .../inner/sizetiered/SizeTieredCompactionTask.java | 239 ++ .../utils/InnerSpaceCompactionUtils.java} | 189 +- .../utils/SizeTieredCompactionLogAnalyzer.java} | 40 +- .../utils/SizeTieredCompactionLogger.java} | 19 +- .../level/LevelCompactionTsFileManagement.java | 884 ----- .../no/NoCompactionTsFileManagement.java | 290 -- .../task/AbstractCompactionSelector.java} | 23 +- .../compaction/task/AbstractCompactionTask.java | 89 + .../compaction/task/CompactionRecoverTask.java | 101 + .../engine/flush/pool/FlushSubTaskPoolManager.java | 1 + .../db/engine/flush/pool/FlushTaskPoolManager.java | 1 + .../iotdb/db/engine/memtable/AbstractMemTable.java | 16 +- .../db/engine/modification/ModificationFile.java | 11 + .../apache/iotdb/db/engine/settle/SettleLog.java | 116 + .../apache/iotdb/db/engine/settle/SettleTask.java | 108 + .../engine/storagegroup/StorageGroupProcessor.java | 661 ++-- .../db/engine/storagegroup/TsFileManager.java | 312 ++ .../engine/storagegroup/TsFileNameGenerator.java | 248 ++ .../db/engine/storagegroup/TsFileProcessor.java | 3 + .../db/engine/storagegroup/TsFileResource.java | 248 +- .../db/engine/storagegroup/TsFileResourceList.java | 443 +++ .../storagegroup/timeindex/DeviceTimeIndex.java | 70 +- .../storagegroup/timeindex/FileTimeIndex.java | 24 +- .../engine/storagegroup/timeindex/ITimeIndex.java | 24 + .../virtualSg/HashVirtualPartitioner.java | 6 - .../virtualSg/VirtualStorageGroupManager.java | 33 +- .../WriteLockFailedException.java} | 9 +- .../metadata/DifferentTemplateException.java} | 23 +- .../metadata/NoTemplateOnMNodeException.java} | 15 +- .../metadata/TemplateIsInUseException.java} | 15 +- .../query/QueryTimeoutRuntimeException.java | 4 +- .../org/apache/iotdb/db/metadata/MManager.java | 112 +- .../org/apache/iotdb/db/metadata/PartialPath.java | 18 +- .../iotdb/db/metadata/logfile/MLogUpgrader.java | 290 ++ .../iotdb/db/metadata/logfile/MLogWriter.java | 205 +- .../iotdb/db/metadata/mnode/IEntityMNode.java | 19 - .../org/apache/iotdb/db/metadata/mnode/IMNode.java | 4 +- .../iotdb/db/metadata/mnode/InternalMNode.java | 13 - .../org/apache/iotdb/db/metadata/mnode/MNode.java | 10 + .../mnode/{IEntityMNode.java => MNodeUtils.java} | 58 +- .../iotdb/db/metadata/mnode/MeasurementMNode.java | 5 - .../org/apache/iotdb/db/metadata/mtree/MTree.java | 96 +- .../apache/iotdb/db/metadata/utils/MetaUtils.java | 11 - .../org/apache/iotdb/db/monitor/StatMonitor.java | 27 +- .../iotdb/db/qp/constant/FilterConstant.java | 20 +- .../apache/iotdb/db/qp/constant/SQLConstant.java | 4 + .../apache/iotdb/db/qp/executor/PlanExecutor.java | 113 +- .../org/apache/iotdb/db/qp/logical/Operator.java | 6 +- .../qp/logical/crud/AggregationQueryOperator.java | 12 +- .../iotdb/db/qp/logical/crud/QueryOperator.java | 37 +- .../db/qp/logical/crud/SpecialClauseComponent.java | 21 +- .../iotdb/db/qp/logical/sys/SettleOperator.java | 71 + .../apache/iotdb/db/qp/physical/PhysicalPlan.java | 3 +- .../iotdb/db/qp/physical/crud/AggregationPlan.java | 81 +- .../iotdb/db/qp/physical/crud/InsertPlan.java | 3 + .../db/qp/physical/crud/InsertTabletPlan.java | 10 +- .../iotdb/db/qp/physical/crud/QueryPlan.java | 17 +- .../qp/physical/crud/UnsetSchemaTemplatePlan.java | 96 + .../physical/sys/SettlePlan.java} | 56 +- .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 3523 ++++++++++---------- .../iotdb/db/qp/strategy/LogicalGenerator.java | 12 +- .../qp/strategy/optimizer/ConcatPathOptimizer.java | 20 +- .../iotdb/db/qp/utils/GroupByLevelController.java | 150 + .../apache/iotdb/db/qp/utils/WildcardsRemover.java | 3 +- .../iotdb/db/query/context/QueryContext.java | 79 +- .../iotdb/db/query/control/FileReaderManager.java | 2 - .../db/query/control/QueryResourceManager.java | 36 +- .../iotdb/db/query/control/QueryTimeManager.java | 142 +- .../apache/iotdb/db/query/control/TracingInfo.java | 85 - .../iotdb/db/query/control/TracingManager.java | 229 -- .../control/tracing/TracingConstant.java} | 22 +- .../db/query/control/tracing/TracingInfo.java | 156 + .../db/query/control/tracing/TracingManager.java | 82 + .../db/query/dataset/AlignByDeviceDataSet.java | 4 +- .../dataset/RawQueryDataSetWithoutValueFilter.java | 9 +- .../dataset/groupby/GroupByEngineDataSet.java | 6 + ...ByTimeDataSet.java => GroupByLevelDataSet.java} | 59 +- .../groupby/GroupByWithValueFilterDataSet.java | 26 +- .../groupby/GroupByWithoutValueFilterDataSet.java | 25 +- .../db/query/executor/AggregationExecutor.java | 33 +- .../iotdb/db/query/executor/QueryRouter.java | 21 +- .../db/query/executor/RawDataQueryExecutor.java | 1 + .../query/expression/unary/FunctionExpression.java | 7 + .../iotdb/db/query/pool/QueryTaskPoolManager.java | 2 +- .../resource/CachedUnseqResourceMergeReader.java | 1 + .../iotdb/db/query/reader/series/SeriesReader.java | 36 +- .../reader/universal/PriorityMergeReader.java | 13 +- .../iotdb/db/query/udf/core/layer/SafetyLine.java | 3 + .../row/ElasticSerializableRowRecordList.java | 33 +- .../row/SerializableRowRecordList.java | 8 + .../flush/pool => rescon}/AbstractPoolManager.java | 2 +- .../iotdb/db/rescon/TsFileResourceManager.java | 121 + .../java/org/apache/iotdb/db/service/IoTDB.java | 11 +- .../org/apache/iotdb/db/service/ServiceType.java | 1 + .../org/apache/iotdb/db/service/SettleService.java | 190 ++ .../org/apache/iotdb/db/service/TSServiceImpl.java | 135 +- .../receiver/recover/SyncReceiverLogAnalyzer.java | 2 +- .../db/sync/receiver/transfer/SyncServiceImpl.java | 2 +- .../db/sync/sender/manage/SyncFileManager.java | 4 +- .../iotdb/db/sync/sender/transfer/SyncClient.java | 34 +- .../apache/iotdb/db/tools/TsFileRewriteTool.java | 117 +- .../db/tools/settle/TsFileAndModSettleTool.java | 360 ++ .../db/tools/upgrade/TsFileOnlineUpgradeTool.java | 73 +- .../org/apache/iotdb/db/utils/FilePathUtils.java | 261 -- .../java/org/apache/iotdb/db/utils/MergeUtils.java | 8 +- .../runtime/WindowEvaluationTaskPoolManager.java | 2 +- .../db/writelog/node/ExclusiveWriteLogNode.java | 1 - .../db/conf/adapter/CompressionRatioTest.java | 2 +- .../org/apache/iotdb/db/constant/TestConstant.java | 30 + .../MergeTest.java => cache/ChunkCacheTest.java} | 193 +- .../engine/compaction/CompactionSchedulerTest.java | 2093 ++++++++++++ .../compaction/CompactionTaskComparatorTest.java | 313 ++ .../compaction/LevelCompactionMergeTest.java | 375 --- .../engine/compaction/LevelCompactionModsTest.java | 135 - .../compaction/LevelCompactionSelectorTest.java | 76 - .../LevelCompactionTsFileManagementTest.java | 228 -- .../NoCompactionTsFileManagementTest.java | 235 -- .../compaction/cross/CrossSpaceCompactionTest.java | 720 ++++ .../cross}/MaxFileMergeFileSelectorTest.java | 45 +- .../cross}/MaxSeriesMergeFileSelectorTest.java | 18 +- .../{merge => compaction/cross}/MergeLogTest.java | 12 +- .../cross}/MergeManagerTest.java | 40 +- .../cross}/MergeOverLapTest.java | 67 +- .../{merge => compaction/cross}/MergePerfTest.java | 12 +- .../{merge => compaction/cross}/MergeTaskTest.java | 106 +- .../{merge => compaction/cross}/MergeTest.java | 53 +- .../cross}/MergeUpgradeTest.java | 8 +- .../InnerCompactionCacheTest.java} | 71 +- .../InnerCompactionChunkTest.java} | 66 +- .../InnerCompactionLogTest.java} | 38 +- .../InnerCompactionMoreDataTest.java} | 97 +- .../inner/InnerCompactionSchedulerTest.java | 135 + .../InnerCompactionTest.java} | 124 +- .../compaction/inner/InnerSeqCompactionTest.java | 934 ++++++ .../inner/InnerSpaceCompactionUtilsTest.java | 135 + .../compaction/inner/InnerUnseqCompactionTest.java | 780 +++++ .../SizeTieredCompactionRecoverTest.java} | 608 ++-- .../sizetiered/SizeTieredCompactionTest.java} | 103 +- .../task/FakedCrossSpaceCompactionTask.java | 71 + .../task/FakedCrossSpaceCompactionTaskFactory.java | 56 + .../task/FakedInnerSpaceCompactionTask.java | 90 + .../task/FakedInnerSpaceCompactionTaskFactory.java | 51 + .../compaction/utils/CompactionCheckerUtils.java | 472 +++ .../compaction/utils/CompactionClearUtils.java | 59 + .../utils/CompactionFileGeneratorUtils.java | 246 ++ .../compaction/utils/CompactionOverlapType.java} | 12 +- .../utils/CompactionTimeseriesType.java} | 11 +- .../engine/modification/DeletionFileNodeTest.java | 10 - .../db/engine/modification/DeletionQueryTest.java | 12 - .../engine/storagegroup/FakedTsFileResource.java | 76 + .../storagegroup/StorageGroupProcessorTest.java | 49 +- .../iotdb/db/engine/storagegroup/TTLTest.java | 12 - .../db/engine/storagegroup/TsFileManagerTest.java | 240 ++ .../engine/storagegroup/TsFileProcessorTest.java | 15 +- .../storagegroup/TsFileResourceListTest.java | 185 + .../iotdb/db/integration/IOTDBGroupByIT.java | 7 - .../iotdb/db/integration/IoTDBAlignByDeviceIT.java | 8 - .../iotdb/db/integration/IoTDBCompleteIT.java | 9 +- .../db/integration/IoTDBContinuousQueryIT.java | 52 +- .../db/integration/IoTDBDeleteTimeseriesIT.java | 7 - .../iotdb/db/integration/IoTDBFilePathUtilsIT.java | 8 +- .../apache/iotdb/db/integration/IoTDBFillIT.java | 6 - .../iotdb/db/integration/IoTDBGroupByMonthIT.java | 8 - .../iotdb/db/integration/IoTDBGroupByUnseqIT.java | 4 - .../org/apache/iotdb/db/integration/IoTDBInIT.java | 24 +- .../iotdb/db/integration/IoTDBLargeDataIT.java | 7 - ...IoTDBLoadExternalTsFileWithTimePartitionIT.java | 34 +- .../db/integration/IoTDBLoadExternalTsfileIT.java | 72 +- .../integration/IoTDBManageTsFileResourceIT.java | 292 ++ .../apache/iotdb/db/integration/IoTDBMergeIT.java | 89 +- .../iotdb/db/integration/IoTDBMultiDeviceIT.java | 7 - .../IoTDBMultiOverlappedChunkInUnseqIT.java | 11 +- .../db/integration/IoTDBMultiOverlappedPageIT.java | 7 - .../iotdb/db/integration/IoTDBMultiSeriesIT.java | 7 - .../db/integration/IoTDBMultiStatementsIT.java | 7 - .../iotdb/db/integration/IoTDBNestedQueryIT.java | 28 +- .../db/integration/IoTDBNewTsFileCompactionIT.java | 51 +- .../db/integration/IoTDBOverlappedPageIT.java | 11 - .../iotdb/db/integration/IoTDBQueryDemoIT.java | 20 +- .../iotdb/db/integration/IoTDBQueryTimeoutIT.java | 4 +- .../db/integration/IoTDBRemovePartitionIT.java | 4 +- .../iotdb/db/integration/IoTDBRestartIT.java | 4 +- .../iotdb/db/integration/IoTDBSelectIntoIT.java | 2 - .../db/integration/IoTDBSequenceDataQueryIT.java | 20 - .../iotdb/db/integration/IoTDBSeriesReaderIT.java | 30 - .../IoTDBSetSystemReadOnlyWritableIT.java | 20 +- .../apache/iotdb/db/integration/IoTDBSettleIT.java | 94 + .../iotdb/db/integration/IoTDBSimpleQueryIT.java | 37 + ...ionIT.java => IoTDBSizeTieredCompactionIT.java} | 498 ++- .../iotdb/db/integration/IoTDBTracingIT.java | 62 +- .../db/integration/IoTDBTriggerExecutionIT.java | 178 +- .../db/integration/IoTDBTriggerManagementIT.java | 8 +- .../iotdb/db/integration/IoTDBUDFManagementIT.java | 26 +- .../db/integration/IoTDBUDFWindowQueryIT.java | 20 +- .../integration/IoTDBUDTFAlignByTimeQueryIT.java | 18 +- .../db/integration/IoTDBUDTFHybridQueryIT.java | 10 +- .../db/integration/IoTDBUDTFNonAlignQueryIT.java | 6 +- .../aggregation/IoTDBAggregationByLevelIT.java | 218 +- .../aggregation/IoTDBAggregationIT.java | 7 - .../aggregation/IoTDBAggregationLargeDataIT.java | 7 - .../aggregation/IoTDBAggregationSmallDataIT.java | 8 - .../db/integration/auth/IoTDBAuthorizationIT.java | 106 +- .../iotdb/db/metadata/MManagerAdvancedTest.java | 12 +- .../iotdb/db/metadata/MManagerBasicTest.java | 128 +- .../org/apache/iotdb/db/metadata/MTreeTest.java | 18 +- .../apache/iotdb/db/metadata/PartialPathTest.java | 7 + .../iotdb/db/metadata/mlog/MLogUpgraderTest.java | 104 + .../iotdb/db/qp/logical/IndexLogicalPlanTest.java | 156 - .../iotdb/db/qp/other/TSPlanContextAuthorTest.java | 8 +- .../physical/IndexSubMatchingPhysicalPlanTest.java | 163 - .../IndexWholeMatchingPhysicalPlanTest.java | 168 - .../iotdb/db/qp/physical/PhysicalPlanTest.java | 30 +- .../iotdb/db/qp/sql/IoTDBsqlVisitorTest.java | 12 +- .../iotdb/db/query/control/TracingManagerTest.java | 115 - .../query/dataset/UDTFAlignByTimeDataSetTest.java | 8 +- .../reader/series/SeriesAggregateReaderTest.java | 9 +- .../reader/series/SeriesReaderByTimestampTest.java | 9 +- .../db/query/reader/series/SeriesReaderTest.java | 8 +- .../query/reader/series/SeriesReaderTestUtil.java | 47 +- .../iotdb/db/rescon/ResourceManagerTest.java | 401 +++ .../db/sync/receiver/load/FileLoaderTest.java | 9 +- .../db/sync/sender/manage/SyncFileManagerTest.java | 2 +- .../sender/recover/SyncSenderLogAnalyzerTest.java | 2 +- .../db/sync/sender/transfer/SyncClientTest.java | 2 +- .../iotdb/db/tools/TsFileAndModSettleToolTest.java | 238 ++ .../apache/iotdb/db/utils/EnvironmentUtils.java | 18 +- .../iotdb/db/utils/TsFileRewriteToolTest.java | 76 +- .../db/writelog/recover/SeqTsFileRecoverTest.java | 10 +- .../java/org/apache/iotdb/rpc/TSStatusCode.java | 3 + .../main/java/org/apache/iotdb/session/Config.java | 4 + .../org/apache/iotdb/session/InsertConsumer.java | 21 +- .../java/org/apache/iotdb/session/Session.java | 266 +- .../apache/iotdb/session/SessionConnection.java | 21 + .../org/apache/iotdb/session/pool/SessionPool.java | 37 +- .../iotdb/session/{ => util}/SessionUtils.java | 2 +- .../org/apache/iotdb/session/util/ThreadUtils.java | 45 + .../iotdb/session/IoTDBSessionComplexIT.java | 4 +- .../apache/iotdb/session/IoTDBSessionSimpleIT.java | 3 +- .../session/IoTDBSessionVectorABDeviceIT.java | 7 +- .../session/IoTDBSessionVectorAggregationIT.java | 7 +- .../IoTDBSessionVectorAggregationWithUnSeqIT.java | 7 +- .../java/org/apache/iotdb/session/SessionTest.java | 94 + .../apache/iotdb/session/pool/SessionPoolTest.java | 35 +- .../apache/iotdb/session/util/ThreadUtilsTest.java | 24 +- site/pom.xml | 12 +- site/src/main/.vuepress/config.js | 3 +- spark-iotdb-connector/Readme.md | 168 - spark-tsfile/README.md | 335 -- .../test/java/org/apache/iotdb/db/sql/Cases.java | 242 +- thrift-cluster/src/main/thrift/cluster.thrift | 8 +- thrift/rpc-changelist.md | 22 + thrift/src/main/thrift/rpc.thrift | 25 +- .../iotdb/tsfile/file/metadata/ChunkMetadata.java | 17 +- .../read/controller/CachedChunkLoaderImpl.java | 3 +- .../java/org/apache/iotdb/tsfile/utils/BitMap.java | 37 +- .../apache/iotdb/tsfile/utils/FilePathUtils.java | 126 + .../tsfile/write/chunk/ChunkGroupWriterImpl.java | 2 +- .../iotdb/tsfile/write/chunk/ChunkWriterImpl.java | 2 +- .../iotdb/tsfile/write/chunk/IChunkWriter.java | 2 +- .../tsfile/write/chunk/VectorChunkWriterImpl.java | 3 +- .../write/writer/RestorableTsFileIOWriter.java | 41 + .../iotdb/tsfile/write/writer/TsFileIOWriter.java | 2 +- .../apache/iotdb/tsfile/constant/TestConstant.java | 4 + .../iotdb/tsfile/read/ReadOnlyTsFileTest.java | 7 +- .../org/apache/iotdb/tsfile/read/ReadTest.java | 3 +- .../iotdb/tsfile/read/TimePlainEncodeReadTest.java | 3 +- .../read/query/timegenerator/ReadWriteTest.java | 8 +- .../timegenerator/TimeGeneratorReadEmptyTest.java | 7 +- .../timegenerator/TimeGeneratorReadWriteTest.java | 7 +- .../TsFileGeneratorForSeriesReaderByTimestamp.java | 21 +- .../apache/iotdb/tsfile/utils/FileGenerator.java | 36 +- .../iotdb/tsfile}/utils/FilePathUtilsTest.java | 36 +- .../iotdb/tsfile/utils/TsFileGeneratorForTest.java | 39 +- .../tsfile/write/DefaultSchemaTemplateTest.java | 6 +- ...SameMeasurementsWithDifferentDataTypesTest.java | 7 +- .../iotdb/tsfile/write/TsFileIOWriterTest.java | 142 +- .../iotdb/tsfile/write/TsFileReadWriteTest.java | 7 +- .../iotdb/tsfile/write/TsFileWriterTest.java | 17 +- .../write/writer/ForceAppendTsFileWriterTest.java | 8 +- .../write/writer/RestorableTsFileIOWriterTest.java | 79 +- .../write/writer/VectorChunkWriterImplTest.java | 4 +- zeppelin-interpreter/pom.xml | 2 +- 450 files changed, 25967 insertions(+), 12690 deletions(-) diff --cc server/src/test/java/org/apache/iotdb/db/integration/IoTDBTriggerExecutionIT.java index 7492f62,18fcb95..de4d66f --- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBTriggerExecutionIT.java +++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBTriggerExecutionIT.java @@@ -31,12 -31,12 +31,6 @@@ import org.apache.iotdb.tsfile.file.met import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding; --import org.junit.After; --import org.junit.Before; --import org.junit.Test; --import org.slf4j.Logger; --import org.slf4j.LoggerFactory; -- import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; @@@ -44,6 -44,6 +38,12 @@@ import java.sql.Statement import java.util.Arrays; import java.util.Collections; ++import org.junit.After; ++import org.junit.Before; ++import org.junit.Test; ++import org.slf4j.Logger; ++import org.slf4j.LoggerFactory; ++ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@@ -205,32 -202,41 +202,41 @@@ public class IoTDBTriggerExecutionIT DriverManager.getConnection( Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root"); Statement statement = connection.createStatement()) { - Thread.sleep(500); + waitCountIncreaseBy(500); statement.execute( - "create trigger trigger-1 before insert on root.vehicle.d1.s1 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_1 before insert on root.vehicle.d1.s1 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-2 after insert on root.vehicle.d1.s2 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_2 after insert on root.vehicle.d1.s2 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-3 before insert on root.vehicle.d1.s3 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_3 before insert on root.vehicle.d1.s3 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); - Thread.sleep(500); + waitCountIncreaseBy(500); + // IOTDB-1825: if the background data generator's connection is closed, the following checks + // will be meaningless, in which case we ignore the checks + if (exception != null) { + return; + } int[] counters1 = getCounters(3); - LOGGER.info(Arrays.toString(counters1)); for (int i = 0; i < 3; ++i) { assertTrue(Counter.BASE < counters1[i]); } - Thread.sleep(500); + waitCountIncreaseBy(500); statement.execute( - "create trigger trigger-4 after insert on root.vehicle.d1.s4 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_4 after insert on root.vehicle.d1.s4 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-5 before insert on root.vehicle.d1.s5 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_5 before insert on root.vehicle.d1.s5 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-6 after insert on root.vehicle.d1.s6 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_6 after insert on root.vehicle.d1.s6 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); + // IOTDB-1825: if the background data generator's connection is closed, the following checks + // will be meaningless, in which case we ignore the checks + if (exception != null) { + return; + } int[] counters2 = getCounters(3); LOGGER.info(Arrays.toString(counters2)); for (int i = 0; i < 3; ++i) { @@@ -251,48 -257,58 +257,58 @@@ DriverManager.getConnection( Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root"); Statement statement = connection.createStatement()) { - Thread.sleep(500); + waitCountIncreaseBy(500); statement.execute( - "create trigger trigger-1 before insert on root.vehicle.d1.s1 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_1 before insert on root.vehicle.d1.s1 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-2 after insert on root.vehicle.d1.s2 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_2 after insert on root.vehicle.d1.s2 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-3 before insert on root.vehicle.d1.s3 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_3 before insert on root.vehicle.d1.s3 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); - Thread.sleep(500); + waitCountIncreaseBy(500); + // IOTDB-1825: if the background data generator's connection is closed, the following checks + // will be meaningless, in which case we ignore the checks + if (exception != null) { + return; + } int[] counters1 = getCounters(3); LOGGER.info(Arrays.toString(counters1)); for (int i = 0; i < 3; ++i) { assertTrue(Counter.BASE < counters1[i]); } - Thread.sleep(100); + waitCountIncreaseBy(100); - statement.execute("drop trigger trigger-1"); - statement.execute("drop trigger trigger-2"); - statement.execute("drop trigger trigger-3"); + statement.execute("drop trigger trigger_1"); + statement.execute("drop trigger trigger_2"); + statement.execute("drop trigger trigger_3"); - Thread.sleep(100); + waitCountIncreaseBy(100); statement.execute( - "create trigger trigger_1 before insert on root.vehicle.d1.s1 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); - "create trigger trigger-1 before insert on root.vehicle.d1.s1 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); ++ "create trigger trigger_1 before insert on root.vehicle.d1.s1 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); statement.execute( - "create trigger trigger_2 after insert on root.vehicle.d1.s2 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); - "create trigger trigger-2 after insert on root.vehicle.d1.s2 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); ++ "create trigger trigger_2 after insert on root.vehicle.d1.s2 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); statement.execute( - "create trigger trigger_3 before insert on root.vehicle.d1.s3 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); - Thread.sleep(100); - "create trigger trigger-3 before insert on root.vehicle.d1.s3 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); ++ "create trigger trigger_3 before insert on root.vehicle.d1.s3 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + waitCountIncreaseBy(100); - statement.execute("drop trigger trigger-1"); - statement.execute("drop trigger trigger-2"); - statement.execute("drop trigger trigger-3"); + statement.execute("drop trigger trigger_1"); + statement.execute("drop trigger trigger_2"); + statement.execute("drop trigger trigger_3"); - Thread.sleep(100); + waitCountIncreaseBy(100); statement.execute( - "create trigger trigger_1 before insert on root.vehicle.d1.s1 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); - "create trigger trigger-1 before insert on root.vehicle.d1.s1 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); ++ "create trigger trigger_1 before insert on root.vehicle.d1.s1 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); statement.execute( - "create trigger trigger_2 after insert on root.vehicle.d1.s2 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); - "create trigger trigger-2 after insert on root.vehicle.d1.s2 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); ++ "create trigger trigger_2 after insert on root.vehicle.d1.s2 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); statement.execute( - "create trigger trigger_3 before insert on root.vehicle.d1.s3 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); - "create trigger trigger-3 before insert on root.vehicle.d1.s3 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); ++ "create trigger trigger_3 before insert on root.vehicle.d1.s3 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); - Thread.sleep(500); + waitCountIncreaseBy(500); + // IOTDB-1825: if the background data generator's connection is closed, the following checks + // will be meaningless, in which case we ignore the checks + if (exception != null) { + return; + } int[] counters2 = getCounters(3); LOGGER.info(Arrays.toString(counters2)); for (int i = 0; i < 3; ++i) { @@@ -313,35 -329,35 +329,35 @@@ DriverManager.getConnection( Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root"); Statement statement = connection.createStatement()) { - Thread.sleep(500); + waitCountIncreaseBy(500); statement.execute( - "create trigger trigger-1 before insert on root.vehicle.d1.s1 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_1 before insert on root.vehicle.d1.s1 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-2 after insert on root.vehicle.d1.s2 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_2 after insert on root.vehicle.d1.s2 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-3 before insert on root.vehicle.d1.s3 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_3 before insert on root.vehicle.d1.s3 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-4 after insert on root.vehicle.d1.s4 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_4 after insert on root.vehicle.d1.s4 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-5 before insert on root.vehicle.d1.s5 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_5 before insert on root.vehicle.d1.s5 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-6 after insert on root.vehicle.d1.s6 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_6 after insert on root.vehicle.d1.s6 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); - Thread.sleep(500); + waitCountIncreaseBy(500); - statement.execute("stop trigger trigger-1"); - statement.execute("stop trigger trigger-2"); - statement.execute("stop trigger trigger-3"); + statement.execute("stop trigger trigger_1"); + statement.execute("stop trigger trigger_2"); + statement.execute("stop trigger trigger_3"); int[] counters1 = getCounters(6); LOGGER.info(Arrays.toString(counters1)); - Thread.sleep(500); + waitCountIncreaseBy(500); - statement.execute("stop trigger trigger-4"); - statement.execute("stop trigger trigger-5"); - statement.execute("stop trigger trigger-6"); + statement.execute("stop trigger trigger_4"); + statement.execute("stop trigger trigger_5"); + statement.execute("stop trigger trigger_6"); int[] counters2 = getCounters(6); LOGGER.info(Arrays.toString(counters2)); @@@ -352,12 -374,17 +374,17 @@@ assertTrue(counters1[i] < counters2[i]); } - statement.execute("start trigger trigger-1"); - statement.execute("start trigger trigger-2"); - statement.execute("start trigger trigger-3"); + statement.execute("start trigger trigger_1"); + statement.execute("start trigger trigger_2"); + statement.execute("start trigger trigger_3"); - Thread.sleep(500); + waitCountIncreaseBy(500); + // IOTDB-1825: if the background data generator's connection is closed, the following checks + // will be meaningless, in which case we ignore the checks + if (exception != null) { + return; + } int[] counters3 = getCounters(6); LOGGER.info(Arrays.toString(counters3)); for (int i = 0; i < 3; ++i) { @@@ -367,29 -394,39 +394,39 @@@ assertEquals(counters2[i], counters3[i]); } - statement.execute("start trigger trigger-4"); - statement.execute("start trigger trigger-5"); - statement.execute("start trigger trigger-6"); + statement.execute("start trigger trigger_4"); + statement.execute("start trigger trigger_5"); + statement.execute("start trigger trigger_6"); - Thread.sleep(500); + waitCountIncreaseBy(500); + // IOTDB-1825: if the background data generator's connection is closed, the following checks + // will be meaningless, in which case we ignore the checks + if (exception != null) { + return; + } int[] counters4 = getCounters(6); LOGGER.info(Arrays.toString(counters4)); for (int i = 0; i < 6; ++i) { assertTrue(counters3[i] < counters4[i]); } - statement.execute("stop trigger trigger-1"); - statement.execute("stop trigger trigger-2"); - statement.execute("stop trigger trigger-3"); - statement.execute("stop trigger trigger-4"); - statement.execute("stop trigger trigger-5"); - statement.execute("stop trigger trigger-6"); + statement.execute("stop trigger trigger_1"); + statement.execute("stop trigger trigger_2"); + statement.execute("stop trigger trigger_3"); + statement.execute("stop trigger trigger_4"); + statement.execute("stop trigger trigger_5"); + statement.execute("stop trigger trigger_6"); - Thread.sleep(500); + waitCountIncreaseBy(500); int[] counters5 = getCounters(6); - Thread.sleep(500); + waitCountIncreaseBy(500); int[] counters6 = getCounters(6); + // IOTDB-1825: if the background data generator's connection is closed, the following checks + // will be meaningless, in which case we ignore the checks + if (exception != null) { + return; + } assertEquals(Arrays.toString(counters5), Arrays.toString(counters6)); } catch (SQLException | TriggerManagementException e) { fail(e.getMessage()); @@@ -416,23 -453,28 +453,28 @@@ DriverManager.getConnection( Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root"); Statement statement = connection.createStatement()) { - Thread.sleep(500); + waitCountIncreaseBy(500); statement.execute( - "create trigger trigger-1 before insert on root.vehicle.d1.s1 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_1 before insert on root.vehicle.d1.s1 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-2 after insert on root.vehicle.d1.s2 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_2 after insert on root.vehicle.d1.s2 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-3 before insert on root.vehicle.d1.s3 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_3 before insert on root.vehicle.d1.s3 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-4 after insert on root.vehicle.d1.s4 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_4 after insert on root.vehicle.d1.s4 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-5 before insert on root.vehicle.d1.s5 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_5 before insert on root.vehicle.d1.s5 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-6 after insert on root.vehicle.d1.s6 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_6 after insert on root.vehicle.d1.s6 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); - Thread.sleep(500); + waitCountIncreaseBy(500); + // IOTDB-1825: if the background data generator's connection is closed, the following checks + // will be meaningless, in which case we ignore the checks + if (exception != null) { + return; + } int[] counters1 = getCounters(6); LOGGER.info(Arrays.toString(counters1)); for (int i = 0; i < 6; ++i) { @@@ -502,19 -546,19 +546,19 @@@ Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root"); Statement statement = connection.createStatement()) { statement.execute( - "create trigger trigger-1 before insert on root.vehicle.d1.s1 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_1 before insert on root.vehicle.d1.s1 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-2 after insert on root.vehicle.d1.s2 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_2 after insert on root.vehicle.d1.s2 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-3 before insert on root.vehicle.d1.s3 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_3 before insert on root.vehicle.d1.s3 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-4 after insert on root.vehicle.d1.s4 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_4 after insert on root.vehicle.d1.s4 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-5 before insert on root.vehicle.d1.s5 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_5 before insert on root.vehicle.d1.s5 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); statement.execute( - "create trigger trigger-6 after insert on root.vehicle.d1.s6 as 'org.apache.iotdb.db.engine.trigger.example.Counter'"); + "create trigger trigger_6 after insert on root.vehicle.d1.s6 as \'org.apache.iotdb.db.engine.trigger.example.Counter\'"); - Thread.sleep(500); + waitCountIncreaseBy(500); stopDataGenerator(); diff --cc server/src/test/java/org/apache/iotdb/db/integration/IoTDBTriggerManagementIT.java index 373b47c,ec9a238..f0c3d65 --- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBTriggerManagementIT.java +++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBTriggerManagementIT.java @@@ -33,16 -33,16 +33,16 @@@ import org.apache.iotdb.tsfile.file.met import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding; --import org.junit.After; --import org.junit.Before; --import org.junit.Test; -- import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; ++import org.junit.After; ++import org.junit.Before; ++import org.junit.Test; ++ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue;
