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

ycycse pushed a commit to branch ycy/supportEA
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit a419d2d0d705685c27a63707dbca8237500762f1
Merge: 1e89595b948 24a00905ff2
Author: ycycse <[email protected]>
AuthorDate: Sun Nov 24 00:33:41 2024 +0800

    Merge remote-tracking branch 'origin/master' into supportEA
    
    # Conflicts:
    #       
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
    #       
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableLogicalPlanner.java

 LICENSE                                            |  43 +-
 LICENSE-binary                                     | 118 ++--
 README_ZH.md                                       |   2 +-
 RELEASE_NOTES.md                                   | 363 ++++++++++
 .../org/apache/iotdb/TableModelSessionExample.java | 107 ++-
 .../apache/iotdb/TableModelSessionPoolExample.java | 110 ++-
 .../iotdb/it/env/cluster/env/AbstractEnv.java      |  95 ++-
 .../iotdb/it/env/remote/env/RemoteServerEnv.java   |  91 ++-
 .../org/apache/iotdb/it/utils/TsFileGenerator.java |  11 +-
 .../java/org/apache/iotdb/itbase/env/BaseEnv.java  |  34 +-
 .../org/apache/iotdb/db/it/IoTDBDeletionIT.java    | 207 +++---
 .../pipe/it/tablemodel/IoTDBPipeExtractorIT.java   |   4 +
 .../pipe/it/tablemodel/IoTDBPipeLifeCycleIT.java   |   2 +
 .../it/tablemodel/IoTDBTablePatternFormatIT.java   |   2 +-
 .../iotdb/pipe/it/tablemodel/TableModelUtils.java  |  10 +-
 .../relational/it/db/it/IoTDBDeletionTableIT.java  | 754 +++++++++++++++++++++
 .../relational/it/db/it/IoTDBInsertTableIT.java    |  66 +-
 .../db/it/IoTDBMultiIDsWithAttributesTableIT.java  |   7 +-
 .../it/query/old/orderBy/IoTDBOrderByTableIT.java  |  42 +-
 .../it/query/old/query/IoTDBInTableIT.java         |  89 ++-
 .../it/query/recent/IoTDBTableAggregationIT.java   |  78 +++
 .../relational/it/schema/IoTDBDatabaseIT.java      |  30 +-
 .../iotdb/relational/it/schema/IoTDBDeviceIT.java  |   7 +-
 .../iotdb/relational/it/schema/IoTDBTableIT.java   |  42 +-
 .../it/session/IoTDBTableModelSessionIT.java       |   6 +-
 .../pool/IoTDBInsertTableSessionPoolIT.java        |  30 +-
 .../session/pool/IoTDBTableModelSessionPoolIT.java |  17 +-
 .../iotdb/session/it/IoTDBSessionRelationalIT.java | 401 +++--------
 .../java/org/apache/iotdb/isession/ISession.java   |  16 -
 .../org/apache/iotdb/isession/ITableSession.java   |  89 +++
 .../apache/iotdb/isession/pool/ISessionPool.java   |   3 -
 .../iotdb/isession/pool/ITableSessionPool.java     |  48 ++
 iotdb-client/jdbc/src/main/feature/feature.xml     |   2 +-
 .../iotdb/session/AbstractSessionBuilder.java      |  71 ++
 .../java/org/apache/iotdb/session/Session.java     | 133 +---
 .../org/apache/iotdb/session/TableSession.java}    |  77 ++-
 .../apache/iotdb/session/TableSessionBuilder.java  | 275 ++++++++
 .../session/pool/AbstractSessionPoolBuilder.java   |  35 +-
 .../org/apache/iotdb/session/pool/SessionPool.java |  84 +--
 .../iotdb/session/pool/TableSessionPool.java       |  40 +-
 .../session/pool/TableSessionPoolBuilder.java      | 293 ++++++++
 ...essionWrapper.java => TableSessionWrapper.java} | 123 +---
 .../iotdb/session/SessionCacheLeaderTest.java      |   2 +-
 .../CnToDnInternalServiceAsyncRequestManager.java  |  10 +-
 .../request/write/database/DatabaseSchemaPlan.java |  12 +-
 .../pipe/runtime/PipeHandleMetaChangePlan.java     |   8 +-
 .../response/pipe/task/PipeTableResp.java          |   5 +-
 .../statemachine/ConfigRegionStateMachine.java     |   6 +-
 .../iotdb/confignode/manager/ConfigManager.java    |  33 +-
 .../iotdb/confignode/manager/ProcedureManager.java |  80 ++-
 .../manager/load/balancer/RouteBalancer.java       |   2 +-
 .../manager/partition/PartitionManager.java        |   8 +-
 .../manager/partition/PartitionMetrics.java        |   8 +-
 .../pipe/agent/task/PipeConfigNodeTaskAgent.java   |   4 +-
 .../runtime/PipeLeaderChangeHandler.java           |   2 +-
 .../runtime/heartbeat/PipeHeartbeat.java           |   3 +-
 .../runtime/heartbeat/PipeHeartbeatParser.java     |   5 +-
 .../pipe/coordinator/task/PipeTaskCoordinator.java |  29 +-
 .../manager/pipe/metric/PipeConfigNodeMetrics.java |   4 +-
 ... => PipeTemporaryMetaInCoordinatorMetrics.java} |  29 +-
 .../manager/schema/ClusterSchemaManager.java       |  21 +-
 .../persistence/executor/ConfigPlanExecutor.java   |   4 +-
 .../persistence/partition/PartitionInfo.java       |  97 +--
 .../confignode/persistence/pipe/PipeInfo.java      |  16 +-
 .../confignode/persistence/pipe/PipeTaskInfo.java  |   4 +-
 .../persistence/schema/ClusterSchemaInfo.java      |  22 +-
 .../confignode/persistence/schema/ConfigMTree.java |  10 +-
 .../procedure/env/RegionMaintainHandler.java       |   5 +-
 .../procedure/env/RemoveDataNodeHandler.java       |  20 +-
 .../impl/node/RemoveDataNodesProcedure.java        |  26 +
 .../impl/pipe/task/AlterPipeProcedureV2.java       |   2 +-
 .../impl/pipe/task/CreatePipeProcedureV2.java      |   4 +-
 .../impl/schema/table/CreateTableProcedure.java    |   9 +-
 .../impl/schema/table/DeleteDevicesProcedure.java  |  54 +-
 .../thrift/ConfigNodeRPCServiceProcessor.java      |  14 +-
 .../confignode/manager/ProcedureManagerTest.java   |  24 +
 .../schema/table/DeleteDevicesProcedureTest.java   |   7 +-
 .../apache/iotdb/consensus/config/RatisConfig.java |  28 -
 .../pipe/consensuspipe/ConsensusPipeManager.java   |   6 +
 .../apache/iotdb/consensus/ratis/utils/Utils.java  |  23 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |  62 +-
 .../db/conf/rest/IoTDBRestServiceDescriptor.java   |  88 ++-
 .../dataregion/DataExecutionVisitor.java           |  12 +
 .../dataregion/DataRegionStateMachine.java         |   2 +-
 .../exception/metadata/DatabaseModelException.java |  15 +
 .../db/pipe/agent/runtime/PipeAgentLauncher.java   |   2 +-
 .../db/pipe/agent/task/PipeDataNodeTaskAgent.java  |  30 +-
 .../connector/PipeConnectorSubtaskLifeCycle.java   |   4 +-
 .../subtask/processor/PipeProcessorSubtask.java    |   4 +-
 .../evolvable/batch/PipeTabletEventPlainBatch.java |  10 +-
 .../connector/payload/legacy/DeletionPipeData.java |   2 +-
 .../PipeConsensusTabletBatchEventHandler.java      |  10 +-
 .../request/PipeConsensusDeleteNodeReq.java        |   7 +-
 .../async/IoTDBDataRegionAsyncConnector.java       |   2 +-
 .../PipeTransferTabletBatchEventHandler.java       |   6 +-
 .../pipe/consensus/deletion/DeletionResource.java  |  15 +-
 .../deletion/DeletionResourceManager.java          |   8 +-
 .../common/deletion/PipeDeleteDataNodeEvent.java   |   9 +-
 .../tablet/PipeInsertNodeTabletInsertionEvent.java |  30 +-
 .../common/tablet/PipeRawTabletInsertionEvent.java |   6 +-
 .../common/tsfile/PipeTsFileInsertionEvent.java    |  26 +-
 .../scan/TsFileInsertionEventScanParser.java       |  14 +-
 .../event/realtime/PipeRealtimeEventFactory.java   |   4 +-
 ...oricalDataRegionTsFileAndDeletionExtractor.java |  38 ++
 .../PipeRealtimeDataRegionHybridExtractor.java     |  12 +-
 .../listener/PipeInsertionDataNodeListener.java    |  10 +-
 .../protocol/legacy/loader/DeletionLoader.java     |   2 +-
 .../pipeconsensus/PipeConsensusReceiver.java       |  38 +-
 .../resource/tsfile/PipeTsFileResourceManager.java |  10 +-
 .../iotdb/db/protocol/client/ConfigNodeClient.java |   2 +-
 .../iotdb/db/protocol/client/ConfigNodeInfo.java   |   3 +-
 .../impl/DataNodeInternalRPCServiceImpl.java       |  78 ++-
 .../common/header/ColumnHeaderConstant.java        |   2 +
 .../execution/executor/RegionWriteExecutor.java    |  14 +
 .../execution/fragment/QueryContext.java           |  40 +-
 .../execution/operator/source/FileLoaderUtils.java |  10 +-
 .../relational/aggregation/AccumulatorFactory.java |  15 +-
 .../aggregation/TableMaxMinByBaseAccumulator.java  |  10 +-
 .../grouped/GroupedFirstByAccumulator.java         |   2 +
 .../grouped/GroupedLastByAccumulator.java          |   1 +
 .../relational/ColumnTransformerBuilder.java       |  12 +-
 .../iotdb/db/queryengine/plan/Coordinator.java     |  35 +-
 .../db/queryengine/plan/analyze/AnalyzeUtils.java  | 255 +++++++
 .../queryengine/plan/analyze/PredicateUtils.java   |   9 +-
 .../analyze/load/LoadTsFileTableSchemaCache.java   |  11 +-
 .../analyze/load/LoadTsFileTreeSchemaCache.java    |  11 +-
 .../execution/config/TableConfigTaskVisitor.java   |  40 +-
 .../config/executor/ClusterConfigTaskExecutor.java |  45 +-
 .../config/metadata/relational/ShowDBTask.java     |  35 +-
 .../TableModelStatementMemorySourceVisitor.java    |  11 +-
 .../plan/planner/TableOperatorGenerator.java       | 154 +++--
 .../plan/planner/plan/node/PlanNodeType.java       |  11 +-
 .../plan/planner/plan/node/PlanVisitor.java        |   5 +
 .../plan/node/load/LoadSingleTsFileNode.java       |   4 +-
 .../plan/node/pipe/PipeEnrichedDeleteDataNode.java |   2 +
 .../plan/node/write/AbstractDeleteDataNode.java    |  81 +++
 .../planner/plan/node/write/DeleteDataNode.java    |  36 +-
 .../planner/plan/node/write/DeleteNodeType.java    |  68 ++
 .../plan/node/write/RelationalDeleteDataNode.java  | 281 ++++++++
 .../plan/relational/analyzer/Analysis.java         |   3 +-
 .../relational/analyzer/StatementAnalyzer.java     |  18 +-
 .../predicate/ConvertPredicateToFilterVisitor.java |  48 +-
 .../ConvertPredicateToTimeFilterVisitor.java       |  60 +-
 .../fetcher/TableDeviceSchemaValidator.java        |  11 +
 .../plan/relational/planner/IrTypeAnalyzer.java    |  12 +
 .../plan/relational/planner/PlanBuilder.java       |   4 +-
 .../plan/relational/planner/QueryPlanner.java      |  24 +-
 .../plan/relational/planner/RelationPlan.java      |  14 +-
 .../plan/relational/planner/RelationPlanner.java   |  45 +-
 .../relational/planner/TableLogicalPlanner.java    |  67 +-
 .../plan/relational/planner/TableModelPlanner.java |  20 +-
 .../distribute/TableDistributedPlanGenerator.java  |  42 +-
 .../distribute/TableDistributedPlanner.java        |  43 +-
 .../TableModelTypeProviderExtractor.java           |   5 +
 .../relational/planner/ir/ExpressionRewriter.java  |  12 +
 .../planner/ir/ExpressionTreeRewriter.java         |  32 +-
 .../ir/GlobalTimePredicateExtractVisitor.java      |  37 +-
 ...AddTableScanColumnsToTypeProviderOptimizer.java |  66 --
 .../iterative/rule/PruneTableScanColumns.java      |  12 +-
 .../relational/planner/node/TableScanNode.java     |  18 +
 .../optimizations/LogicalOptimizeFactory.java      |   4 +-
 .../planner/optimizations/PlanOptimizer.java       |   8 -
 .../PushAggregationIntoTableScan.java              |  12 +-
 .../PushLimitOffsetIntoTableScan.java              |   3 +-
 .../optimizations/PushPredicateIntoTableScan.java  | 101 +--
 .../planner/optimizations/SortElimination.java     |  16 +-
 .../optimizations/TransformSortToStreamSort.java   |   5 +-
 .../plan/relational/sql/ast/CurrentDatabase.java   |  13 +-
 .../plan/relational/sql/ast/CurrentUser.java       |  13 +-
 .../plan/relational/sql/ast/Delete.java            |  33 +
 .../plan/relational/sql/ast/DeleteDevice.java      |  35 +-
 .../relational/sql/ast/TableExpressionType.java    |   4 +-
 .../plan/relational/sql/ast/TimeRange.java         |  16 +-
 .../plan/relational/sql/parser/AstBuilder.java     |   6 +-
 .../plan/scheduler/load/LoadTsFileScheduler.java   |  22 +
 .../apache/iotdb/db/schemaengine/SchemaEngine.java |  33 +-
 .../rescon/ISchemaRegionStatistics.java            |   6 +-
 .../rescon/MemSchemaRegionStatistics.java          |   6 +
 .../mtree/impl/mem/MTreeBelowSGMemoryImpl.java     |  12 +-
 .../read/resp/info/impl/ShowDevicesResult.java     |   4 +-
 .../schemaregion/utils/ResourceByPathUtils.java    |  14 +-
 .../db/storageengine/dataregion/DataRegion.java    | 636 +++++++++--------
 .../performer/impl/FastCompactionPerformer.java    |  25 +-
 .../RepairUnsortedFileCompactionPerformer.java     |   7 +-
 .../execute/recover/CompactionRecoverTask.java     |  37 +-
 .../execute/task/AbstractCompactionTask.java       |   6 +-
 .../execute/task/InnerSpaceCompactionTask.java     |  32 +-
 .../task/InsertionCrossSpaceCompactionTask.java    |  13 +-
 .../task/RepairUnsortedFileCompactionTask.java     |  13 +-
 .../execute/task/SettleCompactionTask.java         |   6 +-
 .../subtask/FastCompactionPerformerSubTask.java    |   8 +-
 .../compaction/execute/utils/CompactionUtils.java  | 101 +--
 .../execute/utils/MultiTsFileDeviceIterator.java   |  52 +-
 ...BatchedFastAlignedSeriesCompactionExecutor.java |   8 +-
 .../fast/FastAlignedSeriesCompactionExecutor.java  |   8 +-
 .../FastNonAlignedSeriesCompactionExecutor.java    |   4 +-
 .../executor/fast/SeriesCompactionExecutor.java    |  14 +-
 .../execute/utils/log/TsFileIdentifier.java        |   7 +-
 .../estimator/CompactionEstimateUtils.java         |   4 +-
 .../selector/estimator/CompactionTaskInfo.java     |   6 +-
 .../selector/impl/SettleSelectorImpl.java          |  34 +-
 .../compaction/settle/SettleRequestHandler.java    |   4 +-
 .../dataregion/memtable/AbstractMemTable.java      | 109 +--
 .../memtable/AlignedWritableMemChunk.java          |  20 +-
 .../memtable/AlignedWritableMemChunkGroup.java     |  41 +-
 .../dataregion/memtable/IMemTable.java             |  22 +-
 .../memtable/IWritableMemChunkGroup.java           |   7 +-
 .../dataregion/memtable/TsFileProcessor.java       |  96 +--
 .../dataregion/memtable/WritableMemChunkGroup.java |  61 +-
 .../dataregion/modification/DeletionPredicate.java | 181 +++++
 .../dataregion/modification/IDPredicate.java       | 397 +++++++++++
 .../dataregion/modification/ModEntry.java          | 195 ++++++
 .../modification/ModFileManagement.java}           |  31 +-
 .../dataregion/modification/ModificationFile.java  | 391 ++++++-----
 .../modification/PartitionLevelModFileManager.java | 159 +++++
 .../modification/TableDeletionEntry.java           | 149 ++++
 .../dataregion/modification/TreeDeletionEntry.java | 225 ++++++
 .../dataregion/modification/{ => v1}/Deletion.java |   2 +-
 .../modification/{ => v1}/Modification.java        |   2 +-
 .../ModificationFileV1.java}                       |  33 +-
 .../{ => v1}/io/LocalTextModificationAccessor.java |   6 +-
 .../{ => v1}/io/ModificationReader.java            |   4 +-
 .../{ => v1}/io/ModificationWriter.java            |   4 +-
 .../filescan/impl/ClosedFileScanHandleImpl.java    |  19 +-
 .../metadata/DiskAlignedChunkMetadataLoader.java   |  10 +-
 .../chunk/metadata/DiskChunkMetadataLoader.java    |   6 +-
 .../dataregion/snapshot/SnapshotFileSet.java       |   2 +
 .../dataregion/snapshot/SnapshotTaker.java         |  31 +-
 .../dataregion/tsfile/TsFileManager.java           |  25 +
 .../dataregion/tsfile/TsFileResource.java          | 366 ++++++++--
 .../tsfile/timeindex/ArrayDeviceTimeIndex.java     |  12 +
 .../dataregion/wal/buffer/WALBuffer.java           |   3 +
 .../dataregion/wal/buffer/WALEntry.java            |   6 +
 .../dataregion/wal/buffer/WALEntryType.java        |   4 +-
 .../dataregion/wal/buffer/WALInfoEntry.java        |   1 +
 .../dataregion/wal/node/IWALNode.java              |   4 +
 .../dataregion/wal/node/WALFakeNode.java           |   6 +
 .../storageengine/dataregion/wal/node/WALNode.java |  13 +
 .../wal/recover/file/TsFilePlanRedoer.java         |  72 +-
 .../file/UnsealedTsFileRecoverPerformer.java       |  99 ++-
 .../dataregion/wal/utils/WALEntryHandler.java      |  12 +-
 .../db/storageengine/load/LoadTsFileManager.java   |  10 +-
 .../storageengine/load/splitter/DeletionData.java  |  18 +-
 .../load/splitter/TsFileSplitter.java              |  32 +-
 .../task/subtask/SubscriptionConnectorSubtask.java |  12 +-
 .../SubscriptionConnectorSubtaskLifeCycle.java     |   8 +-
 .../iotdb/db/tools/TsFileSplitByPartitionTool.java |  59 +-
 .../org/apache/iotdb/db/tools/TsFileSplitTool.java |   3 +-
 .../db/tools/settle/TsFileAndModSettleTool.java    |   2 +-
 .../TsFileOverlapValidationAndRepairTool.java      |   5 +-
 .../apache/iotdb/db/utils/ModificationUtils.java   | 159 ++---
 .../db/utils/datastructure/AlignedTVList.java      | 123 +++-
 .../utils/datastructure/PatternTreeMapFactory.java |  64 +-
 .../io/BufferSerializable.java}                    |  30 +-
 .../io/StreamSerializable.java}                    |  32 +-
 .../iotdb/db/metadata/path/PatternTreeMapTest.java |  78 +--
 .../db/pipe/consensus/DeletionRecoverTest.java     |  48 +-
 .../db/pipe/consensus/DeletionResourceTest.java    |  70 +-
 .../resource/PipeTsFileResourceManagerTest.java    |  16 +-
 .../operator/sink/IdentitySinkOperatorTest.java    |  35 +-
 .../node/write/RelationalDeleteDataNodeTest.java   | 105 +++
 .../plan/relational/analyzer/AggregationTest.java  | 114 +++-
 .../plan/relational/analyzer/AnalyzerTest.java     | 188 +++--
 .../plan/relational/analyzer/JoinTest.java         |  54 +-
 .../analyzer/LimitOffsetPushDownTest.java          |  50 +-
 .../plan/relational/analyzer/SortTest.java         | 164 ++++-
 .../plan/relational/analyzer/SubQueryTest.java     |  39 +-
 .../plan/relational/analyzer/TestMatadata.java     |  30 +
 .../plan/relational/analyzer/TestUtils.java        |   6 +-
 .../plan/relational/planner/PlanTester.java        |   3 +-
 .../storageengine/dataregion/DataRegionTest.java   |  44 +-
 .../TsFileResourceProgressIndexTest.java           |   5 +
 .../compaction/AbstractCompactionTest.java         |   4 +-
 .../compaction/CompactionTaskComparatorTest.java   |   8 +-
 .../compaction/ReadChunkInnerCompactionTest.java   |  80 +--
 ...tchedAlignedSeriesCrossSpaceCompactionTest.java |  18 +-
 .../cross/CrossSpaceCompactionExceptionTest.java   |  24 +-
 .../InsertionCrossSpaceCompactionRecoverTest.java  |  34 +-
 .../dataregion/compaction/cross/MergeTest.java     |   2 -
 .../RewriteCrossSpaceCompactionRecoverTest.java    |  52 +-
 ...eCrossSpaceCompactionWithFastPerformerTest.java |  68 +-
 ...sSpaceCompactionWithReadPointPerformerTest.java |  68 +-
 ...atchedAlignedSeriesFastInnerCompactionTest.java |  22 +-
 ...atchedAlignedSeriesReadChunkCompactionTest.java |  36 +-
 .../InnerSeqCompactionWithFastPerformerTest.java   |  20 +-
 ...nerSeqCompactionWithReadChunkPerformerTest.java |  20 +-
 .../inner/InnerSpaceCompactionExceptionTest.java   |  40 +-
 .../inner/InnerSpaceCompactionSelectorTest.java    |  17 +-
 ...nkCompactionPerformerWithAlignedSeriesTest.java |  46 +-
 .../ReadChunkCompactionPerformerAlignedTest.java   |   8 +-
 .../NewSizeTieredCompactionSelectorTest.java       |  40 +-
 .../SizeTieredCompactionRecoverTest.java           |  30 +-
 .../repair/RepairUnsortedFileCompactionTest.java   |  17 +-
 .../settle/SettleCompactionRecoverTest.java        |  86 +--
 .../settle/SettleCompactionSelectorTest.java       |  78 +--
 .../tablemodel/CompactionWithAllNullRowsTest.java  |  32 +-
 .../TableModelCompactionWithTTLTest.java           |   3 +-
 .../compaction/utils/CompactionCheckerUtils.java   |  26 +-
 .../utils/CompactionFileGeneratorUtils.java        |  16 +-
 .../dataregion/memtable/PrimitiveMemTableTest.java |  16 +-
 .../dataregion/memtable/TsFileProcessorTest.java   |  88 +--
 .../modification/ModificationFileTest.java         |  71 +-
 .../modification/TableDeletionEntryTest.java       | 208 ++++++
 .../modification/TreeDeletionEntryTest.java        | 153 +++++
 .../io/LocalTextModificationAccessorTest.java      |   6 +-
 .../wal/recover/file/TsFilePlanRedoerTest.java     |   4 +-
 .../file/UnsealedTsFileRecoverPerformerTest.java   |   8 +-
 .../iotdb/db/tools/TsFileAndModSettleToolTest.java |  20 +-
 .../reporter/iotdb/IoTDBSessionReporter.java       |   2 +-
 .../commons/consensus/index/ProgressIndex.java     |  12 +-
 .../consensus/index/impl/HybridProgressIndex.java  |  36 +-
 .../consensus/index/impl/IoTProgressIndex.java     |  12 +
 .../consensus/index/impl/MetaProgressIndex.java    |   9 +-
 .../consensus/index/impl/MinimumProgressIndex.java |   5 +
 .../consensus/index/impl/RecoverProgressIndex.java |  13 +
 .../consensus/index/impl/SimpleProgressIndex.java  |   9 +-
 .../consensus/index/impl/StateProgressIndex.java   |  17 +-
 .../index/impl/TimeWindowStateProgressIndex.java   |  24 +
 .../iotdb/commons/partition/DataPartition.java     |  18 +
 .../apache/iotdb/commons/path/PatternTreeMap.java  |  25 +-
 .../commons/pipe/agent/task/PipeTaskAgent.java     |  49 ++
 .../agent/task/execution/PipeSubtaskExecutor.java  |   6 +-
 .../commons/pipe/agent/task/meta/PipeMeta.java     |  17 +-
 .../pipe/agent/task/meta/PipeTemporaryMeta.java    |  73 +-
 .../agent/task/meta/PipeTemporaryMetaInAgent.java  | 107 +++
 ...ta.java => PipeTemporaryMetaInCoordinator.java} |   5 +-
 .../pipe/agent/task/progress/CommitterKey.java     |   2 +-
 .../task/progress/PipeEventCommitManager.java      |  12 +-
 .../task/subtask/PipeAbstractConnectorSubtask.java |   6 +-
 .../pipe/agent/task/subtask/PipeSubtask.java       |   4 +-
 .../config/constant/PipeExtractorConstant.java     |   2 +
 .../pipe/datastructure/pattern/TablePattern.java   |  28 +-
 .../iotdb/commons/pipe/event/EnrichedEvent.java    |   6 -
 .../commons/pipe/receiver/IoTDBFileReceiver.java   |   5 +-
 .../apache/iotdb/commons/schema/table/TsTable.java |  53 +-
 .../org/apache/iotdb/commons/utils/FileUtils.java  |   5 +-
 .../iotdb/commons/pipe/task/PipeMetaDeSerTest.java |  19 +-
 iotdb-doap.rdf                                     |   8 +
 .../src/main/thrift/confignode.thrift              |   2 +
 .../src/main/thrift/datanode.thrift                |  14 +-
 pom.xml                                            |   4 +-
 341 files changed, 10554 insertions(+), 4404 deletions(-)

