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%)

Reply via email to