This is an automated email from the ASF dual-hosted git repository. shuwenwei pushed a commit to branch read_tsfile_table_function in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit d32ac2b3139268c273712ee304189823484827f0 Merge: 5e7bc0af915 72e72dd2c4e Author: shuwenwei <[email protected]> AuthorDate: Fri Jun 12 11:20:28 2026 +0800 Merge branch 'iotdb_master' into read_tsfile_table_function .codex/hooks.json | 17 + .github/workflows/compile-check.yml | 67 -- .github/workflows/daily-it.yml | 4 +- .github/workflows/daily-ut.yml | 15 +- .github/workflows/multi-language-client.yml | 15 + .gitignore | 2 +- CLAUDE.md | 2 +- CONTRIBUTING.md | 2 +- Jenkinsfile | 2 +- LICENSE-binary | 43 +- README.md | 4 +- README_ZH.md | 4 +- dependencies.json | 318 ++++---- example/jdbc/pom.xml | 4 +- example/pipe-count-point-processor/pom.xml | 4 +- example/pom.xml | 4 +- external-service-impl/mqtt/pom.xml | 4 +- external-service-impl/pom.xml | 4 +- external-service-impl/rest-openapi/pom.xml | 28 +- external-service-impl/rest/pom.xml | 20 +- .../java/org/apache/iotdb/rest/RestService.java | 8 +- .../rest/protocol/filter/ApiOriginFilter.java | 15 +- .../rest/protocol/filter/AuthorizationFilter.java | 36 +- .../rest/protocol/filter/BasicSecurityContext.java | 2 +- .../protocol/handler/AuthorizationHandler.java | 4 +- .../rest/protocol/impl/PingApiServiceImpl.java | 4 +- .../table/v1/handler/ExceptionHandler.java | 2 +- .../table/v1/handler/QueryDataSetHandler.java | 2 +- .../protocol/table/v1/impl/RestApiServiceImpl.java | 4 +- .../rest/protocol/v1/handler/ExceptionHandler.java | 2 +- .../protocol/v1/handler/QueryDataSetHandler.java | 2 +- .../protocol/v1/impl/GrafanaApiServiceImpl.java | 4 +- .../rest/protocol/v1/impl/RestApiServiceImpl.java | 4 +- .../rest/protocol/v2/handler/ExceptionHandler.java | 2 +- .../rest/protocol/v2/handler/FastLastHandler.java | 2 +- .../protocol/v2/handler/QueryDataSetHandler.java | 3 +- .../protocol/v2/impl/GrafanaApiServiceImpl.java | 4 +- .../rest/protocol/v2/impl/RestApiServiceImpl.java | 4 +- .../iotdb/it/env/cluster/config/MppBaseConfig.java | 3 +- .../it/env/cluster/config/MppCommonConfig.java | 7 + .../env/cluster/config/MppSharedCommonConfig.java | 7 + .../it/env/remote/config/RemoteCommonConfig.java | 5 + .../org/apache/iotdb/itbase/env/CommonConfig.java | 2 + .../iotdb/cli/it/ExplainJsonCliOutputIT.java | 345 +++++++++ .../removedatanode/IoTDBRemoveLastDataNodeIT.java | 111 +++ .../it/IoTDBSyntaxConventionStringLiteralIT.java | 2 +- ...DBSingleMeasurementCheckCachePerformanceIT.java | 207 +++++ .../db/it/schema/IoTDBAlterTimeSeriesTypeIT.java | 2 +- .../IoTDBPipeTsFileDecompositionWithModsIT.java | 24 +- .../manual/IoTDBPipeTypeConversionISessionIT.java | 2 +- .../it/insertquery/IoTDBInsertQueryIT.java | 4 +- .../it/query/recent/IoTExplainJsonFormatIT.java | 855 +++++++++++++++++++++ .../it/schema/IoTDBAlterColumnTypeIT.java | 2 +- .../java/org/apache/iotdb/cli/AbstractCli.java | 46 +- .../java/org/apache/iotdb/cli/AbstractCliTest.java | 83 +- iotdb-client/client-cpp/README.md | 5 +- iotdb-client/client-cpp/pom.xml | 8 +- iotdb-client/jdbc/README.md | 4 +- .../src/test/resources/iotdb-common.properties | 2 +- .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 9 + iotdb-core/calc-commons/pom.xml | 5 + .../org/apache/iotdb/calc/i18n/CalcMessages.java | 10 + .../org/apache/iotdb/calc/i18n/CalcMessages.java | 9 + .../fill/filter/FixedIntervalFillFilter.java | 10 +- .../relational/aggregation/ExtremeAccumulator.java | 32 +- .../grouped/GroupedExtremeAccumulator.java | 70 +- .../queue/IndexedBlockingReserveQueue.java | 36 +- .../calc/plan/planner/TableOperatorGenerator.java | 98 ++- .../fill/filter/FixedIntervalFillFilterTest.java} | 24 +- .../aggregation/ExtremeAccumulatorTest.java | 150 ++++ .../iotdb/confignode/i18n/ManagerMessages.java | 8 +- .../iotdb/confignode/i18n/ProcedureMessages.java | 5 + .../iotdb/confignode/i18n/ManagerMessages.java | 14 +- .../iotdb/confignode/i18n/ProcedureMessages.java | 5 + .../confignode/conf/ConfigNodeDescriptor.java | 10 +- .../consensus/response/cq/ShowCQResp.java | 2 +- .../externalservice/ShowExternalServiceResp.java | 2 +- .../balancer/router/leader/HashLeaderBalancer.java | 2 +- .../manager/partition/PartitionManager.java | 18 + .../agent/runtime/PipeConfigNodeRuntimeAgent.java | 17 +- .../pipe/agent/task/PipeConfigNodeSubtask.java | 21 +- .../pipe/coordinator/runtime/PipeMetaSyncer.java | 26 +- .../runtime/heartbeat/PipeHeartbeatParser.java | 43 +- .../runtime/heartbeat/PipeHeartbeatScheduler.java | 7 +- .../pipe/coordinator/task/PipeTaskCoordinator.java | 8 +- .../coordinator/task/PipeTaskCoordinatorLock.java | 10 +- .../receiver/protocol/IoTDBConfigNodeReceiver.java | 4 +- .../schema/ClusterSchemaQuotaStatistics.java | 2 +- .../confignode/persistence/pipe/PipeTaskInfo.java | 9 +- .../mnode/container/ConfigMNodeContainer.java | 2 +- .../procedure/env/ConfigNodeProcedureEnv.java | 7 +- .../procedure/env/RemoveDataNodeHandler.java | 52 +- .../runtime/PipeHandleLeaderChangeProcedure.java | 36 +- .../runtime/PipeHandleMetaChangeProcedure.java | 33 +- .../impl/pipe/runtime/PipeMetaSyncProcedure.java | 6 +- .../impl/region/CreateRegionGroupsProcedure.java | 10 +- .../router/leader/HashLeaderBalancerTest.java | 65 ++ .../pipe/sink/PipeConfigNodeThriftRequestTest.java | 212 +++++ iotdb-core/consensus/pom.xml | 4 +- .../iot/client/AsyncIoTConsensusServiceClient.java | 2 +- iotdb-core/datanode/pom.xml | 8 +- .../iotdb/db/i18n/DataNodeQueryMessages.java | 9 - .../iotdb/db/i18n/DataNodeQueryMessages.java | 9 - .../org/apache/iotdb/db/audit/DNAuditLogger.java | 2 +- .../apache/iotdb/db/conf/DataNodeMemoryConfig.java | 18 + .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 2 +- .../iotdb/db/conf/rest/IoTDBRestServiceConfig.java | 2 +- .../agent/runtime/PipeDataNodeRuntimeAgent.java | 14 +- .../db/pipe/event/common/PipeInsertionEvent.java | 2 +- .../tablet/parser/TabletInsertionEventParser.java | 123 ++- .../scan/AlignedSinglePageWholeChunkReader.java | 2 +- .../parser/scan/SinglePageWholeChunkReader.java | 2 +- .../downsampling/changing/ChangingValueFilter.java | 20 +- .../sdt/SwingingDoorTrendingFilter.java | 19 +- .../tumbling/TumblingTimeSamplingProcessor.java | 7 +- .../exchange/sender/TwoStageAggregateSender.java | 2 +- .../protocol/thrift/IoTDBDataNodeReceiver.java | 6 +- .../statement/PipeConvertedInsertRowStatement.java | 9 + .../resource/log/PipePeriodicalLogReducer.java | 93 --- .../resource/memory/InsertNodeMemoryEstimator.java | 15 +- .../resource/memory/PipeDynamicMemoryBlock.java | 2 +- .../tsfile/PipeTsFileResourceSegmentLock.java | 10 +- .../request/PipeTransferTabletRawReq.java | 89 ++- .../pipe/sink/util/TabletStatementConverter.java | 31 +- .../db/queryengine/common/MPPQueryContext.java | 10 + .../db/queryengine/execution/StateMachine.java | 8 +- .../execution/aggregation/ExtremeAccumulator.java | 32 +- .../SlidingWindowAggregatorFactory.java | 36 +- .../execution/operator/ExplainAnalyzeOperator.java | 70 +- .../execution/operator/window/SessionWindow.java | 24 +- .../operator/window/SessionWindowManager.java | 2 +- .../execution/schedule/DriverScheduler.java | 15 +- .../multilevelqueue/MultilevelPriorityQueue.java | 10 + .../execution/schedule/task/DriverTask.java | 13 + .../execution/schedule/task/DriverTaskId.java | 2 +- .../metric/DriverSchedulerMetricSet.java | 13 + .../iotdb/db/queryengine/plan/Coordinator.java | 17 +- .../db/queryengine/plan/analyze/AnalyzeUtils.java | 34 +- .../plan/analyze/schema/NormalSchemaFetcher.java | 4 +- .../plan/execution/config/ConfigExecution.java | 2 +- .../TableModelStatementMemorySourceVisitor.java | 54 +- .../plan/expression/unary/InExpression.java | 2 +- .../planner/DataNodeTableOperatorGenerator.java | 9 +- .../plan/AbstractFragmentParallelPlanner.java | 3 +- .../planner/plan/node/PlanGraphJsonPrinter.java | 225 ++++++ .../metadata/read/LevelTimeSeriesCountNode.java | 2 +- .../node/metadata/read/TimeSeriesCountNode.java | 2 +- .../metadata/read/TimeSeriesSchemaScanNode.java | 2 +- .../plan/planner/plan/node/write/InsertNode.java | 70 +- .../planner/plan/node/write/InsertRowNode.java | 216 ++++-- .../plan/node/write/InsertRowsOfOneDeviceNode.java | 5 +- .../planner/plan/node/write/InsertTabletNode.java | 351 ++++++--- .../plan/node/write/RelationalInsertRowNode.java | 63 +- .../plan/node/write/RelationalInsertRowsNode.java | 45 +- .../node/write/RelationalInsertTabletNode.java | 111 ++- .../relational/analyzer/StatementAnalyzer.java | 2 + .../fetcher/cache/TreeDeviceNormalSchema.java | 4 +- .../cache/TreeDeviceSchemaCacheManager.java | 9 +- .../plan/relational/planner/CteMaterializer.java | 1 + .../plan/relational/planner/RelationPlanner.java | 25 +- .../relational/planner/TableLogicalPlanner.java | 3 +- .../distribute/TableDistributedPlanner.java | 16 +- ...ithUncorrelatedScalarSubqueryReconstructor.java | 2 + .../planner/node/ExplainAnalyzeNode.java | 39 +- .../optimizations/UnaliasSymbolReferences.java | 3 +- .../plan/relational/sql/ast/Explain.java | 28 +- .../plan/relational/sql/ast/ExplainAnalyze.java | 37 +- .../relational/sql/ast/ExplainOutputFormat.java} | 32 +- .../plan/relational/sql/ast/InsertRow.java | 5 +- .../plan/relational/sql/ast/InsertRows.java | 14 +- .../plan/relational/sql/ast/InsertTablet.java | 13 +- .../plan/relational/sql/ast/PipeEnriched.java | 2 +- .../relational/sql/ast/WrappedInsertStatement.java | 22 +- .../plan/relational/sql/parser/AstBuilder.java | 35 +- .../plan/statement/crud/InsertBaseStatement.java | 210 +++-- .../plan/statement/crud/InsertRowStatement.java | 128 ++- .../crud/InsertRowsOfOneDeviceStatement.java | 12 + .../plan/statement/crud/InsertTabletStatement.java | 161 +++- .../FragmentInstanceStatisticsJsonDrawer.java | 372 +++++++++ .../logfile/FakeCRC32Deserializer.java | 3 +- .../schemaregion/logfile/SchemaLogReader.java | 2 +- .../mem/mnode/container/MemMNodeContainer.java | 2 +- .../mnode/container/CachedMNodeContainer.java | 3 +- .../buffer/TimeSeriesMetadataCache.java | 43 +- .../db/storageengine/dataregion/DataRegion.java | 3 +- .../compaction/schedule/CompactionWorker.java | 2 +- .../dataregion/memtable/AbstractMemTable.java | 120 +-- .../memtable/AbstractWritableMemChunk.java | 17 + .../memtable/AlignedWritableMemChunk.java | 7 +- .../dataregion/memtable/TsFileProcessor.java | 162 ++-- .../dataregion/memtable/WritableMemChunk.java | 7 +- .../dataregion/memtable/WritableMemChunkGroup.java | 2 +- .../dataregion/snapshot/SnapshotLoader.java | 15 + .../consensus/ConsensusLogToTabletConverter.java | 70 +- .../SubscriptionPipeEventBatchSegmentLock.java | 4 +- .../db/trigger/executor/TriggerFireVisitor.java | 53 +- .../java/org/apache/iotdb/db/utils/MemUtils.java | 71 +- .../pipe/event/PipeTabletInsertionEventTest.java | 81 ++ .../changing/ChangingValueFilterTest.java | 55 ++ .../sdt/SwingingDoorTrendingFilterTest.java | 56 ++ .../TumblingTimeSamplingProcessorTest.java | 192 +++++ .../PipeConvertedInsertRowStatementTest.java | 55 ++ .../memory/InsertNodeMemoryEstimatorTest.java | 12 + .../tsfile/PipeTsFileResourceSegmentLockTest.java | 71 ++ .../pipe/sink/PipeDataNodeThriftRequestTest.java | 505 ++++++++++++ .../sink/util/TabletStatementConverterTest.java | 64 ++ .../execution/aggregation/AccumulatorTest.java | 46 ++ .../SlidingWindowAggregatorFactoryTest.java | 41 + .../operator/ExplainAnalyzeOperatorTest.java | 96 +++ .../operator/window/SessionWindowTest.java | 70 ++ .../schedule/DefaultDriverSchedulerTest.java | 41 + .../queryengine/plan/analyze/AnalyzeUtilsTest.java | 74 ++ ...TableModelStatementMemorySourceVisitorTest.java | 88 +++ .../planner/node/PlanGraphJsonPrinterTest.java | 573 ++++++++++++++ .../planner/node/write/InsertRowNodeSerdeTest.java | 127 +++ .../node/write/InsertRowsNodeSerdeTest.java | 35 + .../write/InsertRowsOfOneDeviceNodeSerdeTest.java | 34 + .../node/write/InsertTabletNodeSerdeTest.java | 130 ++++ .../planner/node/write/WritePlanNodeSplitTest.java | 41 + .../write/InsertNodeIsMeasurementFailedTest.java | 255 ++++++ .../relational/planner/CteMaterializerTest.java | 1 + .../plan/relational/planner/CteSubqueryTest.java | 1 + .../plan/relational/sql/ExplainFormatTest.java | 186 +++++ .../crud/InsertStatementPartialInsertTest.java | 320 ++++++++ .../FragmentInstanceStatisticsJsonDrawerTest.java | 594 ++++++++++++++ .../buffer/TimeSeriesMetadataCacheTest.java | 280 +++++++ .../storageengine/dataregion/DataRegionTest.java | 30 +- .../AbstractMemTablePartialInsertTest.java | 113 +++ .../memtable/MemChunkDeserializeTest.java | 23 + .../dataregion/memtable/TsFileProcessorTest.java | 172 +++++ .../ConsensusLogToTabletConverterTest.java | 58 ++ .../SubscriptionPipeEventBatchSegmentLockTest.java | 50 ++ .../org/apache/iotdb/db/utils/MemUtilsTest.java | 127 +++ .../src/test/resources/iotdb-common.properties | 2 +- .../src/test/resources/iotdb-system.properties | 2 +- .../conf/iotdb-system.properties.template | 13 +- .../async/AsyncAINodeInternalServiceClient.java | 2 +- .../AsyncConfigNodeInternalServiceClient.java | 2 +- .../async/AsyncDataNodeExternalServiceClient.java | 2 +- .../async/AsyncDataNodeInternalServiceClient.java | 2 +- .../AsyncDataNodeMPPDataExchangeServiceClient.java | 2 +- .../async/AsyncIoTConsensusV2ServiceClient.java | 2 +- .../async/AsyncPipeDataTransferServiceClient.java | 2 +- .../apache/iotdb/commons/conf/CommonConfig.java | 10 + .../iotdb/commons/conf/CommonDescriptor.java | 9 + .../commons/pipe/resource/log/PipeLogger.java | 18 +- .../resource/log/PipePeriodicalLogReducer.java | 76 ++ .../thrift/request/PipeTransferFileSealReqV2.java | 8 + .../plan/planner/plan/node/PlanNodeType.java | 2 + .../schema/table/InsertNodeMeasurementInfo.java | 9 +- .../org/apache/iotdb/commons/utils/PathUtils.java | 56 +- .../commons/pipe/resource/PipeLoggerTest.java | 83 ++ .../common/PipeTransferSliceReqBuilderTest.java | 32 + .../thrift/request/PipeRequestTypeTest.java | 61 ++ .../request/PipeTransferCompressedReqTest.java | 112 +++ .../request/PipeTransferFileSealReqV2Test.java | 65 ++ .../table/InsertNodeMeasurementInfoTest.java | 83 ++ .../db/relational/grammar/sql/RelationalSql.g4 | 4 +- library-udf/pom.xml | 4 +- pom.xml | 117 ++- scripts/conf/confignode-env.sh | 61 +- scripts/conf/datanode-env.sh | 70 +- scripts/sbin/start-cli.sh | 13 +- scripts/sbin/windows/start-cli.bat | 23 +- scripts/sbin/windows/start-confignode.bat | 20 +- scripts/sbin/windows/start-datanode.bat | 19 +- scripts/tools/ops/health_check.sh | 2 +- scripts/tools/windows/ops/health_check.bat | 4 +- 268 files changed, 11339 insertions(+), 1547 deletions(-) diff --cc iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java index 68d2de1c2a7,6ef5804fac8..a19e72f41dd --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java @@@ -41,7 -39,7 +41,8 @@@ import org.apache.iotdb.db.queryengine. import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.analyze.lock.SchemaLockType; import org.apache.iotdb.db.queryengine.plan.planner.memory.NotThreadSafeMemoryReservationManager; +import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.readTsFile.ExternalTsFileQueryResource; + import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExplainOutputFormat; import org.apache.iotdb.db.queryengine.statistics.QueryPlanStatistics; import com.google.common.collect.ImmutableList;