diff --cc 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
index 24f7f424380,fe0e8671f4a..64a98c10111
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
@@@ -34,7 -34,6 +34,8 @@@ import org.apache.iotdb.db.queryengine.
  import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISinkHandle;
  import 
org.apache.iotdb.db.queryengine.execution.exchange.sink.ShuffleSinkHandle;
  import 
org.apache.iotdb.db.queryengine.execution.exchange.source.ISourceHandle;
 +import 
org.apache.iotdb.db.queryengine.execution.operator.ExplainAnalyzeOperator;
++import 
org.apache.iotdb.db.queryengine.execution.operator.ExplainAnalyzeOperator;
  import org.apache.iotdb.db.queryengine.execution.operator.Operator;
  import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext;
  import 
org.apache.iotdb.db.queryengine.execution.operator.process.CollectOperator;
@@@ -83,7 -81,6 +83,8 @@@ import org.apache.iotdb.db.queryengine.
  import 
org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.StreamingHashAggregationOperator;
  import 
org.apache.iotdb.db.queryengine.execution.relational.ColumnTransformerBuilder;
  import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider;
 +import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.ExplainAnalyzeNode;
++import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.ExplainAnalyzeNode;
  import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
  import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId;
  import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor;
@@@ -1757,21 -1798,8 +1802,22 @@@ public class TableOperatorGenerator ext
      return aggTableScanOperator;
    }
  
 +  @Override
 +  public Operator visitExplainAnalyze(ExplainAnalyzeNode node, 
LocalExecutionPlanContext context) {
-     Operator operator = node.getChild().accept(this, context);
-     OperatorContext operatorContext =
-         context
-             .getDriverContext()
-             .addOperatorContext(
-                 context.getNextOperatorId(),
-                 node.getPlanNodeId(),
-                 ExplainAnalyzeOperator.class.getSimpleName());
-     return new ExplainAnalyzeOperator(
-         operatorContext, operator, node.getQueryId(), node.isVerbose(), 
node.getTimeout());
-   }
++        Operator operator = node.getChild().accept(this, context);
++        OperatorContext operatorContext =
++                context
++                        .getDriverContext()
++                        .addOperatorContext(
++                                context.getNextOperatorId(),
++                                node.getPlanNodeId(),
++                                ExplainAnalyzeOperator.class.getSimpleName());
++        return new ExplainAnalyzeOperator(
++                operatorContext, operator, node.getQueryId(), 
node.isVerbose(), node.getTimeout());
++    }
 +
