This is an automated email from the ASF dual-hosted git repository. justinchen pushed a commit to branch new_opc_server in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 7b2ff0ab5015b833a7c9317b1330718a57aa8825 Merge: 8fddc8dd340 2bdbd41eee8 Author: Caideyipi <[email protected]> AuthorDate: Mon Dec 22 11:59:04 2025 +0800 Merge branch 'master' of https://github.com/apache/iotdb into new_opc_server .github/workflows/cluster-it-1c1d1a.yml | 3 - LICENSE | 10 + LICENSE-binary | 4 +- code-coverage/pom.xml | 2 +- dependencies.json | 2 +- distribution/pom.xml | 12 +- example/client-cpp-example/pom.xml | 2 +- example/jdbc/pom.xml | 2 +- example/mqtt-customize/pom.xml | 2 +- example/mqtt/pom.xml | 2 +- example/pipe-count-point-processor/pom.xml | 2 +- example/pipe-opc-ua-sink/pom.xml | 2 +- example/pom.xml | 2 +- example/rest-java-example/pom.xml | 2 +- example/schema/pom.xml | 2 +- example/session/pom.xml | 2 +- .../apache/iotdb/TableModelSessionPoolExample.java | 2 +- example/trigger/pom.xml | 2 +- example/udf/pom.xml | 2 +- integration-test/pom.xml | 32 +- .../it/env/cluster/config/MppCommonConfig.java | 6 + .../it/env/cluster/config/MppDataNodeConfig.java | 6 + .../env/cluster/config/MppSharedCommonConfig.java | 7 + .../iotdb/it/env/cluster/node/AINodeWrapper.java | 2 +- .../iotdb/it/env/cluster/node/DataNodeWrapper.java | 4 + .../it/env/remote/config/RemoteCommonConfig.java | 5 + .../it/env/remote/config/RemoteDataNodeConfig.java | 5 + .../org/apache/iotdb/itbase/env/CommonConfig.java | 2 + .../apache/iotdb/itbase/env/DataNodeConfig.java | 2 + .../iotdb/itbase/runtime/ClusterTestResultSet.java | 16 +- .../iotdb/itbase/runtime/ClusterTestStatement.java | 7 + .../iotdb/ainode/it/AINodeCallInferenceIT.java | 117 ++ .../iotdb/ainode/it/AINodeClusterConfigIT.java | 3 - .../ainode/it/AINodeConcurrentForecastIT.java | 119 ++ .../ainode/it/AINodeConcurrentInferenceIT.java | 187 --- .../apache/iotdb/ainode/it/AINodeForecastIT.java | 188 +++ .../iotdb/ainode/it/AINodeInferenceSQLIT.java | 344 ------ .../ainode/it/AINodeInstanceManagementIT.java | 79 +- .../iotdb/ainode/it/AINodeModelManageIT.java | 53 +- .../apache/iotdb/ainode/utils/AINodeTestUtils.java | 138 ++- .../iotdb/db/it/audit/IoTDBAuditLogBasicIT.java | 2 + .../it/query/IoTDBPredicateConversionTreeIT.java | 293 +++++ .../it/db/it/IoTDBPreparedStatementIT.java | 385 ++++++ .../it/query/object/IoTDBObjectQueryIT.java | 200 ++++ .../it/query/object/IoTDBObjectQueryIT2.java | 296 +++++ .../it/query/old/IoTDBSimpleQueryTableIT.java | 63 +- .../scalar/IoTDBScalarFunctionTableIT.java | 16 +- .../it/query/recent/IoTDBLengthFunctionIT.java | 2 +- .../recent/IoTDBPredicateConversionTableIT.java | 379 ++++++ .../it/query/recent/IoTDBTableFunctionIT.java | 92 ++ .../informationschema/IoTDBCurrentQueriesIT.java | 263 +++++ .../relational/it/schema/IoTDBDatabaseIT.java | 20 +- .../iotdb/relational/it/schema/IoTDBTableIT.java | 138 +++ .../relational/it/session/IoTDBObjectInsertIT.java | 329 ++++++ .../it/session/IoTDBObjectInsertIT2.java | 170 +++ .../it/session/IoTDBSessionRelationalIT.java | 1 - .../iotdb/session/it/IoTDBConnectionsIT.java | 364 ++++++ .../src/test/resources/ainode-example/config.yaml | 5 - .../{ainode-example/model.pt => object-example.pt} | Bin iotdb-api/external-api/pom.xml | 2 +- iotdb-api/pipe-api/pom.xml | 7 +- .../iotdb/pipe/api/collector/DataCollector.java | 23 +- .../iotdb/pipe/api/collector/TabletCollector.java | 30 +- .../api/customizer/parameter/PipeParameters.java | 31 +- .../event/dml/insertion/TabletInsertionEvent.java | 11 + .../java/org/apache/iotdb/pipe/api/type/Type.java | 5 +- .../customizer/parameter/PipeParametersTest.java | 26 +- iotdb-api/pom.xml | 2 +- iotdb-api/trigger-api/pom.xml | 2 +- iotdb-api/udf-api/pom.xml | 2 +- .../iotdb/udf/api/relational/access/Record.java | 44 +- .../java/org/apache/iotdb/udf/api/type/Type.java | 10 +- iotdb-client/cli/pom.xml | 22 +- .../java/org/apache/iotdb/cli/AbstractCli.java | 1 + .../org/apache/iotdb/tool/data/ExportData.java | 5 +- iotdb-client/client-cpp/pom.xml | 4 +- iotdb-client/client-cpp/src/main/Common.cpp | 1 + iotdb-client/client-cpp/src/main/Common.h | 3 +- .../client-cpp/src/main/IoTDBRpcDataSet.cpp | 1 + iotdb-client/client-cpp/src/main/Session.cpp | 30 +- iotdb-client/client-cpp/src/main/Session.h | 54 +- .../client-cpp/src/main/SessionDataSet.cpp | 2 + .../src/test/cpp/sessionRelationalIT.cpp | 12 +- iotdb-client/client-py/pom.xml | 8 +- iotdb-client/isession/pom.xml | 8 +- .../org/apache/iotdb/isession/SessionDataSet.java | 17 + iotdb-client/jdbc/pom.xml | 8 +- .../iotdb/jdbc/IoTDBAbstractDatabaseMetadata.java | 1 + .../org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java | 29 +- iotdb-client/pom.xml | 2 +- iotdb-client/service-rpc/pom.xml | 6 +- .../org/apache/iotdb/rpc/IoTDBJDBCDataSet.java | 6 + .../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java | 6 + .../java/org/apache/iotdb/rpc/TSStatusCode.java | 26 +- iotdb-client/session/pom.xml | 24 +- .../java/org/apache/iotdb/session/Session.java | 8 +- .../payload/SubscriptionSessionDataSet.java | 1 + .../apache/iotdb/session/util/SessionUtils.java | 3 + iotdb-core/ainode/ainode.spec | 138 ++- iotdb-core/ainode/iotdb/ainode/core/config.py | 41 +- iotdb-core/ainode/iotdb/ainode/core/constant.py | 206 +--- iotdb-core/ainode/iotdb/ainode/core/exception.py | 110 +- .../core/inference/dispatcher/basic_dispatcher.py | 6 +- .../ainode/core/inference/inference_request.py | 37 +- .../core/inference/inference_request_pool.py | 124 +- .../inference/{strategy => pipeline}/__init__.py | 0 .../core/inference/pipeline/basic_pipeline.py | 104 ++ .../core/inference/pipeline/pipeline_loader.py | 56 + .../iotdb/ainode/core/inference/pool_controller.py | 87 +- .../iotdb/ainode/core/inference/pool_group.py | 6 +- .../pool_scheduler/basic_pool_scheduler.py | 6 +- .../strategy/abstract_inference_pipeline.py | 60 - .../strategy/timer_sundial_inference_pipeline.py | 51 - .../strategy/timerxl_inference_pipeline.py | 51 - .../ainode/iotdb/ainode/core/inference/utils.py | 45 +- .../iotdb/ainode/core/manager/inference_manager.py | 208 +--- .../iotdb/ainode/core/manager/model_manager.py | 157 +-- .../ainode/iotdb/ainode/core/manager/utils.py | 11 +- .../ainode/core/model/built_in_model_factory.py | 1238 -------------------- .../core/model/{timerxl => chronos2}/__init__.py | 0 .../iotdb/ainode/core/model/chronos2/base.py | 300 +++++ .../ainode/core/model/chronos2/chronos_bolt.py | 703 +++++++++++ .../iotdb/ainode/core/model/chronos2/config.py | 138 +++ .../iotdb/ainode/core/model/chronos2/dataset.py | 756 ++++++++++++ .../iotdb/ainode/core/model/chronos2/layers.py | 481 ++++++++ .../iotdb/ainode/core/model/chronos2/model.py | 909 ++++++++++++++ .../core/model/chronos2/pipeline_chronos2.py | 391 +++++++ .../iotdb/ainode/core/model/chronos2/utils.py | 242 ++++ .../{timerxl/__init__.py => model_constants.py} | 24 + .../ainode/iotdb/ainode/core/model/model_enums.py | 70 -- .../iotdb/ainode/core/model/model_factory.py | 291 ----- .../ainode/iotdb/ainode/core/model/model_info.py | 144 ++- .../ainode/iotdb/ainode/core/model/model_loader.py | 155 +++ .../iotdb/ainode/core/model/model_storage.py | 761 ++++++------ .../strategy => model/sktime}/__init__.py | 0 .../ainode/core/model/sktime/arima/config.json | 25 + .../core/model/sktime/configuration_sktime.py | 409 +++++++ .../model/sktime/exponential_smoothing/config.json | 11 + .../core/model/sktime/gaussian_hmm/config.json | 22 + .../ainode/core/model/sktime/gmm_hmm/config.json | 24 + .../ainode/core/model/sktime/modeling_sktime.py | 180 +++ .../core/model/sktime/naive_forecaster/config.json | 9 + .../ainode/core/model/sktime/pipeline_sktime.py | 75 ++ .../core/model/sktime/stl_forecaster/config.json | 22 + .../ainode/core/model/sktime/stray/config.json | 11 + .../ainode/core/model/sundial/modeling_sundial.py | 8 +- .../ainode/core/model/sundial/pipeline_sundial.py | 61 + .../strategy => model/timer_xl}/__init__.py | 0 .../{timerxl => timer_xl}/configuration_timer.py | 0 .../model/{timerxl => timer_xl}/modeling_timer.py | 9 +- .../ainode/core/model/timer_xl/pipeline_timer.py | 56 + .../{timerxl => timer_xl}/ts_generation_mixin.py | 0 .../ainode/iotdb/ainode/core/model/uri_utils.py | 137 --- iotdb-core/ainode/iotdb/ainode/core/model/utils.py | 137 +++ iotdb-core/ainode/iotdb/ainode/core/rpc/client.py | 39 - iotdb-core/ainode/iotdb/ainode/core/rpc/handler.py | 83 +- iotdb-core/ainode/iotdb/ainode/core/util/serde.py | 30 +- iotdb-core/ainode/pom.xml | 12 +- iotdb-core/ainode/pyproject.toml | 11 +- iotdb-core/antlr/pom.xml | 2 +- iotdb-core/confignode/pom.xml | 26 +- .../iotdb/confignode/audit/CNAuditLogger.java | 50 +- .../async/AsyncAINodeHeartbeatClientPool.java | 19 +- .../async/AsyncDataNodeHeartbeatClientPool.java | 1 - .../confignode/conf/SystemPropertiesUtils.java | 15 + .../consensus/request/ConfigPhysicalPlan.java | 24 - .../request/read/model/GetModelInfoPlan.java | 64 - .../request/read/model/ShowModelPlan.java | 70 -- .../request/write/model/CreateModelPlan.java | 79 -- .../request/write/model/DropModelInNodePlan.java | 70 -- .../request/write/model/DropModelPlan.java | 79 -- .../request/write/model/UpdateModelInfoPlan.java | 122 -- .../consensus/response/model/GetModelInfoResp.java | 63 - .../consensus/response/model/ModelTableResp.java | 62 - .../iotdb/confignode/manager/ConfigManager.java | 179 --- .../apache/iotdb/confignode/manager/IManager.java | 42 - .../iotdb/confignode/manager/ModelManager.java | 245 ---- .../iotdb/confignode/manager/ProcedureManager.java | 20 - .../iotdb/confignode/manager/node/NodeManager.java | 1 + .../manager/schema/ClusterSchemaManager.java | 13 +- .../iotdb/confignode/persistence/ModelInfo.java | 378 ------ .../persistence/executor/ConfigPlanExecutor.java | 25 - .../persistence/pipe/PipePluginInfo.java | 78 +- .../procedure/impl/model/CreateModelProcedure.java | 250 ---- .../procedure/impl/model/DropModelProcedure.java | 200 ---- .../procedure/impl/node/RemoveAINodeProcedure.java | 17 +- .../impl/pipe/task/AlterPipeProcedureV2.java | 1 + .../procedure/state/RemoveAINodeState.java | 1 - .../procedure/store/ProcedureFactory.java | 12 - .../confignode/procedure/store/ProcedureType.java | 2 + .../thrift/ConfigNodeRPCServiceProcessor.java | 25 - iotdb-core/consensus/pom.xml | 14 +- iotdb-core/datanode/pom.xml | 42 +- .../org/apache/iotdb/db/audit/DNAuditLogger.java | 398 +------ .../iotdb/db/auth/ClusterAuthorityFetcher.java | 59 +- .../apache/iotdb/db/conf/DataNodeMemoryConfig.java | 5 +- .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 76 ++ .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 47 + .../dataregion/DataExecutionVisitor.java | 13 + .../db/exception/ainode/GetModelInfoException.java | 2 +- .../agent/task/subtask/sink/PipeSinkSubtask.java | 7 +- .../db/pipe/event/common/row/PipeRowCollector.java | 35 +- .../tablet/PipeInsertNodeTabletInsertionEvent.java | 85 +- .../common/tablet/PipeRawTabletEventConverter.java | 72 ++ .../common/tablet/PipeRawTabletInsertionEvent.java | 7 + .../event/common/tablet/PipeTabletCollector.java | 61 + .../tablet/parser/TabletInsertionEventParser.java | 4 + .../TabletInsertionEventTablePatternParser.java | 14 +- .../TabletInsertionEventTreePatternParser.java | 10 + .../processor/aggregate/AggregateProcessor.java | 3 + .../resource/memory/InsertNodeMemoryEstimator.java | 1 + .../request/PipeTransferTabletBatchReqV2.java | 7 +- .../request/PipeTransferTabletRawReq.java | 110 +- .../request/PipeTransferTabletRawReqV2.java | 50 +- .../sink/protocol/opcda/OpcDaServerHandle.java | 2 + .../pipe/sink/protocol/opcua/OpcUaNameSpace.java | 122 +- .../db/pipe/sink/protocol/opcua/OpcUaSink.java | 71 +- .../handler/PipeTransferTrackableHandler.java | 1 + .../sink/protocol/writeback/WriteBackSink.java | 4 +- .../pipe/sink/util/TabletStatementConverter.java | 476 ++++++++ .../sink/util/sorter/InsertEventDataAdapter.java | 127 ++ .../util/sorter/InsertTabletStatementAdapter.java | 118 ++ ...EventSorter.java => PipeInsertEventSorter.java} | 95 +- .../sorter/PipeTableModelTabletEventSorter.java | 67 +- .../sorter/PipeTreeModelTabletEventSorter.java | 48 +- .../db/pipe/sink/util/sorter/TabletAdapter.java | 113 ++ .../db/protocol/client/AINodeClientFactory.java | 133 --- .../iotdb/db/protocol/client/ConfigNodeClient.java | 30 +- .../protocol/client/DataNodeClientPoolFactory.java | 42 +- .../db/protocol/client/ainode/AINodeClient.java | 401 ------- .../client/ainode/AINodeClientManager.java | 75 -- .../iotdb/db/protocol/client/an/AINodeClient.java | 321 +++++ .../db/protocol/client/an/AINodeClientManager.java | 52 +- .../protocol/rest/v2/impl/RestApiServiceImpl.java | 16 +- .../iotdb/db/protocol/session/ClientSession.java | 23 + .../iotdb/db/protocol/session/IClientSession.java | 48 + .../db/protocol/session/InternalClientSession.java | 24 + .../db/protocol/session/MqttClientSession.java | 23 + .../db/protocol/session/PreparedStatementInfo.java | 99 ++ .../db/protocol/session/RestClientSession.java | 25 + .../iotdb/db/protocol/session/SessionManager.java | 66 +- .../thrift/handler/BaseServerContextHandler.java | 1 + .../protocol/thrift/impl/ClientRPCServiceImpl.java | 338 +++++- .../impl/DataNodeInternalRPCServiceImpl.java | 8 + .../db/queryengine/common/ConnectionInfo.java | 64 + .../iotdb/db/queryengine/common/QueryId.java | 7 + .../execution/aggregation/AccumulatorFactory.java | 1 + .../execution/aggregation/AvgAccumulator.java | 1 + .../execution/aggregation/ExtremeAccumulator.java | 6 + .../aggregation/FirstValueAccumulator.java | 6 + .../aggregation/LastValueAccumulator.java | 6 + .../aggregation/MaxMinByBaseAccumulator.java | 6 + .../execution/aggregation/MaxValueAccumulator.java | 6 + .../execution/aggregation/MinValueAccumulator.java | 6 + .../execution/aggregation/SumAccumulator.java | 1 + .../execution/aggregation/VarianceAccumulator.java | 1 + .../execution/executor/RegionWriteExecutor.java | 14 + .../execution/memory/LocalMemoryManager.java | 1 - .../execution/operator/AggregationUtil.java | 1 + .../execution/operator/process/TopKOperator.java | 2 + .../operator/process/TransformOperator.java | 1 + .../operator/process/ai/InferenceOperator.java | 82 +- .../operator/process/function/partition/Slice.java | 53 +- .../process/join/merge/MergeSortComparator.java | 1 + .../expression/PatternExpressionComputation.java | 5 +- .../process/window/function/value/LagFunction.java | 1 + .../window/function/value/LeadFunction.java | 1 + .../process/window/utils/RowComparator.java | 3 + .../execution/operator/source/SeriesScanUtil.java | 1 + .../InformationSchemaContentSupplierFactory.java | 323 +++-- .../relational/LastQueryAggTableScanOperator.java | 1 + .../relational/aggregation/AccumulatorFactory.java | 2 + .../ApproxCountDistinctAccumulator.java | 1 + .../relational/aggregation/AvgAccumulator.java | 2 + .../relational/aggregation/ExtremeAccumulator.java | 5 + .../relational/aggregation/FirstAccumulator.java | 4 + .../relational/aggregation/FirstByAccumulator.java | 4 + .../relational/aggregation/LastAccumulator.java | 4 + .../relational/aggregation/LastByAccumulator.java | 4 + .../aggregation/MaskedRecordIterator.java | 2 - .../relational/aggregation}/RecordIterator.java | 61 +- .../relational/aggregation/SumAccumulator.java | 2 + .../aggregation/TableMaxMinByBaseAccumulator.java | 5 + .../aggregation/TableVarianceAccumulator.java | 2 + .../UserDefinedAggregateFunctionAccumulator.java | 1 - .../source/relational/aggregation/Utils.java | 2 + .../GroupedApproxCountDistinctAccumulator.java | 1 + .../aggregation/grouped/GroupedAvgAccumulator.java | 1 + .../grouped/GroupedExtremeAccumulator.java | 8 + .../grouped/GroupedFirstAccumulator.java | 8 + .../grouped/GroupedFirstByAccumulator.java | 9 + .../grouped/GroupedLastAccumulator.java | 8 + .../grouped/GroupedLastByAccumulator.java | 9 + .../aggregation/grouped/GroupedMaxAccumulator.java | 8 + .../grouped/GroupedMaxMinByBaseAccumulator.java | 15 + .../aggregation/grouped/GroupedMinAccumulator.java | 8 + .../grouped/GroupedModeAccumulator.java | 4 + .../aggregation/grouped/GroupedSumAccumulator.java | 1 + .../GroupedUserDefinedAggregateAccumulator.java | 2 +- .../grouped/GroupedVarianceAccumulator.java | 1 + .../operator/window/WindowManagerFactory.java | 2 + .../relational/ColumnTransformerBuilder.java | 41 +- .../iotdb/db/queryengine/plan/Coordinator.java | 440 ++++++- .../queryengine/plan/analyze/AnalyzeVisitor.java | 134 +-- .../plan/analyze/ClusterPartitionFetcher.java | 4 + .../db/queryengine/plan/analyze/IModelFetcher.java | 4 - .../db/queryengine/plan/analyze/ModelFetcher.java | 51 +- .../plan/execution/IQueryExecution.java | 2 + .../queryengine/plan/execution/QueryExecution.java | 5 + .../plan/execution/config/ConfigExecution.java | 5 + .../execution/config/TableConfigTaskVisitor.java | 39 +- .../execution/config/TreeConfigTaskVisitor.java | 4 +- .../config/executor/ClusterConfigTaskExecutor.java | 74 +- .../config/executor/IConfigTaskExecutor.java | 2 +- ...eateTrainingTask.java => CreateTuningTask.java} | 8 +- .../execution/config/session/DeallocateTask.java | 72 ++ .../plan/execution/config/session/PrepareTask.java | 85 ++ .../session/PreparedStatementMemoryManager.java | 157 +++ .../predicate/ConvertPredicateToFilterVisitor.java | 134 ++- .../db/queryengine/plan/parser/ASTVisitor.java | 22 +- .../plan/planner/OperatorTreeGenerator.java | 1 + .../plan/planner/TableOperatorGenerator.java | 55 +- .../planner/distribution/ExchangeNodeAdder.java | 6 +- .../plan/planner/plan/node/PlanNodeType.java | 8 + .../plan/planner/plan/node/PlanVisitor.java | 5 + .../plan/node/process/AI/InferenceNode.java | 3 +- .../planner/plan/node/source/ShowQueriesNode.java | 2 +- .../planner/plan/node/write/InsertRowNode.java | 11 +- .../planner/plan/node/write/InsertTabletNode.java | 29 +- .../plan/planner/plan/node/write/ObjectNode.java | 327 ++++++ .../plan/node/write/RelationalInsertRowsNode.java | 48 +- .../node/write/RelationalInsertTabletNode.java | 122 ++ .../parameter/model/ModelInferenceDescriptor.java | 61 +- .../relational/analyzer/StatementAnalyzer.java | 106 +- .../analyzer/StatementAnalyzerFactory.java | 17 +- .../predicate/ConvertPredicateToFilterVisitor.java | 116 +- .../function/TableBuiltinTableFunction.java | 6 +- .../function/tvf/ClassifyTableFunction.java | 383 ++++++ .../function/tvf/ForecastTableFunction.java | 298 ++--- .../plan/relational/metadata/Metadata.java | 6 - .../relational/metadata/TableMetadataImpl.java | 50 +- .../fetcher/TableDeviceSchemaValidator.java | 27 +- .../plan/relational/planner/TableModelPlanner.java | 25 +- .../planner/distribute/AddExchangeNodes.java | 41 +- .../distribute/TableDistributedPlanGenerator.java | 8 +- .../DataNodeLocationSupplierFactory.java | 4 +- .../optimizations/PushPredicateIntoTableScan.java | 100 ++ .../plan/relational/sql/AstMemoryEstimator.java | 67 ++ .../plan/relational/sql/ParameterExtractor.java | 121 ++ .../plan/relational/sql/ast/AstVisitor.java | 16 + .../plan/relational/sql/ast/Deallocate.java | 79 ++ .../plan/relational/sql/ast/DeleteDevice.java | 3 +- .../plan/relational/sql/ast/Execute.java | 96 ++ .../plan/relational/sql/ast/ExecuteImmediate.java | 99 ++ .../plan/relational/sql/ast/InsertRow.java | 11 +- .../plan/relational/sql/ast/InsertRows.java | 14 +- .../plan/relational/sql/ast/InsertTablet.java | 9 + .../plan/relational/sql/ast/LoadTsFile.java | 61 +- .../plan/relational/sql/ast/Prepare.java | 87 ++ .../plan/relational/sql/ast/Statement.java | 25 + .../plan/relational/sql/parser/AstBuilder.java | 38 + .../plan/relational/sql/util/AstUtil.java | 30 + .../plan/relational/type/CompatibleResolver.java | 5 + .../plan/relational/type/InternalTypeManager.java | 6 + .../relational/utils/ResultColumnAppender.java | 145 +++ .../plan/relational/utils/TypeUtil.java | 13 +- .../scheduler/FragmentInstanceDispatcherImpl.java | 2 +- .../db/queryengine/plan/statement/Statement.java | 23 + .../plan/statement/component/OrderByComponent.java | 6 + .../plan/statement/crud/InsertBaseStatement.java | 10 + .../plan/statement/crud/InsertTabletStatement.java | 204 +++- .../plan/statement/crud/LoadTsFileStatement.java | 48 + .../db/queryengine/plan/udf/UDTFForecast.java | 27 +- .../FragmentInstanceStatisticsDrawer.java | 2 +- .../udf/UserDefineScalarFunctionTransformer.java | 2 +- .../AbstractCastFunctionColumnTransformer.java | 10 + ...r.java => AbstractLengthColumnTransformer.java} | 15 +- .../unary/scalar/BlobLengthColumnTransformer.java | 25 +- .../scalar/CastFunctionColumnTransformer.java | 3 + .../unary/scalar/LengthColumnTransformer.java | 30 +- .../scalar/ObjectLengthColumnTransformer.java} | 23 +- .../unary/scalar/ReadObjectColumnTransformer.java | 114 ++ .../scalar/TryCastFunctionColumnTransformer.java | 3 + .../dag/input/ConstantInputReader.java | 1 + .../unary/ArithmeticNegationTransformer.java | 1 + .../dag/transformer/unary/InTransformer.java | 2 + .../unary/scalar/CastFunctionTransformer.java | 7 + .../unary/scalar/DiffFunctionTransformer.java | 1 + .../unary/scalar/RoundFunctionTransformer.java | 1 + .../transformation/dag/util/TransformUtils.java | 2 + .../transformation/dag/util/TypeUtils.java | 1 + .../datastructure/row/SerializableRowList.java | 2 + .../datastructure/tv/SerializableTVList.java | 1 + .../schemaregion/impl/SchemaRegionMemoryImpl.java | 6 +- .../schemaregion/impl/SchemaRegionPBTreeImpl.java | 2 +- .../java/org/apache/iotdb/db/service/DataNode.java | 3 + .../iotdb/db/service/metrics/FileMetrics.java | 20 + .../db/service/metrics/file/ObjectFileMetrics.java | 86 ++ .../metrics/memory/QueryEngineMemoryMetrics.java | 12 +- .../iotdb/db/storageengine/StorageEngine.java | 44 + .../storageengine/dataregion/Base32ObjectPath.java | 169 +++ .../db/storageengine/dataregion/DataRegion.java | 90 +- .../db/storageengine/dataregion/IObjectPath.java | 70 ++ .../storageengine/dataregion/PlainObjectPath.java | 126 ++ .../performer/impl/FastCompactionPerformer.java | 3 +- .../execute/task/CrossSpaceCompactionTask.java | 6 + .../execute/task/InnerSpaceCompactionTask.java | 6 + .../execute/task/SettleCompactionTask.java | 7 +- .../compaction/execute/utils/CompactionUtils.java | 184 +++ .../execute/utils/MultiTsFileDeviceIterator.java | 19 +- .../fast/FastAlignedSeriesCompactionExecutor.java | 26 +- .../FastNonAlignedSeriesCompactionExecutor.java | 6 +- .../fast/element/ChunkMetadataElement.java | 10 +- .../fast/reader/CompactionAlignedChunkReader.java | 8 +- .../ReadChunkAlignedSeriesCompactionExecutor.java | 1 + .../readchunk/SingleSeriesCompactionExecutor.java | 1 + .../utils/writer/AbstractCompactionWriter.java | 1 + .../compaction/repair/RepairDataFileScanUtil.java | 2 +- .../dataregion/memtable/AbstractMemTable.java | 86 +- .../memtable/AlignedReadOnlyMemChunk.java | 2 + .../memtable/AlignedWritableMemChunk.java | 133 ++- .../dataregion/memtable/IMemTable.java | 6 +- .../dataregion/memtable/TsFileProcessor.java | 18 +- .../dataregion/memtable/WritableMemChunk.java | 53 +- .../read/reader/chunk/DiskAlignedChunkLoader.java | 16 +- .../read/reader/chunk/DiskChunkLoader.java | 10 + .../read/reader/chunk/MemAlignedPageReader.java | 1 + .../read/reader/chunk/MemPageReader.java | 2 + .../allocation/AbstractNodeAllocationStrategy.java | 21 +- .../dataregion/wal/buffer/WALBuffer.java | 3 + .../dataregion/wal/buffer/WALEntry.java | 6 + .../dataregion/wal/buffer/WALEntryType.java | 4 +- .../dataregion/wal/buffer/WALInfoEntry.java | 4 + .../dataregion/wal/node/IWALNode.java | 3 + .../dataregion/wal/node/WALFakeNode.java | 6 + .../storageengine/dataregion/wal/node/WALNode.java | 52 +- .../file/UnsealedTsFileRecoverPerformer.java | 2 + .../storageengine/load/active/ActiveLoadAgent.java | 90 ++ .../splitter/BatchedAlignedValueChunkData.java | 2 + .../db/storageengine/rescon/disk/TierManager.java | 50 + .../rescon/memory/PrimitiveArrayManager.java | 1 + .../iotdb/db/tools/TsFileSplitByPartitionTool.java | 1 + .../org/apache/iotdb/db/utils/CommonUtils.java | 1 + .../iotdb/db/utils/EncodingInferenceUtils.java | 1 + .../java/org/apache/iotdb/db/utils/MemUtils.java | 4 +- .../org/apache/iotdb/db/utils/ObjectTypeUtils.java | 303 +++++ .../org/apache/iotdb/db/utils/ObjectWriter.java | 82 ++ .../apache/iotdb/db/utils/QueryDataSetUtils.java | 11 +- .../org/apache/iotdb/db/utils/TabletDecoder.java | 1 + .../apache/iotdb/db/utils/TimeValuePairUtils.java | 2 + .../apache/iotdb/db/utils/TypeInferenceUtils.java | 1 + .../db/utils/datastructure/AlignedTVList.java | 12 + .../MergeSortMultiAlignedTVListIterator.java | 1 + .../MergeSortMultiTVListIterator.java | 1 + .../datastructure/MultiAlignedTVListIterator.java | 1 + .../utils/datastructure/MultiTVListIterator.java | 1 + .../iotdb/db/utils/datastructure/TVList.java | 5 + .../db/utils/windowing/window/WindowImpl.java | 1 + .../pipe/event/TsFileInsertionEventParserTest.java | 34 +- .../pipe/sink/PipeDataNodeThriftRequestTest.java | 4 +- .../apache/iotdb/db/pipe/sink/PipeSinkTest.java | 101 ++ .../db/pipe/sink/PipeStatementEventSorterTest.java | 313 +++++ .../sink/util/TabletStatementConverterTest.java | 607 ++++++++++ .../operator/MergeTreeSortOperatorTest.java | 5 + .../predicate/TreePredicateConversionTest.java | 572 +++++++++ .../plan/function/RecordObjectTypeTest.java | 154 +++ .../plan/parser/StatementGeneratorTest.java | 33 + ...NodeSerdeTest.java => SourceNodeSerdeTest.java} | 20 +- .../plan/relational/analyzer/AnalyzerTest.java | 7 +- .../plan/relational/analyzer/AuthTest.java | 10 +- .../analyzer/RowPatternRecognitionTest.java | 4 +- .../plan/relational/analyzer/TSBSMetadata.java | 6 - .../relational/analyzer/TableFunctionTest.java | 7 +- .../plan/relational/analyzer/TestMetadata.java | 19 - .../plan/relational/planner/PlanTester.java | 6 +- .../planner/assertions/ColumnReference.java | 10 +- .../planner/assertions/PlanMatchPattern.java | 20 +- .../informationschema/CurrentQueriesTest.java | 184 +++ .../informationschema}/ShowQueriesTest.java | 8 +- .../predicate/TablePredicateConversionTest.java | 506 ++++++++ .../scalar/BlobLengthColumnTransformerTest.java | 22 +- .../unary/scalar/ObjectTypeFunctionTest.java | 186 +++ .../object/ObjectTypeCompactionTest.java | 314 +++++ .../memtable/WritableMemChunkRegionScanTest.java | 359 ++++++ .../wal/allocation/FirstCreateStrategyTest.java | 81 ++ .../datastructure/PrimitiveArrayManagerTest.java | 1 + iotdb-core/metrics/core/pom.xml | 4 +- iotdb-core/metrics/interface/pom.xml | 8 +- iotdb-core/metrics/pom.xml | 2 +- iotdb-core/node-commons/pom.xml | 27 +- .../conf/iotdb-system.properties.template | 16 + .../iotdb/commons/audit/AbstractAuditLogger.java | 77 +- .../iotdb/commons/client/ClientPoolFactory.java | 28 + .../async/AsyncAINodeInternalServiceClient.java} | 25 +- .../async/AsyncPipeDataTransferServiceClient.java | 7 +- .../iotdb/commons/concurrent/ThreadName.java | 1 + .../apache/iotdb/commons/conf/CommonConfig.java | 9 + .../iotdb/commons/conf/CommonDescriptor.java | 6 + .../apache/iotdb/commons/conf/IoTDBConstant.java | 1 + .../commons/exception/ObjectFileNotExist.java} | 13 +- .../commons/file/SystemPropertiesHandler.java | 13 +- .../iotdb/commons/model/ModelInformation.java | 43 +- .../org/apache/iotdb/commons/model/ModelTable.java | 4 +- .../service/PipePluginExecutableManager.java | 9 + .../pipe/config/constant/PipeSinkConstant.java | 12 + .../pipe/receiver/PipeReceiverStatusHandler.java | 6 +- .../schema/column/ColumnHeaderConstant.java | 18 +- .../commons/schema/table/InformationSchema.java | 78 +- .../apache/iotdb/commons/schema/table/TsTable.java | 34 + .../apache/iotdb/commons/udf/builtin/UDTFAbs.java | 3 + .../iotdb/commons/udf/builtin/UDTFBottomK.java | 1 + .../commons/udf/builtin/UDTFCommonDerivative.java | 1 + .../udf/builtin/UDTFCommonValueDifference.java | 1 + .../iotdb/commons/udf/builtin/UDTFConst.java | 5 + .../udf/builtin/UDTFContinuouslySatisfy.java | 2 + .../udf/builtin/UDTFEqualSizeBucketAggSample.java | 1 + .../udf/builtin/UDTFEqualSizeBucketM4Sample.java | 1 + .../builtin/UDTFEqualSizeBucketOutlierSample.java | 1 + .../builtin/UDTFEqualSizeBucketRandomSample.java | 1 + .../iotdb/commons/udf/builtin/UDTFInRange.java | 3 + .../apache/iotdb/commons/udf/builtin/UDTFJexl.java | 3 + .../apache/iotdb/commons/udf/builtin/UDTFM4.java | 1 + .../apache/iotdb/commons/udf/builtin/UDTFMath.java | 3 + .../udf/builtin/UDTFNonNegativeDerivative.java | 1 + .../builtin/UDTFNonNegativeValueDifference.java | 1 + .../iotdb/commons/udf/builtin/UDTFOnOff.java | 1 + .../iotdb/commons/udf/builtin/UDTFSelectK.java | 2 + .../apache/iotdb/commons/udf/builtin/UDTFTopK.java | 1 + .../iotdb/commons/udf/builtin/UDTFValueTrend.java | 1 + .../relational/TableBuiltinScalarFunction.java | 1 + .../commons/udf/utils/UDFDataTypeTransformer.java | 7 + .../apache/iotdb/commons/utils/SerializeUtils.java | 6 + iotdb-core/pom.xml | 2 +- iotdb-core/relational-grammar/pom.xml | 2 +- .../db/relational/grammar/sql/RelationalSql.g4 | 23 + iotdb-protocol/openapi/pom.xml | 2 +- iotdb-protocol/pom.xml | 2 +- iotdb-protocol/thrift-ainode/pom.xml | 4 +- .../thrift-ainode/src/main/thrift/ainode.thrift | 25 +- iotdb-protocol/thrift-commons/pom.xml | 2 +- iotdb-protocol/thrift-confignode/pom.xml | 4 +- .../src/main/thrift/confignode.thrift | 64 +- iotdb-protocol/thrift-consensus/pom.xml | 4 +- iotdb-protocol/thrift-datanode/pom.xml | 4 +- .../thrift-datanode/src/main/thrift/client.thrift | 3 +- .../src/main/thrift/datanode.thrift | 8 + library-udf/pom.xml | 4 +- pom.xml | 20 +- scripts/sbin/windows/start-confignode.bat | 28 - scripts/sbin/windows/start-datanode.bat | 48 - 550 files changed, 23302 insertions(+), 9049 deletions(-)
