This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch UserDefinedTime in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit dedf5b0945fc54d683eecc9f6fbcf373297fe072 Merge: 0aa1d9c3677 8e5fcba50ba Author: JackieTien97 <[email protected]> AuthorDate: Tue Jan 27 09:38:26 2026 +0800 Merge remote-tracking branch 'origin/master' into UserDefinedTime .github/workflows/multi-language-client.yml | 15 +- distribution/pom.xml | 8 + distribution/src/assembly/all.xml | 4 + distribution/src/assembly/datanode.xml | 6 + .../src/assembly/external-service-impl.xml | 51 + docker/src/main/Dockerfile-1c1d | 4 +- example/client-cpp-example/src/CMakeLists.txt | 64 +- example/mqtt-customize/pom.xml | 6 +- .../server/CustomizedJsonPayloadFormatter.java | 6 +- ...Formatter => org.apache.iotdb.PayloadFormatter} | 0 external-service-impl/mqtt/pom.xml | 177 + .../apache/iotdb}/mqtt/BrokerAuthenticator.java | 2 +- .../apache/iotdb}/mqtt/JSONPayloadFormatter.java | 2 +- .../apache/iotdb}/mqtt/LinePayloadFormatter.java | 2 +- .../org/apache/iotdb}/mqtt/MPPPublishHandler.java | 2 +- .../java/org/apache/iotdb/mqtt}/MQTTService.java | 28 +- .../main/java/org/apache/iotdb}/mqtt/Message.java | 2 +- .../apache/iotdb}/mqtt/PayloadFormatManager.java | 5 +- .../org/apache/iotdb}/mqtt/PayloadFormatter.java | 2 +- .../java/org/apache/iotdb}/mqtt/TableMessage.java | 2 +- .../java/org/apache/iotdb}/mqtt/TreeMessage.java | 2 +- .../org.apache.iotdb.mqtt.PayloadFormatter | 4 +- .../iotdb}/mqtt/BrokerAuthenticatorTest.java | 18 +- .../iotdb}/mqtt/JSONPayloadFormatterTest.java | 3 +- .../iotdb}/mqtt/LinePayloadFormatterTest.java | 3 +- .../iotdb}/mqtt/PayloadFormatManagerTest.java | 8 +- .../pom.xml | 26 +- integration-test/pom.xml | 12 + integration-test/src/assembly/mpp-share.xml | 6 + .../it/env/cluster/node/AbstractNodeWrapper.java | 2 +- .../apache/iotdb/ainode/it/AINodeForecastIT.java | 21 +- .../ainode/it/AINodeInstanceManagementIT.java | 8 + .../db/it/last/IoTDBLastQueryLastCacheIT.java | 42 + .../db/it/schema/IoTDBAlterTimeSeriesTypeIT.java | 52 + .../auto/basic/IoTDBTreePatternFormatIT.java | 13 + .../treemodel/manual/IoTDBPipeInclusionIT.java | 3 + .../treemodel/manual/IoTDBPipePermissionIT.java | 56 + .../iotdb/pipe/it/single/IoTDBPipeOPCUAIT.java | 8 +- .../it/db/it/IoTDBWindowFunction3IT.java | 179 + .../api/customizer/parameter/PipeParameters.java | 23 +- .../customizer/parameter/PipeParametersTest.java | 6 +- .../org/apache/iotdb/tool/data/ExportDataTree.java | 221 +- iotdb-client/client-cpp/pom.xml | 34 +- .../client-cpp/src/main/AbstractSessionBuilder.h | 39 +- iotdb-client/client-cpp/src/main/CMakeLists.txt | 16 +- iotdb-client/client-cpp/src/main/NodesSupplier.cpp | 73 +- iotdb-client/client-cpp/src/main/NodesSupplier.h | 34 +- iotdb-client/client-cpp/src/main/Session.cpp | 2 +- iotdb-client/client-cpp/src/main/Session.h | 4 + iotdb-client/client-cpp/src/main/SessionBuilder.h | 15 + .../client-cpp/src/main/SessionConnection.cpp | 20 +- .../client-cpp/src/main/SessionConnection.h | 5 +- .../client-cpp/src/main/TableSessionBuilder.h | 15 + .../client-cpp/src/main/ThriftConnection.cpp | 16 +- .../client-cpp/src/main/ThriftConnection.h | 6 +- iotdb-client/client-cpp/src/test/CMakeLists.txt | 42 +- iotdb-client/client-cpp/src/test/catch2/catch.hpp | 17974 +++++++++++++++++++ iotdb-client/client-cpp/src/test/main.cpp | 15 +- .../client-py/iotdb/tsfile/utils/tsblock_serde.py | 1 - .../client-py/tests/integration/test_todf.py | 2 +- iotdb-core/ainode/iotdb/ainode/core/constant.py | 2 + .../iotdb/ainode/core/inference/pool_controller.py | 11 + .../iotdb/ainode/core/manager/inference_manager.py | 8 +- iotdb-core/ainode/iotdb/ainode/core/rpc/handler.py | 10 + iotdb-core/ainode/iotdb/ainode/core/rpc/service.py | 12 +- .../pipe/agent/task/PipeConfigNodeSubtask.java | 27 +- .../schema/AlterTimeSeriesDataTypeProcedure.java | 7 +- .../AlterTimeSeriesDataTypeProcedureTest.java | 66 + iotdb-core/datanode/pom.xml | 12 - .../org/apache/iotdb/db/auth/AuthorityChecker.java | 2 + .../apache/iotdb/db/conf/DataNodeMemoryConfig.java | 17 +- .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 2 +- .../dataregion/DataExecutionVisitor.java | 9 +- .../ainode/AINodeConnectionException.java} | 15 +- .../db/pipe/agent/task/PipeDataNodeTaskAgent.java | 6 +- .../subtask/processor/PipeProcessorSubtask.java | 8 +- .../agent/task/subtask/sink/PipeSinkSubtask.java | 40 +- .../common/deletion/PipeDeleteDataNodeEvent.java | 1 + .../tablet/PipeInsertNodeTabletInsertionEvent.java | 15 +- .../scan/TsFileInsertionEventScanParser.java | 157 +- .../protocol/thrift/IoTDBDataNodeReceiver.java | 2 +- .../protocol/opcua/client/IoTDBOpcUaClient.java | 4 +- .../sink/protocol/writeback/WriteBackSink.java | 2 +- ...istoricalDataRegionTsFileAndDeletionSource.java | 3 +- .../impl/DataNodeInternalRPCServiceImpl.java | 8 - .../queryengine/execution/QueryStateMachine.java | 2 +- .../execution/executor/RegionReadExecutor.java | 4 +- .../fragment/FragmentInstanceContext.java | 2 +- .../execution/operator/GroupedTopNBuilder.java} | 17 +- .../operator/GroupedTopNRowNumberAccumulator.java | 483 + .../operator/GroupedTopNRowNumberBuilder.java | 182 + .../queryengine/execution/operator/IdRegistry.java | 76 + .../operator/RowIdComparisonStrategy.java} | 11 +- .../execution/operator/RowIdHashStrategy.java} | 12 +- .../execution/operator/RowReference.java | 45 + .../operator/RowReferenceTsBlockManager.java | 386 + .../SimpleTsBlockWithPositionComparator.java | 52 + .../operator/TsBlockWithPositionComparator.java} | 11 +- .../execution/operator/process/ValuesOperator.java | 120 + .../operator/process/ai/InferenceOperator.java | 7 +- .../operator/process/function/partition/Slice.java | 6 +- .../operator/process/last/LastQueryOperator.java | 6 +- .../operator/process/window/RowNumberOperator.java | 214 + .../process/window/TopKRankingOperator.java | 278 + .../relational/aggregation/RecordIterator.java | 6 +- .../grouped/array/IntArrayFIFOQueue.java | 201 + .../grouped/array/LongBigArrayFIFOQueue.java | 197 + .../grouped/hash/NoChannelGroupByHash.java | 72 + .../execution/schedule/AbstractDriverThread.java | 4 +- .../execution/schedule/task/DriverTask.java | 12 +- .../queryengine/plan/execution/QueryExecution.java | 2 +- .../config/executor/ClusterConfigTaskExecutor.java | 31 +- .../db/queryengine/plan/parser/ASTVisitor.java | 27 +- .../plan/planner/TableOperatorGenerator.java | 129 + .../plan/planner/plan/node/PlanGraphPrinter.java | 42 + .../plan/planner/plan/node/PlanNodeType.java | 12 + .../plan/planner/plan/node/PlanVisitor.java | 16 + .../plan/node/write/RelationalInsertRowsNode.java | 43 - .../node/write/RelationalInsertTabletNode.java | 51 - .../function/tvf/ClassifyTableFunction.java | 10 +- .../function/tvf/ForecastTableFunction.java | 10 +- .../distribute/TableDistributedPlanGenerator.java | 70 + .../iterative/rule/GatherAndMergeWindows.java | 333 + .../iterative/rule/PushDownFilterIntoWindow.java | 166 + .../iterative/rule/PushDownLimitIntoWindow.java | 100 + .../iterative/rule/RemoveRedundantWindow.java | 49 + .../iterative/rule/ReplaceWindowWithRowNumber.java | 72 + .../relational/planner/iterative/rule/Util.java | 45 +- .../plan/relational/planner/node/Patterns.java | 20 +- .../relational/planner/node/RowNumberNode.java | 215 + .../relational/planner/node/TopKRankingNode.java | 208 + .../plan/relational/planner/node/ValuesNode.java | 236 + .../plan/relational/planner/node/WindowNode.java | 4 + .../optimizations/LogicalOptimizeFactory.java | 16 +- .../planner/optimizations/SymbolMapper.java | 33 +- .../optimizations/UnaliasSymbolReferences.java | 24 + .../crud/InsertMultiTabletsStatement.java | 6 +- .../db/queryengine/plan/udf/UDTFForecast.java | 8 +- .../apache/iotdb/db/schemaengine/SchemaEngine.java | 12 +- .../schemaregion/utils/ResourceByPathUtils.java | 54 +- .../java/org/apache/iotdb/db/service/DataNode.java | 16 +- .../externalservice/BuiltinExternalServices.java | 9 +- .../ExternalServiceManagementService.java | 56 +- .../db/storageengine/dataregion/DataRegion.java | 69 +- .../dataregion/modification/ModificationFile.java | 12 +- .../dataregion/snapshot/SnapshotLoader.java | 1 + .../db/storageengine/load/LoadTsFileManager.java | 6 +- .../apache/iotdb/db/utils/ErrorHandlingUtils.java | 14 +- .../org/apache/iotdb/db/utils/HeapTraversal.java | 64 + .../org/apache/iotdb/db/utils/ObjectTypeUtils.java | 61 +- .../pipe/event/PipeTsFileInsertionEventTest.java | 3 + .../pipe/event/TsFileInsertionEventParserTest.java | 4 +- .../db/pipe/pattern/TreePatternPruningTest.java | 2 + .../db/pipe/source/IoTDBDataRegionSourceTest.java | 2 + .../planner/WindowFunctionOptimizationTest.java | 300 + .../planner/assertions/PlanMatchPattern.java | 38 + .../planner/assertions/WindowFunctionMatcher.java | 82 + .../settle/SettleCompactionTaskTest.java | 32 + .../dataregion/snapshot/IoTDBSnapshotTest.java | 78 + .../resources/conf/iotdb-system.properties | 2 +- .../conf/iotdb-system.properties.template | 2 +- .../iotdb/commons/auth/entity/TablePrivilege.java | 3 + .../apache/iotdb/commons/conf/CommonConfig.java | 3 +- .../commons/exception/ObjectFileNotExist.java | 6 +- ...imeSinkNonReportTimeConfigurableException.java} | 40 +- ...RuntimeSinkRetryTimesConfigurableException.java | 27 +- .../task/subtask/PipeAbstractSinkSubtask.java | 52 + .../pipe/config/constant/SystemConstant.java | 2 +- .../datastructure/pattern/IoTDBTreePattern.java | 5 + .../datastructure/pattern/PrefixTreePattern.java | 5 + .../pipe/datastructure/pattern/TreePattern.java | 18 + .../pattern/UnionIoTDBTreePattern.java | 5 + .../datastructure/pattern/UnionTreePattern.java | 5 + .../pattern/WithExclusionIoTDBTreePattern.java | 5 + .../pattern/WithExclusionTreePattern.java | 5 + .../iotdb/commons/pipe/event/EnrichedEvent.java | 5 + .../pipe/receiver/PipeReceiverStatusHandler.java | 36 +- .../apache/iotdb/commons/service/ServiceType.java | 1 - .../ErrorHandlingCommonUtils.java} | 16 +- .../binaryallocator/BinaryAllocatorTest.java | 10 +- .../src/main/thrift/datanode.thrift | 8 - pom.xml | 1 + 182 files changed, 24474 insertions(+), 950 deletions(-)
