This is an automated email from the ASF dual-hosted git repository. justinchen pushed a commit to branch pipe-api in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 3ae0390667fd26899c444db88f79956619e898c2 Merge: 4027aec98d8 9386468268e Author: Caideyipi <[email protected]> AuthorDate: Fri Dec 19 10:56:41 2025 +0800 Merge branch 'master' of https://github.com/apache/iotdb into pipe-api code-coverage/pom.xml | 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 + .../env/cluster/config/MppSharedCommonConfig.java | 7 + .../iotdb/it/env/cluster/node/DataNodeWrapper.java | 4 + .../it/env/remote/config/RemoteCommonConfig.java | 5 + .../org/apache/iotdb/itbase/env/CommonConfig.java | 2 + .../iotdb/itbase/runtime/ClusterTestResultSet.java | 16 +- .../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 +- .../it/query/recent/IoTDBTableFunctionIT.java | 92 ++++++ .../iotdb/relational/it/schema/IoTDBTableIT.java | 131 ++++++++ .../relational/it/session/IoTDBObjectInsertIT.java | 329 +++++++++++++++++++++ .../it/session/IoTDBObjectInsertIT2.java | 170 +++++++++++ .../it/session/IoTDBSessionRelationalIT.java | 1 - .../src/test/resources/object-example.pt | Bin 0 -> 1906 bytes iotdb-api/external-api/pom.xml | 2 +- iotdb-api/pipe-api/pom.xml | 2 +- .../java/org/apache/iotdb/pipe/api/type/Type.java | 5 +- 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 + 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 | 5 + iotdb-client/session/pom.xml | 10 +- .../java/org/apache/iotdb/session/Session.java | 8 +- .../payload/SubscriptionSessionDataSet.java | 1 + .../apache/iotdb/session/util/SessionUtils.java | 3 + iotdb-core/ainode/pom.xml | 12 +- iotdb-core/antlr/pom.xml | 2 +- iotdb-core/confignode/pom.xml | 26 +- .../iotdb/confignode/conf/ConfigNodeConfig.java | 10 + .../confignode/conf/ConfigNodeDescriptor.java | 5 + .../confignode/conf/SystemPropertiesUtils.java | 12 + .../iotdb/confignode/manager/node/NodeManager.java | 1 + .../manager/schema/ClusterSchemaManager.java | 13 +- iotdb-core/consensus/pom.xml | 14 +- iotdb-core/datanode/pom.xml | 40 +-- .../apache/iotdb/db/conf/DataNodeMemoryConfig.java | 5 +- .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 20 ++ .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 13 + .../dataregion/DataExecutionVisitor.java | 13 + .../processor/aggregate/AggregateProcessor.java | 3 + .../resource/memory/InsertNodeMemoryEstimator.java | 1 + .../sink/protocol/opcda/OpcDaServerHandle.java | 2 + .../sink/util/sorter/PipeInsertEventSorter.java | 1 + .../protocol/thrift/impl/ClientRPCServiceImpl.java | 2 +- .../impl/DataNodeInternalRPCServiceImpl.java | 8 + .../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/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 + .../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 ++- .../plan/analyze/ClusterPartitionFetcher.java | 4 + .../execution/config/TableConfigTaskVisitor.java | 10 + .../config/executor/ClusterConfigTaskExecutor.java | 21 ++ .../plan/planner/OperatorTreeGenerator.java | 1 + .../plan/planner/TableOperatorGenerator.java | 29 +- .../plan/planner/plan/node/PlanNodeType.java | 8 + .../plan/planner/plan/node/PlanVisitor.java | 5 + .../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 ++++++++ .../relational/analyzer/StatementAnalyzer.java | 15 +- .../relational/metadata/TableMetadataImpl.java | 45 ++- .../fetcher/TableDeviceSchemaValidator.java | 23 +- .../planner/distribute/AddExchangeNodes.java | 41 ++- .../plan/relational/sql/ast/DeleteDevice.java | 3 +- .../plan/relational/sql/ast/InsertRow.java | 11 +- .../plan/relational/sql/ast/InsertRows.java | 14 +- .../plan/relational/sql/ast/InsertTablet.java | 9 + .../plan/relational/sql/util/AstUtil.java | 30 ++ .../plan/relational/type/CompatibleResolver.java | 5 + .../plan/relational/type/InternalTypeManager.java | 6 + .../plan/relational/utils/TypeUtil.java | 13 +- .../scheduler/FragmentInstanceDispatcherImpl.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 +- .../iotdb/db/service/metrics/FileMetrics.java | 20 ++ .../db/service/metrics/file/ObjectFileMetrics.java | 86 ++++++ .../iotdb/db/storageengine/StorageEngine.java | 44 +++ .../storageengine/dataregion/Base32ObjectPath.java | 169 +++++++++++ .../db/storageengine/dataregion/DataRegion.java | 84 +++++- .../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 +- .../memtable/AlignedReadOnlyMemChunk.java | 2 + .../memtable/AlignedWritableMemChunk.java | 1 + .../dataregion/memtable/WritableMemChunk.java | 1 + .../read/reader/chunk/DiskAlignedChunkLoader.java | 16 +- .../read/reader/chunk/DiskChunkLoader.java | 10 + .../read/reader/chunk/MemAlignedPageReader.java | 1 + .../read/reader/chunk/MemPageReader.java | 2 + .../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 + .../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 | 308 +++++++++++++++++++ .../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 + .../plan/function/RecordObjectTypeTest.java | 154 ++++++++++ .../scalar/BlobLengthColumnTransformerTest.java | 22 +- .../unary/scalar/ObjectTypeFunctionTest.java | 186 ++++++++++++ .../object/ObjectTypeCompactionTest.java | 314 ++++++++++++++++++++ .../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 | 24 +- .../conf/iotdb-system.properties.template | 10 + .../apache/iotdb/commons/conf/IoTDBConstant.java | 1 + .../commons/exception/ObjectFileNotExist.java} | 23 +- .../apache/iotdb/commons/schema/table/TsTable.java | 31 ++ .../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 +- iotdb-protocol/openapi/pom.xml | 2 +- iotdb-protocol/pom.xml | 2 +- iotdb-protocol/thrift-ainode/pom.xml | 4 +- iotdb-protocol/thrift-commons/pom.xml | 2 +- iotdb-protocol/thrift-confignode/pom.xml | 4 +- .../src/main/thrift/confignode.thrift | 1 + iotdb-protocol/thrift-consensus/pom.xml | 4 +- iotdb-protocol/thrift-datanode/pom.xml | 4 +- .../thrift-datanode/src/main/thrift/client.thrift | 2 +- .../src/main/thrift/datanode.thrift | 8 + library-udf/pom.xml | 4 +- pom.xml | 4 +- 292 files changed, 5329 insertions(+), 391 deletions(-)
