This is an automated email from the ASF dual-hosted git repository.
lancelly pushed a change to branch support_exists_and_correlate
in repository https://gitbox.apache.org/repos/asf/iotdb.git
from bb15ece8183 fix join check
add 2849b0c06e4 add rule in optimizer factory
add 708d1cfef2f fix visit project
add fc103314889 fix visit project
add edfba3a4bc6 fix visit project
add d701dea0cdb add IT and fix push into meta filter
add 7e61c554a74 add Some UTs
add 95a70b1ec03 Fix reload4j vulnerability issue (#14740)
add 41a49e7c1e6 Refactor procedure framework (simplified
StateMachineProcedure, and some other things) (#14683)
add 9f8bf85a212 Fix memory leak while inserting using sql
add 3cfe818a51b Fix mqtt logger issue (#14742)
add 3bdffe14d02 Fix mqtt logger issue (#14744)
add fcb3fac14c5 Added permission check for auto create table / add column
& auto create database / insert in tsFile load
add cac80f031c0 Fixed the bug that measurement is not replaced to null for
logical view's partial insert (#14743)
add 2448945529d Fix createView NPE issue when region migration #14746
add 8b6311bd042 Reduced the log of table cache update
add ace3d5baefb Settle task was selected without mods and ttl (#14731)
add 0f799c6b58f Subscription: intro table model subscription session and
consumer (#14406)
add 34914932924 Correct the Blob data cast error msg
add 9be5eeb18c3 Fix delete data TsFileProcessor NPE (#14748)
add 765cbb213b0 Extract "merge" method for SearchNode (#14736)
add ddd580d17ed Fix format IT
add 42531c3975f Bump jetty version to 9.4.57.v20241219
add 1cfd139cd23 Add optimizers for distinct in AggFunction
add a681582d6c8 Fix wrong deviceId after
PartialPath.concatAsMeasurementPath (#14750)
add 79b08072fd6 Fix region reconstruction IT (#14753)
add cb4c05c0319 Region group status refactor (#14738)
add 7f3b281f7d3 [remove datanode] Add Remove DataNode SQL (#14678)
add 3369e7a202e Let the DataPartitionTable be automatically cleanable
(#14737)
add 04810e27cc8 Fix predicate pushdown when dealing with ProjectNode
(#14754)
add 8c62821f1ad [Daily IT]: Daily IT adds a single region task (#14659)
add e56b34f3535 fix mods file metrics & fix the issue of missing mods with
concurrent deletion and compaction (#14765)
add 7af1b52dbcb Implemented TableDeviceSchemaCache#getLastEntries for query
add 93e83c63fbd Pipe: incorporate batch data into
TsFileInsertionEventScanParser memory control & Subscription: close data
container in tsfile event & bind memory block for tablet response & generate
empty tablet as initial response & offer subsequent tablet response before ack
& expose prefetch and backdoor configs & best-effort disorder control (#14752)
add cd771db0f4f merge master
add 2d04cdfa3e0 add Some UTs
No new revisions were added by this update.
Summary of changes:
.github/workflows/daily-it.yml | 60 ++-
.../apache/iotdb/SubscriptionSessionExample.java | 35 +-
.../TableModelSubscriptionSessionExample.java | 173 +++++++++
integration-test/pom.xml | 2 +
.../iotdb/it/env/cluster/ClusterConstant.java | 2 +
.../it/env/cluster/config/MppCommonConfig.java | 12 +
.../it/env/cluster/config/MppDataNodeConfig.java | 7 +
.../env/cluster/config/MppSharedCommonConfig.java | 14 +
.../iotdb/it/env/cluster/node/DataNodeWrapper.java | 6 +
.../it/env/remote/config/RemoteCommonConfig.java | 10 +
.../it/env/remote/config/RemoteDataNodeConfig.java | 5 +
.../org/apache/iotdb/itbase/env/CommonConfig.java | 4 +
.../apache/iotdb/itbase/env/DataNodeConfig.java | 2 +
.../IoTDBPartitionTableAutoCleanTest.java | 135 +++++++
.../commit/IoTDBRegionReconstructForIoTV1IT.java | 22 +-
.../IoTDBRemoveDataNodeITFramework.java | 93 ++++-
.../IoTDBRemoveDataNodeNormalIT.java | 25 +-
.../confignode/it/removedatanode/SQLModel.java | 9 +-
.../relational/it/db/it/IoTDBDeletionTableIT.java | 260 ++++++++++++-
.../scalar/IoTDBFormatFunctionTableIT.java | 18 +-
.../IoTDBTableAggregationFunctionDistinctIT.java | 374 ++++++++++++++++++
.../it/query/recent/IoTDBTableAggregationIT.java | 261 ++++++++++++-
.../IoTDBCorrelatedExistsSubqueryIT.java | 428 +++++++++++++++++++++
.../IoTDBUncorrelatedExistsSubqueryIT.java | 391 +++++++++++++++++++
.../subscription/it/AbstractSubscriptionIT.java | 2 +-
.../it/cluster/IoTDBSubscriptionRestartIT.java | 34 +-
.../it/dual/IoTDBSubscriptionConsumerGroupIT.java | 16 +-
.../it/dual/IoTDBSubscriptionTimePrecisionIT.java | 10 +-
.../it/dual/IoTDBSubscriptionTopicIT.java | 44 +--
.../it/local/IoTDBSubscriptionBasicIT.java | 42 +-
.../it/local/IoTDBSubscriptionDataTypeIT.java | 10 +-
.../it/local/IoTDBSubscriptionIdempotentIT.java | 24 +-
.../it/local/IoTDBSubscriptionTopicIT.java | 10 +-
.../it/triple/AbstractSubscriptionTripleIT.java | 2 +-
.../it/triple/IoTDBSubscriptionSharingIT.java | 32 +-
.../AbstractSubscriptionRegressionIT.java | 26 +-
.../IoTDBDefaultPullConsumerDataSetIT.java | 4 +-
.../IoTDBDefaultTsfilePushConsumerIT.java | 6 +-
.../IoTDBRootDatasetPushConsumerIT.java | 6 +-
.../IoTDBRootPullConsumeTsfileIT.java | 6 +-
...merPullConsumerWith1TopicShareProcessMixIT.java | 12 +-
.../param/IoTDBTestParamPullConsumerIT.java | 93 +++--
.../param/IoTDBTestParamPushConsumerIT.java | 47 +--
.../param/IoTDBTestParamSubscriptionSessionIT.java | 12 +-
.../regression/param/IoTDBTestParamTopicIT.java | 6 +-
...DBTestAutoCommitFalseDataSetPullConsumerIT.java | 6 +-
...TDBTestAutoCommitTrueDataSetPullConsumerIT.java | 6 +-
.../format/IoTDBDBDataSetPullConsumerIT.java | 6 +-
.../format/IoTDBDBTsfilePullConsumerIT.java | 6 +-
.../IoTDBAllTsDatasetPullConsumerIT.java | 4 +-
.../IoTDBAllTsTsfilePullConsumerIT.java | 6 +-
.../IoTDBAllTsfilePullConsumerSnapshotIT.java | 6 +-
.../IoTDBPathDeviceDataSetPullConsumerIT.java | 4 +-
.../IoTDBPathDeviceTsfilePullConsumerIT.java | 6 +-
.../IoTDBTimeTsDatasetPullConsumerIT.java | 4 +-
.../IoTDBTimeTsTsfilePullConsumerIT.java | 6 +-
.../IoTDBSnapshotDevicePullConsumerDataSetIT.java | 4 +-
.../IoTDBSnapshotDevicePullConsumerTsfileIT.java | 6 +-
...DBConsumer2With1TopicShareProcessDataSetIT.java | 6 +-
...TDBConsumer2With1TopicShareProcessTsfileIT.java | 6 +-
.../multi/IoTDBMultiGroupVsMultiConsumerIT.java | 12 +-
.../IoTDBOneConsumerMultiTopicsDatasetIT.java | 4 +-
.../multi/IoTDBOneConsumerMultiTopicsMixIT.java | 4 +-
.../multi/IoTDBOneConsumerMultiTopicsTsfileIT.java | 4 +-
.../pattern/IoTDBDBPatternPullConsumeTsfileIT.java | 6 +-
.../IoTDBDBPatternPullConsumerDataSetIT.java | 4 +-
.../IoTDBDefaultPatternPullConsumerDataSetIT.java | 4 +-
.../IoTDBDevicePatternPullConsumeTsfileIT.java | 6 +-
.../IoTDBDevicePatternPullConsumerDataSetIT.java | 4 +-
...DBMiddleMatch2PatternPullConsumerDataSetIT.java | 4 +-
...IoTDBMiddleMatchPatternPullConsumeTsfileIT.java | 6 +-
...TDBMiddleMatchPatternPullConsumerDataSetIT.java | 4 +-
.../IoTDBRootPatternPullConsumeTsfileIT.java | 6 +-
.../pattern/IoTDBTSPatternPullConsumeTsfileIT.java | 6 +-
.../IoTDBTSPatternPullConsumerDataSetIT.java | 4 +-
.../time/IoTDBAllPullConsumerDataSetIT.java | 4 +-
.../time/IoTDBHistoryPullConsumerDataSetIT.java | 4 +-
.../time/IoTDBRealTimePullConsumerDataSetIT.java | 4 +-
...oTDBTimeRangeAccuratePullConsumerDataSetIT.java | 4 +-
.../time/IoTDBTimeRangePullConsumerDataSetIT.java | 4 +-
.../format/IoTDBTestPushConsumeDataSetIT.java | 6 +-
.../IoTDBTestPushConsumeNoTargetDirTsfileIT.java | 6 +-
.../format/IoTDBTestPushConsumeTsfileIT.java | 6 +-
.../IoTDBLooseAllTsDatasetPushConsumerIT.java | 6 +-
...TDBLooseAllTsDatasetPushConsumerSnapshotIT.java | 6 +-
.../IoTDBLooseAllTsfilePushConsumerIT.java | 6 +-
.../IoTDBPathLooseDeviceTsfilePushConsumerIT.java | 6 +-
.../IoTDBPathLooseTsDatasetPushConsumerIT.java | 6 +-
.../IoTDBPathLooseTsfilePushConsumerIT.java | 6 +-
.../IoTDBPathTsLooseDatasetPushConsumerIT.java | 6 +-
.../IoTDBTimeLooseTsDatasetPushConsumerIT.java | 6 +-
.../IoTDBTimeLooseTsTsfilePushConsumerIT.java | 6 +-
.../IoTDBTimeLooseTsfilePushConsumerIT.java | 6 +-
.../IoTDBTimeTsLooseDatasetPushConsumerIT.java | 6 +-
...oTDBSnapshotTSPatternDatasetPushConsumerIT.java | 6 +-
...IoTDBSnapshotTSPatternTsfilePushConsumerIT.java | 6 +-
...DBConsumer2With1TopicShareProcessDataSetIT.java | 10 +-
...TDBConsumer2With1TopicShareProcessTsfileIT.java | 10 +-
.../multi/IoTDBMultiGroupVsMultiConsumerIT.java | 26 +-
.../IoTDBOneConsumerMultiTopicsDatasetIT.java | 6 +-
.../multi/IoTDBOneConsumerMultiTopicsMixIT.java | 6 +-
.../multi/IoTDBOneConsumerMultiTopicsTsfileIT.java | 6 +-
.../IoTDBDBPatternDatasetPushConsumerIT.java | 6 +-
.../IoTDBDBPatternTsfilePushConsumerIT.java | 6 +-
.../IoTDBDefaultPatternTsfilePushConsumerIT.java | 6 +-
.../IoTDBDevicePatternDatasetPushConsumerIT.java | 6 +-
.../IoTDBDevicePatternTsfilePushConsumerIT.java | 6 +-
.../IoTDBRootPatternDatasetPushConsumerIT.java | 6 +-
.../IoTDBTSPatternDatasetPushConsumerIT.java | 6 +-
.../IoTDBTSPatternTsfilePushConsumerIT.java | 6 +-
.../IoTDBHistoryRootDatasetPushConsumerIT.java | 6 +-
.../time/IoTDBHistoryRootTsFilePushConsumerIT.java | 6 +-
.../time/IoTDBRealTimeDBDatasetPushConsumerIT.java | 6 +-
.../time/IoTDBRealTimeDBTsfilePushConsumerIT.java | 6 +-
...DBTimeRangeAccurateDBDataSetPushConsumerIT.java | 6 +-
.../IoTDBTimeRangeDBDataSetPushConsumerIT.java | 6 +-
.../time/IoTDBTimeRangeDBTsfilePushConsumerIT.java | 6 +-
.../topic/IoTDBDataSet1TopicConsumerSpecialIT.java | 4 +-
.../regression/topic/IoTDBTestTopicNameIT.java | 4 +-
.../regression/user/IoTDBOtherUserConsumerIT.java | 6 +-
.../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java | 1 +
.../iotdb/rpc/subscription/config/TopicConfig.java | 22 ++
.../subscription/payload/poll/TabletsPayload.java | 11 +-
.../subscription/AbstractSubscriptionSession.java | 219 +++++++++++
.../subscription/ISubscriptionTableSession.java | 177 +++++++++
.../subscription/ISubscriptionTreeSession.java | 177 +++++++++
.../session/subscription/SubscriptionSession.java | 337 ----------------
.../SubscriptionSessionConnection.java | 26 +-
.../subscription/SubscriptionSessionWrapper.java | 72 ++++
.../subscription/SubscriptionTableSession.java | 113 ++++++
.../SubscriptionTableSessionBuilder.java | 66 ++++
.../subscription/SubscriptionTreeSession.java | 180 +++++++++
.../SubscriptionTreeSessionBuilder.java | 63 +++
.../consumer/ISubscriptionTablePullConsumer.java | 181 +++++++++
.../consumer/ISubscriptionTablePushConsumer.java | 86 +++++
.../consumer/ISubscriptionTreePullConsumer.java | 181 +++++++++
.../consumer/ISubscriptionTreePushConsumer.java | 86 +++++
.../AbstractSubscriptionConsumer.java} | 170 ++------
.../base/AbstractSubscriptionConsumerBuilder.java | 150 ++++++++
.../AbstractSubscriptionProvider.java} | 47 ++-
.../AbstractSubscriptionProviders.java} | 58 +--
.../AbstractSubscriptionPullConsumer.java} | 155 ++------
.../AbstractSubscriptionPullConsumerBuilder.java | 122 ++++++
.../AbstractSubscriptionPushConsumer.java} | 147 +------
.../AbstractSubscriptionPushConsumerBuilder.java | 139 +++++++
.../SubscriptionExecutorServiceManager.java | 2 +-
.../consumer/table/SubscriptionTableProvider.java | 49 +++
.../table/SubscriptionTablePullConsumer.java | 152 ++++++++
.../SubscriptionTablePullConsumerBuilder.java | 125 ++++++
.../table/SubscriptionTablePushConsumer.java | 95 +++++
.../SubscriptionTablePushConsumerBuilder.java | 138 +++++++
.../consumer/tree/SubscriptionTreeProvider.java | 49 +++
.../tree/SubscriptionTreePullConsumer.java | 317 +++++++++++++++
.../tree/SubscriptionTreePullConsumerBuilder.java | 124 ++++++
.../tree/SubscriptionTreePushConsumer.java | 290 ++++++++++++++
.../tree/SubscriptionTreePushConsumerBuilder.java | 139 +++++++
.../session/subscription/model/Subscription.java | 3 +-
.../iotdb/session/subscription/model/Topic.java | 2 +-
.../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 1 +
.../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 7 +-
.../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 | 4 +
.../iotdb/confignode/conf/ConfigNodeConfig.java | 9 +
.../consensus/request/ConfigPhysicalPlan.java | 4 +
.../consensus/request/ConfigPhysicalPlanType.java | 1 +
.../partition/AutoCleanPartitionTablePlan.java | 99 +++++
.../iotdb/confignode/manager/ProcedureManager.java | 6 +
.../iotdb/confignode/manager/TTLManager.java | 11 +
.../confignode/manager/load/cache/LoadCache.java | 13 +-
.../load/cache/region/RegionGroupCache.java | 39 +-
.../manager/partition/PartitionManager.java | 13 +-
.../manager/partition/RegionGroupStatus.java | 25 +-
.../iotdb/confignode/persistence/TTLInfo.java | 16 +
.../persistence/executor/ConfigPlanExecutor.java | 3 +
.../partition/DatabasePartitionTable.java | 10 +
.../persistence/partition/PartitionInfo.java | 19 +
.../persistence/schema/ClusterSchemaInfo.java | 6 +-
.../confignode/procedure/InternalProcedure.java | 5 -
.../procedure/PartitionTableAutoCleaner.java | 81 ++++
.../iotdb/confignode/procedure/Procedure.java | 78 ----
.../confignode/procedure/ProcedureExecutor.java | 115 ++----
.../procedure/impl/StateMachineProcedure.java | 181 +++------
.../procedure/impl/sync/StartPipeProcedure.java | 6 -
.../request/ConfigPhysicalPlanSerDeTest.java | 19 +
.../confignode/manager/load/LoadManagerTest.java | 12 +-
.../manager/load/cache/RegionGroupCacheTest.java | 132 ++++---
.../confignode/procedure/entity/IncProcedure.java | 5 -
.../confignode/procedure/entity/NoopProcedure.java | 5 -
.../procedure/entity/SimpleLockProcedure.java | 5 -
.../procedure/entity/SleepProcedure.java | 5 -
.../procedure/entity/StuckProcedure.java | 5 -
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 11 -
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 20 +-
.../dataregion/DataRegionStateMachine.java | 144 +------
.../scan/TsFileInsertionEventScanParser.java | 19 +
.../pipe/resource/memory/PipeMemoryWeightUtil.java | 48 +++
.../iotdb/db/protocol/session/ClientSession.java | 20 +-
.../iotdb/db/protocol/session/IClientSession.java | 1 +
.../db/protocol/session/InternalClientSession.java | 5 +-
.../protocol/thrift/impl/ClientRPCServiceImpl.java | 40 +-
.../impl/DataNodeInternalRPCServiceImpl.java | 1 -
.../thrift/impl/DataNodeRegionManager.java | 4 +-
.../execution/executor/RegionWriteExecutor.java | 11 +-
.../source/relational/MarkDistinctOperator.java | 170 ++++++++
.../relational/aggregation/TableAggregator.java | 4 +
.../aggregation/grouped/hash/MarkDistinctHash.java | 2 +-
.../iotdb/db/queryengine/plan/Coordinator.java | 4 +-
.../load/LoadTsFileToTableModelAnalyzer.java | 9 +-
.../queryengine/plan/execution/QueryExecution.java | 2 -
.../execution/config/TableConfigTaskVisitor.java | 15 +
.../execution/config/TreeConfigTaskVisitor.java | 8 +
.../config/executor/ClusterConfigTaskExecutor.java | 70 ++++
.../config/executor/IConfigTaskExecutor.java | 3 +
...rateRegionTask.java => RemoveDataNodeTask.java} | 14 +-
.../db/queryengine/plan/parser/ASTVisitor.java | 12 +
.../plan/planner/TableOperatorGenerator.java | 41 +-
.../plan/planner/plan/node/PlanGraphPrinter.java | 41 +-
.../plan/planner/plan/node/PlanNodeType.java | 9 +-
.../plan/planner/plan/node/PlanVisitor.java | 5 +
.../plan/node/pipe/PipeEnrichedDeleteDataNode.java | 13 +
.../plan/node/pipe/PipeEnrichedInsertNode.java | 5 +
.../ContinuousSameSearchIndexSeparatorNode.java | 6 +
.../planner/plan/node/write/DeleteDataNode.java | 36 ++
.../plan/node/write/InsertMultiTabletsNode.java | 5 +
.../plan/planner/plan/node/write/InsertNode.java | 21 +
.../planner/plan/node/write/InsertRowNode.java | 12 +
.../planner/plan/node/write/InsertRowsNode.java | 15 +
.../plan/node/write/InsertRowsOfOneDeviceNode.java | 5 +
.../planner/plan/node/write/InsertTabletNode.java | 11 +
.../plan/node/write/RelationalDeleteDataNode.java | 23 +-
.../plan/planner/plan/node/write/SearchNode.java | 4 +
.../PredicatePushIntoMetadataChecker.java | 7 +-
.../fetcher/TableHeaderSchemaValidator.java | 14 +-
.../fetcher/cache/TableDeviceSchemaCache.java | 19 +
.../distribute/TableDistributedPlanGenerator.java | 17 +-
.../MultipleDistinctAggregationToMarkDistinct.java | 202 ++++++++++
...rColumns.java => PruneMarkDistinctColumns.java} | 28 +-
.../rule/SingleDistinctAggregationToGroupBy.java | 160 ++++++++
.../relational/planner/node/AggregationNode.java | 6 +-
.../relational/planner/node/MarkDistinctNode.java | 162 ++++++++
.../plan/relational/planner/node/Patterns.java | 7 +-
.../optimizations/LogicalOptimizeFactory.java | 18 +-
.../optimizations/PushPredicateIntoTableScan.java | 134 +++++--
.../optimizations/UnaliasSymbolReferences.java | 21 +
.../plan/relational/sql/ast/AstVisitor.java | 4 +
.../{ShowDataNodes.java => RemoveDataNode.java} | 24 +-
.../plan/relational/sql/parser/AstBuilder.java | 12 +
.../plan/scheduler/ClusterScheduler.java | 4 -
.../plan/statement/StatementVisitor.java | 5 +
.../plan/statement/crud/InsertRowStatement.java | 4 +-
.../plan/statement/crud/InsertTabletStatement.java | 4 +-
...Statement.java => RemoveDataNodeStatement.java} | 38 +-
.../metadata/region/ExtendRegionStatement.java | 14 +
.../metadata/region/MigrateRegionStatement.java | 14 +
.../region/ReconstructRegionStatement.java | 14 +
.../metadata/region/RemoveRegionStatement.java | 14 +
.../AbstractCastFunctionColumnTransformer.java | 43 ++-
.../scalar/CastFunctionColumnTransformer.java | 4 +-
.../scalar/TryCastFunctionColumnTransformer.java | 4 +-
.../db/schemaengine/table/DataNodeTableCache.java | 108 +++++-
.../db/storageengine/dataregion/DataRegion.java | 37 +-
.../compaction/execute/utils/CompactionUtils.java | 5 +-
.../compaction/schedule/TTLScheduleTask.java | 4 +-
.../selector/impl/SettleSelectorImpl.java | 3 +
.../dataregion/modification/ModificationFile.java | 69 +++-
.../dataregion/tsfile/TsFileResource.java | 23 +-
.../broker/SubscriptionPrefetchingQueue.java | 47 ++-
.../broker/SubscriptionPrefetchingQueueStates.java | 96 +++--
.../broker/SubscriptionPrefetchingTabletQueue.java | 2 +-
.../broker/SubscriptionPrefetchingTsFileQueue.java | 2 +-
.../event/SubscriptionCommitContextSupplier.java | 28 --
.../db/subscription/event/SubscriptionEvent.java | 80 ++--
.../event/batch/SubscriptionPipeEventBatch.java | 30 --
.../batch/SubscriptionPipeTabletEventBatch.java | 66 ++--
.../batch/SubscriptionPipeTsFileEventBatch.java | 15 -
.../cache/CachedSubscriptionPollResponse.java | 5 +
.../event/pipe/SubscriptionPipeEmptyEvent.java | 4 +-
.../pipe/SubscriptionPipeTabletBatchEvents.java | 46 ++-
.../pipe/SubscriptionPipeTsFileBatchEvents.java | 8 +-
.../pipe/SubscriptionPipeTsFilePlainEvent.java | 8 +-
.../SubscriptionEventExtendableResponse.java | 1 +
.../event/response/SubscriptionEventResponse.java | 10 +-
.../response/SubscriptionEventSingleResponse.java | 1 +
.../response/SubscriptionEventTabletResponse.java | 201 +++++++---
.../response/SubscriptionEventTsFileResponse.java | 32 +-
.../dataregion/DataRegionStateMachineTest.java | 4 +-
.../plan/relational/analyzer/DistinctTest.java | 118 ++++++
.../relational/planner/CorrelatedSubqueryTest.java | 153 ++++++++
...ueryTest.java => UncorrelatedSubqueryTest.java} | 251 ++++++++----
...onStepMatcher.java => MarkDistinctMatcher.java} | 50 ++-
.../planner/assertions/PlanMatchPattern.java | 22 ++
.../conf/iotdb-system.properties.template | 6 +-
.../apache/iotdb/commons/conf/CommonConfig.java | 87 ++++-
.../iotdb/commons/conf/CommonDescriptor.java | 42 +-
.../commons/partition/DataPartitionTable.java | 12 +
.../commons/partition/SeriesPartitionTable.java | 16 +
.../org/apache/iotdb/commons/path/PartialPath.java | 8 +-
.../apache/iotdb/commons/schema/table/TsTable.java | 4 +
.../schema/table/column/TsTableColumnSchema.java | 19 +
.../apache/iotdb/commons/schema/ttl/TTLCache.java | 27 ++
.../subscription/config/SubscriptionConfig.java | 47 ++-
.../commons/subscription/meta/topic/TopicMeta.java | 4 +
.../iotdb/commons/utils/TimePartitionUtils.java | 13 +
.../db/relational/grammar/sql/RelationalSql.g4 | 11 +-
.../thrift-datanode/src/main/thrift/client.thrift | 1 +
pom.xml | 7 +-
305 files changed, 9945 insertions(+), 2421 deletions(-)
create mode 100644
example/session/src/main/java/org/apache/iotdb/TableModelSubscriptionSessionExample.java
create mode 100644
integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBPartitionTableAutoCleanTest.java
copy
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/IQueryDataSource.java
=>
integration-test/src/test/java/org/apache/iotdb/confignode/it/removedatanode/SQLModel.java
(86%)
create mode 100644
integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/IoTDBTableAggregationFunctionDistinctIT.java
create mode 100644
integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/subquery/correlated/IoTDBCorrelatedExistsSubqueryIT.java
create mode 100644
integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/subquery/uncorrelated/IoTDBUncorrelatedExistsSubqueryIT.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/AbstractSubscriptionSession.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/ISubscriptionTableSession.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/ISubscriptionTreeSession.java
delete mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/SubscriptionSession.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/SubscriptionSessionWrapper.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/SubscriptionTableSession.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/SubscriptionTableSessionBuilder.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/SubscriptionTreeSession.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/SubscriptionTreeSessionBuilder.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/ISubscriptionTablePullConsumer.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/ISubscriptionTablePushConsumer.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/ISubscriptionTreePullConsumer.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/ISubscriptionTreePushConsumer.java
rename
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/{SubscriptionConsumer.java
=> base/AbstractSubscriptionConsumer.java} (90%)
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/base/AbstractSubscriptionConsumerBuilder.java
rename
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/{SubscriptionProvider.java
=> base/AbstractSubscriptionProvider.java} (93%)
rename
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/{SubscriptionProviders.java
=> base/AbstractSubscriptionProviders.java} (83%)
rename
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/{SubscriptionPullConsumer.java
=> base/AbstractSubscriptionPullConsumer.java} (67%)
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/base/AbstractSubscriptionPullConsumerBuilder.java
rename
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/{SubscriptionPushConsumer.java
=> base/AbstractSubscriptionPushConsumer.java} (66%)
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/base/AbstractSubscriptionPushConsumerBuilder.java
rename
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/{
=> base}/SubscriptionExecutorServiceManager.java (99%)
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/table/SubscriptionTableProvider.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/table/SubscriptionTablePullConsumer.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/table/SubscriptionTablePullConsumerBuilder.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/table/SubscriptionTablePushConsumer.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/table/SubscriptionTablePushConsumerBuilder.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/tree/SubscriptionTreeProvider.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/tree/SubscriptionTreePullConsumer.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/tree/SubscriptionTreePullConsumerBuilder.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/tree/SubscriptionTreePushConsumer.java
create mode 100644
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/tree/SubscriptionTreePushConsumerBuilder.java
create mode 100644
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/partition/AutoCleanPartitionTablePlan.java
create mode 100644
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/PartitionTableAutoCleaner.java
create mode 100644
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MarkDistinctOperator.java
copy
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/{region/MigrateRegionTask.java
=> RemoveDataNodeTask.java} (78%)
create mode 100644
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java
copy
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/{PruneFilterColumns.java
=> PruneMarkDistinctColumns.java} (64%)
create mode 100644
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SingleDistinctAggregationToGroupBy.java
create mode 100644
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MarkDistinctNode.java
copy
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/{ShowDataNodes.java
=> RemoveDataNode.java} (70%)
copy
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/{DropFunctionStatement.java
=> RemoveDataNodeStatement.java} (81%)
delete mode 100644
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/subscription/event/SubscriptionCommitContextSupplier.java
create mode 100644
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CorrelatedSubqueryTest.java
rename
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/{SubqueryTest.java
=> UncorrelatedSubqueryTest.java} (69%)
copy
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/{AggregationStepMatcher.java
=> MarkDistinctMatcher.java} (54%)