-   private boolean[] checkStatisticAndScanOrder(AggregationTableScanNode node) 
{
+   private boolean[] checkStatisticAndScanOrder(
+       AggregationTableScanNode node, String timeColumnName) {
      boolean canUseStatistic = true;
      int ascendingCount = 0, descendingCount = 0;
  
diff --cc 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableLogicalPlanner.java
index c659ca3a3bc,2692690c82f..8ef7b4a4407
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableLogicalPlanner.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableLogicalPlanner.java
@@@ -49,8 -47,8 +49,9 @@@ import org.apache.iotdb.db.queryengine.
  import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AbstractTraverseDevice;
  import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CountDevice;
  import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateOrUpdateDevice;
+ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Delete;
  import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Explain;
 +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExplainAnalyze;
  import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FetchDevice;
  import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile;
  import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PipeEnriched;
@@@ -64,9 -62,8 +65,11 @@@ import org.apache.iotdb.db.queryengine.
  
  import com.google.common.collect.ImmutableList;
  import com.google.common.collect.ImmutableMap;
+ import org.apache.tsfile.read.common.type.LongType;
+ import org.apache.tsfile.read.common.type.TypeFactory;
 +import org.apache.tsfile.enums.TSDataType;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
  
  import java.util.ArrayList;
  import java.util.List;
@@@ -206,9 -184,9 +190,12 @@@ public class TableLogicalPlanner 
      if (statement instanceof PipeEnriched) {
        return createRelationPlan(analysis, (PipeEnriched) statement);
      }
+     if (statement instanceof Delete) {
+       return createRelationPlan(analysis, (Delete) statement);
+     }
 +    if (statement instanceof ExplainAnalyze) {
 +      return planExplainAnalyze((ExplainAnalyze) statement, analysis);
 +    }
      throw new IllegalStateException(
          "Unsupported statement type: " + 
statement.getClass().getSimpleName());
    }

Reply via email to