This is an automated email from the ASF dual-hosted git repository. shuwenwei pushed a commit to branch parallelDispatch in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 32e925edc68795d96d9f8c2583b0a7ca23cc8d78 Merge: 55cbf5f822d a660f9d5dae Author: shuwenwei <[email protected]> AuthorDate: Wed Jun 4 10:19:19 2025 +0800 Merge branch 'master' into parallelDispatch .github/workflows/greeting-ainode.yml | 52 ++ .github/workflows/pipe-it.yml | 6 +- LICENSE | 15 + RELEASE_NOTES.md | 44 + docker/src/main/DockerCompose/do-docker-build.sh | 4 +- docker/src/main/Dockerfile-1.0.0-confignode | 2 +- docker/src/main/Dockerfile-1.0.0-datanode | 2 +- docker/src/main/Dockerfile-1.0.0-standalone | 2 +- docker/src/main/Dockerfile-1c1d | 2 +- .../it/env/cluster/config/MppDataNodeConfig.java | 12 + .../iotdb/it/env/cluster/env/AbstractEnv.java | 26 +- .../it/env/remote/config/RemoteDataNodeConfig.java | 10 + .../apache/iotdb/itbase/env/DataNodeConfig.java | 4 + .../org/apache/iotdb/ainode/it/AINodeBasicIT.java | 22 +- .../apache/iotdb/db/it/IoTDBLoadLastCacheIT.java | 642 ++++++++++++++ .../org/apache/iotdb/db/it/IoTDBLoadTsFileIT.java | 88 +- .../iotdb/db/it/IoTDBSetConfigurationIT.java | 12 +- .../iotdb/db/it/auth/IoTDBSeriesPermissionIT.java | 6 +- ...rageGroupIT.java => IoTDBDeleteDatabaseIT.java} | 18 +- .../iotdb/db/it/schema/IoTDBMetadataFetchIT.java | 42 +- .../org/apache/iotdb/db/it/utils/TestUtils.java | 17 +- .../manual/basic/IoTDBPipePermissionIT.java | 43 + .../db/it/IoTDBMultiTAGsWithAttributesTableIT.java | 25 +- .../it/db/it/IoTDBPatternRecognitionIT.java | 951 +++++++++++++++++++++ .../relational/it/db/it/IoTDBWindowFunctionIT.java | 413 +++++++++ .../it/query/recent/IoTDBMaintainAuthIT.java | 18 +- .../it/query/recent/IoTDBTableAggregationIT.java | 53 ++ .../IoTDBCorrelatedExistsSubqueryIT.java | 5 +- .../IoTDBCorrelatedScalarSubqueryIT.java | 13 +- .../IoTDBAlignByDeviceTableViewIT.java | 2 +- .../IoTDBOrderByWithAlignByDeviceTableViewIT.java | 2 +- .../view/old/query/IoTDBPaginationTableViewIT.java | 15 + ...oTDBTableViewQueryWithNotMatchedDataTypeIT.java | 102 +++ .../relational/it/schema/IoTDBDatabaseIT.java | 171 +++- .../iotdb/relational/it/schema/IoTDBTableIT.java | 37 +- .../it/IoTDBSubscriptionITConstant.java | 28 + .../AbstractSubscriptionTreeRegressionIT.java | 82 +- .../IoTDBDefaultTsfilePushConsumerIT.java | 11 + .../IoTDBRootPullConsumeTsfileIT.java | 10 + .../IoTDBSnapshotDevicePullConsumerDataSetIT.java | 3 + .../multi/IoTDBOneConsumerMultiTopicsTsfileIT.java | 10 + .../IoTDBDevicePatternPullConsumerDataSetIT.java | 31 +- ...IoTDBMiddleMatchPatternPullConsumeTsfileIT.java | 28 +- ...oTDBSnapshotTSPatternDatasetPushConsumerIT.java | 14 +- .../multi/IoTDBMultiGroupVsMultiConsumerIT.java | 10 + .../java/org/apache/iotdb/cli/AbstractCli.java | 4 +- iotdb-client/client-cpp/pom.xml | 86 +- iotdb-client/client-cpp/src/main/Column.cpp | 359 ++++++++ iotdb-client/client-cpp/src/main/Column.h | 353 ++++++++ iotdb-client/client-cpp/src/main/ColumnDecoder.cpp | 178 ++++ iotdb-client/client-cpp/src/main/ColumnDecoder.h | 75 ++ iotdb-client/client-cpp/src/main/Common.cc | 186 ---- iotdb-client/client-cpp/src/main/Common.cpp | 456 ++++++++++ iotdb-client/client-cpp/src/main/Common.h | 118 ++- .../client-cpp/src/main/IoTDBRpcDataSet.cpp | 614 +++++++++++++ iotdb-client/client-cpp/src/main/IoTDBRpcDataSet.h | 159 ++++ iotdb-client/client-cpp/src/main/NodesSupplier.cpp | 61 +- iotdb-client/client-cpp/src/main/NodesSupplier.h | 30 +- iotdb-client/client-cpp/src/main/Session.cpp | 384 ++------- iotdb-client/client-cpp/src/main/Session.h | 576 ++----------- .../client-cpp/src/main/SessionConnection.cpp | 47 +- .../client-cpp/src/main/SessionConnection.h | 1 + .../client-cpp/src/main/SessionDataSet.cpp | 252 ++++++ iotdb-client/client-cpp/src/main/SessionDataSet.h | 146 ++++ iotdb-client/client-cpp/src/main/TableSession.cpp | 15 +- iotdb-client/client-cpp/src/main/TableSession.h | 10 +- .../client-cpp/src/main/ThriftConnection.cpp | 109 +-- .../client-cpp/src/main/ThriftConnection.h | 25 +- iotdb-client/client-cpp/src/main/TsBlock.cpp | 109 +++ iotdb-client/client-cpp/src/main/TsBlock.h | 55 ++ iotdb-client/client-cpp/src/test/cpp/sessionIT.cpp | 13 +- .../src/test/cpp/sessionRelationalIT.cpp | 112 ++- .../tests/integration/sqlalchemy/test_dialect.py | 2 +- .../iotdb/jdbc/IoTDBAbstractDatabaseMetadata.java | 2 +- .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 6 +- .../java/org/apache/iotdb/jdbc/IoTDBStatement.java | 9 +- .../IoTDBRelationalDatabaseMetadata.java | 8 +- .../java/org/apache/iotdb/rpc/TSStatusCode.java | 6 +- .../response/PipeSubscribeHeartbeatResp.java | 17 +- .../apache/iotdb/session/SessionConnection.java | 3 + .../base/AbstractSubscriptionProviders.java | 13 +- iotdb-core/ainode/ainode/TimerXL/__init__.py | 2 +- .../ainode/ainode/TimerXL/layers/Attn_Bias.py | 43 +- .../ainode/TimerXL/layers/Attn_Projection.py | 14 +- iotdb-core/ainode/ainode/TimerXL/layers/Embed.py | 119 ++- .../ainode/TimerXL/layers/SelfAttention_Family.py | 98 ++- .../ainode/TimerXL/layers/Transformer_EncDec.py | 167 ++-- .../ainode/ainode/TimerXL/layers/__init__.py | 2 +- .../ainode/ainode/TimerXL/models/__init__.py | 2 +- .../ainode/TimerXL/models/configuration_timer.py | 23 +- .../ainode/ainode/TimerXL/models/timer_xl.py | 275 +++--- iotdb-core/ainode/ainode/core/client.py | 128 ++- iotdb-core/ainode/ainode/core/config.py | 121 ++- iotdb-core/ainode/ainode/core/constant.py | 64 +- iotdb-core/ainode/ainode/core/exception.py | 50 +- iotdb-core/ainode/ainode/core/handler.py | 14 +- iotdb-core/ainode/ainode/core/log.py | 32 +- .../ainode/ainode/core/manager/cluster_manager.py | 27 +- .../ainode/core/manager/inference_manager.py | 72 +- .../ainode/ainode/core/manager/model_manager.py | 48 +- .../ainode/core/model/built_in_model_factory.py | 503 +++++++---- .../ainode/ainode/core/model/model_factory.py | 156 ++-- .../ainode/ainode/core/model/model_storage.py | 27 +- .../{TimerXL => core/model/sundial}/__init__.py | 2 +- .../model/sundial/configuration_sundial.py} | 45 +- .../ainode/ainode/core/model/sundial/flow_loss.py | 255 ++++++ .../ainode/core/model/sundial/modeling_sundial.py | 691 +++++++++++++++ .../core/model/sundial/ts_generation_mixin.py | 374 ++++++++ iotdb-core/ainode/ainode/core/script.py | 115 ++- iotdb-core/ainode/ainode/core/service.py | 12 +- iotdb-core/ainode/ainode/core/util/activation.py | 8 +- .../ainode/ainode/core/util/huggingface_cache.py | 51 +- iotdb-core/ainode/ainode/core/util/masking.py | 48 +- iotdb-core/ainode/ainode/core/util/serde.py | 56 +- iotdb-core/ainode/poetry.lock | 707 +++++++++++++-- iotdb-core/ainode/pyproject.toml | 10 +- .../confignode/conf/SystemPropertiesUtils.java | 1 - .../exception/DatabaseNotExistsException.java | 2 +- .../iotdb/confignode/manager/ConfigManager.java | 29 + .../apache/iotdb/confignode/manager/IManager.java | 8 + .../load/cache/detector/PhiAccrualDetector.java | 2 +- .../manager/load/service/TopologyService.java | 2 +- .../iotdb/confignode/manager/node/NodeManager.java | 88 ++ .../PipeConfigNodeRemainingTimeOperator.java | 4 +- .../receiver/protocol/IoTDBConfigNodeReceiver.java | 21 +- .../iotdb/confignode/persistence/ModelInfo.java | 3 +- .../confignode/procedure/InternalProcedure.java | 6 +- .../iotdb/confignode/procedure/Procedure.java | 62 +- .../confignode/procedure/ProcedureExecutor.java | 4 - .../procedure/env/ConfigNodeProcedureEnv.java | 16 +- .../procedure/impl/StateMachineProcedure.java | 8 +- .../procedure/impl/cq/CreateCQProcedure.java | 4 +- .../procedure/impl/node/RemoveAINodeProcedure.java | 4 +- .../impl/pipe/AbstractOperatePipeProcedureV2.java | 4 +- .../pipe/plugin/CreatePipePluginProcedure.java | 4 +- .../impl/pipe/plugin/DropPipePluginProcedure.java | 4 +- .../impl/region/AddRegionPeerProcedure.java | 4 +- .../region/NotifyRegionMigrationProcedure.java | 4 +- .../impl/region/ReconstructRegionProcedure.java | 4 +- .../impl/region/RemoveRegionPeerProcedure.java | 4 +- .../impl/schema/AlterLogicalViewProcedure.java | 4 +- .../impl/schema/DeactivateTemplateProcedure.java | 4 +- .../impl/schema/DeleteDatabaseProcedure.java | 4 +- .../impl/schema/DeleteLogicalViewProcedure.java | 4 +- .../impl/schema/DeleteTimeSeriesProcedure.java | 4 +- .../procedure/impl/schema/SetTTLProcedure.java | 4 +- .../impl/schema/SetTemplateProcedure.java | 4 +- .../impl/schema/UnsetTemplateProcedure.java | 4 +- .../impl/schema/table/AddTableColumnProcedure.java | 4 +- .../impl/schema/table/CreateTableProcedure.java | 4 +- .../impl/schema/table/DeleteDevicesProcedure.java | 4 +- .../schema/table/DropTableColumnProcedure.java | 4 +- .../impl/schema/table/DropTableProcedure.java | 4 +- .../schema/table/RenameTableColumnProcedure.java | 4 +- .../impl/schema/table/RenameTableProcedure.java | 4 +- .../schema/table/SetTablePropertiesProcedure.java | 4 +- .../AbstractOperateSubscriptionProcedure.java | 4 +- .../impl/sync/AbstractOperatePipeProcedure.java | 4 +- .../AddNeverFinishSubProcedureProcedure.java | 4 +- .../impl/testonly/NeverFinishProcedure.java | 4 +- .../thrift/ConfigNodeRPCServiceProcessor.java | 12 + .../confignode/procedure/entity/IncProcedure.java | 5 +- .../confignode/procedure/entity/NoopProcedure.java | 5 +- .../procedure/entity/SimpleLockProcedure.java | 5 +- .../procedure/entity/SimpleSTMProcedure.java | 4 +- .../procedure/entity/SleepProcedure.java | 5 +- .../procedure/entity/StuckSTMProcedure.java | 4 +- .../apache/iotdb/consensus/ConsensusFactory.java | 4 +- .../apache/iotdb/consensus/pipe/PipeConsensus.java | 7 +- .../iotdb/consensus/ratis/RatisConsensus.java | 2 + .../iotdb/consensus/simple/SimpleConsensus.java | 3 +- .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 48 ++ .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 22 + .../org/apache/iotdb/db/conf/IoTDBStartCheck.java | 2 - .../db/consensus/DataRegionConsensusImpl.java | 1 - .../db/consensus/SchemaRegionConsensusImpl.java | 1 - .../dataregion/DataExecutionVisitor.java | 5 + .../dataregion/DataRegionStateMachine.java | 4 + .../metadata/DatabaseNotSetException.java | 13 - .../runtime/TableLostRuntimeException.java} | 23 +- .../runtime/TableNotExistsRuntimeException.java} | 23 +- .../db/pipe/agent/task/PipeDataNodeTaskAgent.java | 11 +- .../agent/task/connection/PipeEventCollector.java | 38 +- .../subtask/connector/PipeConnectorSubtask.java | 73 +- .../evolvable/batch/PipeTabletEventBatch.java | 34 +- .../batch/PipeTransferBatchReqBuilder.java | 7 +- .../connector/protocol/opcua/OpcUaConnector.java | 6 +- .../pipeconsensus/PipeConsensusAsyncConnector.java | 350 +++++--- .../pipeconsensus/PipeConsensusSyncConnector.java | 34 +- ...r.java => PipeConsensusDeleteEventHandler.java} | 64 +- .../PipeConsensusTabletBatchEventHandler.java | 2 +- .../PipeConsensusTabletInsertionEventHandler.java | 21 +- .../PipeConsensusTsFileInsertionEventHandler.java | 10 + .../PipeConsensusTransferBatchReqBuilder.java | 13 +- .../protocol/writeback/WriteBackConnector.java | 3 +- .../builder/PipeTableModelTsFileBuilderV2.java | 13 +- .../util/builder/PipeTreeModelTsFileBuilderV2.java | 11 +- .../statement/PipeStatementInsertionEvent.java | 4 +- .../tablet/PipeInsertNodeTabletInsertionEvent.java | 4 +- .../common/tablet/PipeRawTabletInsertionEvent.java | 4 +- ...oricalDataRegionTsFileAndDeletionExtractor.java | 106 ++- .../realtime/PipeRealtimeDataRegionExtractor.java | 2 + .../PipeRealtimeDataRegionHybridExtractor.java | 201 +++-- .../db/pipe/extractor/mqtt/MQTTPublishHandler.java | 11 +- .../PipeDataNodeRemainingEventAndTimeMetrics.java | 50 +- .../PipeDataNodeRemainingEventAndTimeOperator.java | 45 +- .../pipeconsensus/PipeConsensusReceiver.java | 160 ++-- .../resource/memory/InsertNodeMemoryEstimator.java | 4 + .../resource/memory/PipeDynamicMemoryBlock.java | 156 ++++ .../pipe/resource/memory/PipeMemoryBlockType.java | 2 + .../db/pipe/resource/memory/PipeMemoryManager.java | 54 ++ .../pipe/resource/memory/PipeMemoryWeightUtil.java | 30 +- .../resource/memory/PipeModelFixedMemoryBlock.java | 125 +++ .../strategy/DynamicMemoryAllocationStrategy.java} | 26 +- .../strategy/ThresholdAllocationStrategy.java | 134 +++ .../iotdb/db/protocol/client/ConfigNodeClient.java | 17 + .../protocol/client/ConfigNodeClientManager.java | 1 - .../iotdb/db/protocol/client/ConfigNodeInfo.java | 1 - .../protocol/thrift/impl/ClientRPCServiceImpl.java | 29 +- .../impl/DataNodeInternalRPCServiceImpl.java | 31 +- .../common/header/DatasetHeaderFactory.java | 6 +- .../execution/executor/RegionWriteExecutor.java | 2 + .../execution/fragment/FragmentInstanceInfo.java | 4 + .../execution/fragment/FragmentInstanceState.java | 2 +- .../operator/process/FilterAndProjectOperator.java | 3 + ...erator.java => PatternRecognitionOperator.java} | 159 ++-- .../process/rowpattern/LogicalIndexNavigation.java | 189 ++++ .../rowpattern/PatternPartitionExecutor.java | 442 ++++++++++ .../rowpattern/PatternVariableRecognizer.java | 147 ++++ .../process/rowpattern/PhysicalValueAccessor.java} | 8 +- .../process/rowpattern/PhysicalValuePointer.java | 53 ++ .../rowpattern/expression/ArithmeticOperator.java | 81 ++ .../rowpattern/expression/BinaryComputation.java} | 28 +- .../rowpattern/expression/BinaryOperator.java} | 19 +- .../rowpattern/expression/ComparisonOperator.java | 145 ++++ .../process/rowpattern/expression/Computation.java | 185 ++++ .../expression/ConstantComputation.java} | 17 +- .../rowpattern/expression/LogicalOperator.java | 53 ++ .../rowpattern/expression/NaryComputation.java} | 29 +- .../rowpattern/expression/NaryOperator.java} | 18 +- .../expression/PatternExpressionComputation.java | 153 ++++ .../expression/ReferenceComputation.java} | 26 +- .../process/rowpattern/matcher/ArrayView.java | 55 ++ .../operator/process/rowpattern/matcher/Done.java} | 32 +- .../process/rowpattern/matcher/Instruction.java} | 49 +- .../process/rowpattern/matcher/IntList.java | 82 ++ .../process/rowpattern/matcher/IntMultimap.java | 112 +++ .../process/rowpattern/matcher/IntStack.java} | 46 +- .../matcher/IrRowPatternToProgramRewriter.java | 264 ++++++ .../operator/process/rowpattern/matcher/Jump.java} | 43 +- .../process/rowpattern/matcher/MatchEnd.java} | 32 +- .../process/rowpattern/matcher/MatchLabel.java} | 43 +- .../process/rowpattern/matcher/MatchResult.java} | 34 +- .../process/rowpattern/matcher/MatchStart.java} | 32 +- .../process/rowpattern/matcher/Matcher.java | 256 ++++++ .../rowpattern/matcher/PatternCaptures.java | 66 ++ .../process/rowpattern/matcher/Program.java | 83 ++ .../operator/process/rowpattern/matcher/Save.java} | 32 +- .../operator/process/rowpattern/matcher/Split.java | 69 ++ .../process/window/TableWindowOperator.java | 6 + .../window/function/WindowFunctionFactory.java | 67 ++ .../window/function/rank/NTileFunction.java | 13 +- .../process/window/function/value/LagFunction.java | 59 +- .../window/function/value/LeadFunction.java | 58 +- .../window/function/value/NthValueFunction.java | 23 +- .../window/partition/PartitionExecutor.java | 2 +- .../process/window/partition/frame/FrameInfo.java | 58 ++ .../process/window/partition/frame/RangeFrame.java | 25 +- .../process/window/partition/frame/RowsFrame.java | 20 +- .../process/window/utils/RowComparator.java | 12 + .../InformationSchemaContentSupplierFactory.java | 308 ++++++- .../AbstractApproxMostFrequentAccumulator.java | 57 ++ .../relational/aggregation/AccumulatorFactory.java | 62 ++ .../ApproxCountDistinctAccumulator.java | 5 +- .../BinaryApproxMostFrequentAccumulator.java | 130 +++ .../BlobApproxMostFrequentAccumulator.java | 39 + .../BooleanApproxMostFrequentAccumulator.java | 129 +++ .../DoubleApproxMostFrequentAccumulator.java | 129 +++ .../FloatApproxMostFrequentAccumulator.java | 129 +++ .../IntApproxMostFrequentAccumulator.java | 129 +++ .../LongApproxMostFrequentAccumulator.java | 128 +++ .../ApproxMostFrequentBucketDeserializer.java | 21 + .../ApproxMostFrequentBucketSerializer.java | 21 + .../aggregation/approximate/Counter.java | 71 ++ .../aggregation/approximate/DoublyLinkedList.java | 173 ++++ .../approximate/ExternalizableUtil.java | 31 + .../aggregation/{ => approximate}/HyperLogLog.java | 2 +- .../{ => approximate}/HyperLogLogStateFactory.java | 2 +- .../relational/aggregation/approximate/ITopK.java | 43 + .../aggregation/approximate/ListNode2.java | 42 + .../relational/aggregation/approximate/Pair.java | 56 ++ .../aggregation/approximate/SpaceSaving.java | 147 ++++ .../approximate/SpaceSavingByteCalculator.java | 21 + .../approximate/SpaceSavingStateFactory.java | 90 ++ .../aggregation/approximate/StreamSummary.java | 294 +++++++ ...stractGroupedApproxMostFrequentAccumulator.java | 67 ++ ...BinaryGroupedApproxMostFrequentAccumulator.java | 105 +++ .../BlobGroupedApproxMostFrequentAccumulator.java | 40 + ...ooleanGroupedApproxMostFrequentAccumulator.java | 104 +++ ...DoubleGroupedApproxMostFrequentAccumulator.java | 104 +++ .../FloatGroupedApproxMostFrequentAccumulator.java | 104 +++ .../GroupedApproxCountDistinctAccumulator.java | 6 +- .../IntGroupedApproxMostFrequentAccumulator.java | 104 +++ .../LongGroupedApproxMostFrequentAccumulator.java | 104 +++ .../grouped/array/HyperLogLogBigArray.java | 2 +- .../grouped/array/SpaceSavingBigArray.java | 93 ++ .../iotdb/db/queryengine/plan/Coordinator.java | 4 +- .../db/queryengine/plan/analyze/AnalyzeUtils.java | 6 +- .../queryengine/plan/analyze/AnalyzeVisitor.java | 2 +- .../analyze/cache/partition/PartitionCache.java | 6 +- .../plan/analyze/load/LoadTsFileAnalyzer.java | 22 +- .../execution/config/TableConfigTaskVisitor.java | 50 +- .../config/executor/ClusterConfigTaskExecutor.java | 22 +- .../config/executor/IConfigTaskExecutor.java | 2 +- .../config/metadata/relational/DropDBTask.java | 7 +- .../config/metadata/relational/ShowDBTask.java | 36 +- .../metadata/relational/ShowTablesDetailsTask.java | 2 + .../config/metadata/relational/ShowTablesTask.java | 2 + .../db/queryengine/plan/parser/ASTVisitor.java | 4 +- .../plan/planner/LogicalPlanVisitor.java | 55 +- .../plan/planner/TableOperatorGenerator.java | 459 +++++++++- .../plan/AbstractFragmentParallelPlanner.java | 5 +- .../plan/planner/plan/node/PlanGraphPrinter.java | 39 + .../plan/planner/plan/node/PlanNodeType.java | 8 + .../plan/planner/plan/node/PlanVisitor.java | 10 + .../plan/relational/analyzer/Analysis.java | 281 +++++- .../relational/analyzer/ExpressionAnalysis.java | 11 +- .../relational/analyzer/ExpressionAnalyzer.java | 932 +++++++++++++++++++- .../relational/analyzer/ExpressionTreeUtils.java | 15 +- .../analyzer/PatternRecognitionAnalysis.java | 338 ++++++++ .../analyzer/PatternRecognitionAnalyzer.java | 228 +++++ .../relational/analyzer/StatementAnalyzer.java | 450 ++++++++++ .../function/tvf/ForecastTableFunction.java | 4 +- .../relational/metadata/FunctionNullability.java | 4 + .../plan/relational/metadata/Metadata.java | 6 + .../relational/metadata/TableMetadataImpl.java | 73 +- .../fetcher/TableHeaderSchemaValidator.java | 31 +- .../fetcher/cache/LastCacheLoadStrategy.java} | 29 +- .../fetcher/cache/TableDeviceCacheEntry.java | 13 +- .../fetcher/cache/TableDeviceLastCache.java | 11 + .../fetcher/cache/TableDeviceSchemaCache.java | 26 +- .../fetcher/cache/TreeDeviceNormalSchema.java | 6 +- .../planner/IrExpressionInterpreter.java | 52 ++ .../plan/relational/planner/QueryPlanner.java | 466 ++++++++++ .../plan/relational/planner/RelationPlanner.java | 394 ++++++++- .../plan/relational/planner/SymbolsExtractor.java | 33 +- .../plan/relational/planner/TranslationMap.java | 7 +- .../distribute/TableDistributedPlanGenerator.java | 142 ++- .../planner/ir/ExpressionTreeRewriter.java | 3 +- .../iterative/rule/ExpressionRewriteRuleSet.java | 260 +++--- .../rule/ImplementPatternRecognition.java | 100 +++ .../planner/iterative/rule/OptimizeRowPattern.java | 63 ++ .../rule/PrunePatternRecognitionSourceColumns.java | 78 ++ .../iterative/rule/PruneTableScanColumns.java | 4 +- .../planner/iterative/rule/PruneWindowColumns.java | 89 ++ .../rule/PushDownOffsetIntoTableScan.java | 69 ++ .../iterative/rule/SimplifyExpressions.java | 8 +- .../planner/node/AggregationTableScanNode.java | 14 +- .../node/AggregationTreeDeviceViewScanNode.java | 6 +- .../planner/node/DeviceTableScanNode.java | 32 +- .../plan/relational/planner/node/Measure.java | 95 ++ .../planner/node/PatternRecognitionNode.java | 384 +++++++++ .../plan/relational/planner/node/Patterns.java | 27 +- .../plan/relational/planner/node/RowsPerMatch.java | 127 +++ .../relational/planner/node/SkipToPosition.java} | 32 +- .../node/TreeAlignedDeviceViewScanNode.java | 6 +- .../planner/node/TreeDeviceViewScanNode.java | 10 +- .../node/TreeNonAlignedDeviceViewScanNode.java | 6 +- .../plan/relational/planner/node/WindowNode.java | 602 +++++++++++++ .../DataNodeLocationSupplierFactory.java | 7 +- .../optimizations/DistributedOptimizeFactory.java | 5 +- .../planner/optimizations/JoinUtils.java | 4 +- .../optimizations/LogicalOptimizeFactory.java | 19 +- .../planner/optimizations/ParallelizeGrouping.java | 22 + .../optimizations/PushPredicateIntoTableScan.java | 8 +- .../planner/optimizations/SymbolMapper.java | 112 +++ .../optimizations/UnaliasSymbolReferences.java | 30 +- .../relational/planner/optimizations/Util.java | 4 +- .../planner/rowpattern/ClassifierValuePointer.java | 70 ++ .../rowpattern/ExpressionAndValuePointers.java | 234 +++++ .../planner/rowpattern/IrAlternation.java | 99 +++ .../relational/planner/rowpattern/IrAnchor.java | 87 ++ .../planner/rowpattern/IrConcatenation.java | 100 +++ .../relational/planner/rowpattern/IrEmpty.java} | 49 +- .../relational/planner/rowpattern/IrExclusion.java | 79 ++ .../relational/planner/rowpattern/IrLabel.java | 85 ++ .../rowpattern/IrPatternAlternationOptimizer.java | 141 +++ .../planner/rowpattern/IrPermutation.java | 96 +++ .../planner/rowpattern/IrQuantified.java | 88 ++ .../planner/rowpattern/IrQuantifier.java | 126 +++ .../planner/rowpattern/IrRowPattern.java | 117 +++ .../planner/rowpattern/IrRowPatternFlattener.java | 206 +++++ .../planner/rowpattern/IrRowPatternVisitor.java | 68 ++ .../planner/rowpattern/LogicalIndexPointer.java | 167 ++++ .../rowpattern/MatchNumberValuePointer.java} | 30 +- .../relational/planner/rowpattern/Patterns.java | 83 ++ .../planner/rowpattern/RowPatternToIrRewriter.java | 148 ++++ .../planner/rowpattern/ScalarValuePointer.java | 82 ++ .../planner/rowpattern/ValuePointer.java | 17 + .../relational/security/AccessControlImpl.java | 2 - .../sql/ast/{DropDB.java => AnchorPattern.java} | 43 +- .../plan/relational/sql/ast/AstVisitor.java | 100 +++ .../sql/ast/DefaultTraversalVisitor.java | 48 ++ .../plan/relational/sql/ast/DropDB.java | 6 - .../sql/ast/{DropDB.java => EmptyPattern.java} | 42 +- .../sql/ast/{DropDB.java => ExcludedPattern.java} | 44 +- .../plan/relational/sql/ast/FrameBound.java | 139 +++ .../plan/relational/sql/ast/FunctionCall.java | 198 ++++- .../plan/relational/sql/ast/Identifier.java | 6 + .../ast/{OrderBy.java => MeasureDefinition.java} | 52 +- .../relational/sql/ast/OneOrMoreQuantifier.java} | 13 +- .../plan/relational/sql/ast/OrderBy.java | 29 + .../ast/{OrderBy.java => PatternAlternation.java} | 47 +- .../{OrderBy.java => PatternConcatenation.java} | 47 +- .../ast/{OrderBy.java => PatternPermutation.java} | 47 +- .../ast/{DropDB.java => PatternQuantifier.java} | 48 +- .../sql/ast/PatternRecognitionRelation.java | 205 +++++ .../sql/ast/{DropDB.java => PatternVariable.java} | 44 +- .../sql/ast/{DropDB.java => ProcessingMode.java} | 41 +- .../plan/relational/sql/ast/QualifiedName.java | 23 + .../ast/{OrderBy.java => QuantifiedPattern.java} | 54 +- .../relational/sql/ast/QuerySpecification.java | 10 +- .../sql/ast/{DropDB.java => RangeQuantifier.java} | 55 +- .../plan/relational/sql/ast/RowPattern.java} | 13 +- .../plan/relational/sql/ast/SkipTo.java | 133 +++ .../plan/relational/sql/ast/SortItem.java | 24 + .../ast/{OrderBy.java => SubsetDefinition.java} | 55 +- .../ast/{OrderBy.java => VariableDefinition.java} | 52 +- .../plan/relational/sql/ast/Window.java} | 16 +- .../sql/ast/{DropDB.java => WindowDefinition.java} | 50 +- .../plan/relational/sql/ast/WindowFrame.java | 143 ++++ .../sql/ast/{OrderBy.java => WindowReference.java} | 65 +- .../relational/sql/ast/WindowSpecification.java | 206 +++++ .../relational/sql/ast/ZeroOrMoreQuantifier.java} | 13 +- .../relational/sql/ast/ZeroOrOneQuantifier.java} | 13 +- .../plan/relational/sql/parser/AstBuilder.java | 405 ++++++++- .../plan/relational/sql/rewrite/ShowRewrite.java | 26 +- .../sql/rewrite/StatementRewriteFactory.java | 8 +- .../relational/sql/util/ExpressionFormatter.java | 81 ++ .../plan/relational/sql/util/QueryUtil.java | 38 +- .../relational/sql/util/RowPatternFormatter.java | 143 ++++ .../plan/relational/sql/util/SqlFormatter.java | 139 ++- .../scheduler/FixedRateFragInsStateTracker.java | 65 +- .../scheduler/load/LoadTsFileDispatcherImpl.java | 47 +- .../plan/scheduler/load/LoadTsFileScheduler.java | 39 +- .../statement/metadata/ShowDatabaseStatement.java | 41 +- .../mtree/impl/mem/mnode/info/TableDeviceInfo.java | 2 +- .../mtree/impl/mem/mnode/info/TreeDeviceInfo.java | 2 +- .../schemaregion/utils/ResourceByPathUtils.java | 17 + .../table/DataNodeTreeViewSchemaUtils.java | 20 + .../schemaengine/table/InformationSchemaUtils.java | 12 +- .../java/org/apache/iotdb/db/service/DataNode.java | 17 +- .../iotdb/db/storageengine/StorageEngine.java | 5 +- .../db/storageengine/dataregion/DataRegion.java | 171 +++- .../dataregion/tsfile/TsFileResource.java | 11 + .../dataregion/utils/TsFileResourceUtils.java | 70 +- .../file/AbstractTsFileRecoverPerformer.java | 2 +- .../dataregion/wal/utils/WALInsertNodeCache.java | 96 ++- .../db/storageengine/load/LoadTsFileManager.java | 101 ++- .../load/active/ActiveLoadDirScanner.java | 14 +- .../active/ActiveLoadFailedMessageHandler.java | 33 +- .../load/active/ActiveLoadPendingQueue.java | 45 +- .../load/active/ActiveLoadTsFileLoader.java | 74 +- .../load/config/LoadTsFileConfigurator.java | 18 +- ...leStatementDataTypeConvertExecutionVisitor.java | 98 ++- ...eeStatementDataTypeConvertExecutionVisitor.java | 169 ++-- .../converter/LoadTsFileDataTypeConverter.java | 81 +- .../agent/SubscriptionBrokerAgent.java | 11 + .../db/subscription/broker/SubscriptionBroker.java | 19 + .../batch/SubscriptionPipeTsFileEventBatch.java | 11 + .../receiver/SubscriptionReceiverV1.java | 6 +- .../apache/iotdb/db/utils/ErrorHandlingUtils.java | 4 +- .../iotdb/db/utils/constant/SqlConstant.java | 15 + .../iotdb/db/utils/sort/SortBufferManager.java | 4 +- ...nAlignedTreeDeviceViewScanOperatorTreeTest.java | 29 +- .../rowpattern/IrRowPatternOptimizationTest.java | 208 +++++ .../operator/process/rowpattern/MatcherTest.java | 209 +++++ .../process/rowpattern/PatternExpressionTest.java | 53 ++ .../window/function/rank/NTileFunctionTest.java | 28 +- .../window/function/value/LagFunctionTest.java | 57 +- .../window/function/value/LeadFunctionTest.java | 57 +- .../function/value/NthValueFunctionTest.java | 36 +- .../window/partition/frame/FrameTestUtils.java | 2 +- .../window/partition/frame/RangeFrameTest.java | 20 +- .../planner/node/process/WindowNodeSerdeTest.java | 118 +++ .../plan/relational/analyzer/AnalyzerTest.java | 14 +- .../plan/relational/analyzer/JoinTest.java | 124 +++ .../analyzer/LimitOffsetPushDownTest.java | 13 + .../analyzer/RowPatternRecognitionTest.java | 459 ++++++++++ .../plan/relational/analyzer/SortTest.java | 8 +- .../plan/relational/analyzer/TestPlanBuilder.java | 4 +- .../relational/planner/CorrelatedSubqueryTest.java | 5 +- .../planner/PatternRecognitionNodeSerdeTest.java | 160 ++++ .../plan/relational/planner/PlanTester.java | 9 +- .../planner/UncorrelatedSubqueryTest.java | 9 +- .../relational/planner/WindowFunctionTest.java | 258 ++++++ .../planner/assertions/PlanMatchPattern.java | 23 +- .../conf/iotdb-system.properties.template | 18 + .../iotdb/commons/client/ainode/AINodeClient.java | 4 +- ...ner.java => IoTV2GlobalComponentContainer.java} | 45 +- .../iotdb/commons/concurrent/ThreadName.java | 2 + .../apache/iotdb/commons/conf/CommonConfig.java | 204 ++++- ...meRateAverageTime.java => PipeRateAverage.java} | 8 +- ...sensusRetryWithIncreasingIntervalException.java | 9 +- .../task/subtask/PipeAbstractConnectorSubtask.java | 138 +-- .../agent/task/subtask/PipeReportableSubtask.java | 30 +- .../iotdb/commons/pipe/config/PipeConfig.java | 72 +- .../iotdb/commons/pipe/config/PipeDescriptor.java | 69 +- .../config/constant/PipeConnectorConstant.java | 14 +- .../pipe/connector/protocol/IoTDBConnector.java | 59 +- .../iotdb/commons/pipe/event/EnrichedEvent.java | 10 + .../pipe/receiver/PipeReceiverStatusHandler.java | 55 +- .../commons/pipe/resource/log/PipeLogManager.java | 14 + .../schema/column/ColumnHeaderConstant.java | 21 +- .../commons/schema/table/InformationSchema.java | 61 ++ .../apache/iotdb/commons/schema/table/TsTable.java | 26 +- .../TableBuiltinAggregationFunction.java | 2 +- .../relational/TableBuiltinWindowFunction.java | 60 ++ .../org/apache/iotdb/commons/utils/RetryUtils.java | 12 + .../db/relational/grammar/sql/RelationalSql.g4 | 133 ++- iotdb-doap.rdf | 8 + .../thrift-commons/src/main/thrift/common.thrift | 3 +- .../src/main/thrift/confignode.thrift | 37 +- .../src/main/thrift/datanode.thrift | 2 +- pom.xml | 2 +- scripts/sbin/stop-ainode.sh | 11 +- 526 files changed, 32113 insertions(+), 4952 deletions(-)
