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 5c9027555065275bf8481cf9eed7909527f511c2
Merge: 53919670547 66d0c07bb09
Author: shuwenwei <[email protected]>
AuthorDate: Wed Jun 3 17:39:44 2026 +0800

    Merge branch 'iotdb_master' into readTsFileTableFunction

 .../iotdb/ainode/it/AINodeSharedClusterIT.java     |  83 +++++
 .../iotdb/db/it/IoTDBLoadTsFileWithModIT.java      |  22 +-
 .../iotdb/db/it/quotas/IoTDBSpaceQuotaIT.java      |  30 +-
 .../iotdb/db/it/schema/IoTDBMetadataFetchIT.java   |  28 ++
 .../regionscan/IoTDBActiveSchemaQueryIT.java       |  47 +++
 .../manual/enhanced/IoTDBPipeClusterIT.java        |  28 +-
 .../auto/enhanced/IoTDBPipeClusterIT.java          |  28 +-
 .../single/IoTDBLegacyPipeReceiverSecurityIT.java  | 113 ++++++
 .../relational/it/db/it/IoTDBInsertTableIT.java    |  35 ++
 .../api/customizer/parameter/PipeParameters.java   |   1 +
 iotdb-client/client-cpp/src/main/Column.cpp        |  20 ++
 iotdb-client/client-cpp/src/main/Column.h          |   5 +
 iotdb-client/client-cpp/src/main/Common.cpp        |   2 +-
 iotdb-client/client-cpp/src/main/Session.cpp       |   4 +-
 iotdb-client/client-cpp/src/main/Session.h         |  26 +-
 .../client-cpp/src/main/SessionDataSet.cpp         |  25 +-
 iotdb-client/client-cpp/src/main/SessionPool.cpp   | 281 +++++++++++++++
 iotdb-client/client-cpp/src/main/SessionPool.h     | 392 +++++++++++++++++++++
 iotdb-client/client-cpp/src/test/cpp/sessionIT.cpp | 157 ++++++++-
 .../org/apache/iotdb/isession/SessionDataSet.java  |  27 +-
 .../org/apache/iotdb/rpc/IoTDBJDBCDataSet.java     |  47 ++-
 .../java/org/apache/iotdb/rpc/TSStatusCode.java    |   1 +
 .../iotdb/rpc/stmt/PreparedParameterSerde.java     |  13 +-
 .../java/org/apache/iotdb/session/Session.java     | 186 +++++-----
 .../request_scheduler/basic_request_scheduler.py   |  19 +-
 .../core/model/chronos2/pipeline_chronos2.py       |   1 -
 .../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 |   3 +
 .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4   |  27 ++
 .../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4  |  12 +
 .../iotdb/confignode/i18n/ConfigNodeMessages.java  |   4 +-
 .../iotdb/confignode/i18n/ConfigNodeMessages.java  |   4 +-
 .../iotdb/confignode/i18n/ManagerMessages.java     |  14 +-
 .../consensus/request/read/cq/ShowCQPlan.java      |  13 +
 .../consensus/request/write/cq/ActiveCQPlan.java   |  20 +-
 .../consensus/request/write/cq/AddCQPlan.java      |  20 +-
 .../consensus/request/write/cq/DropCQPlan.java     |  20 +-
 .../request/write/cq/UpdateCQLastExecTimePlan.java |  23 +-
 .../iotdb/confignode/manager/cq/CQManager.java     | 102 +++++-
 .../confignode/manager/cq/CQScheduleTask.java      |  58 ++-
 .../iotdb/confignode/persistence/UDFInfo.java      |  54 +--
 .../iotdb/confignode/persistence/cq/CQInfo.java    |  76 ++--
 .../persistence/executor/ConfigPlanExecutor.java   |   3 +-
 .../procedure/impl/cq/CreateCQProcedure.java       |  80 ++++-
 .../request/ConfigPhysicalPlanSerDeTest.java       |   8 +-
 .../apache/iotdb/confignode/cq/CQManagerTest.java  | 107 ++++++
 .../iotdb/confignode/persistence/CQInfoTest.java   |  64 +++-
 .../iotdb/confignode/persistence/UDFInfoTest.java  |  92 +++--
 .../procedure/impl/CreateCQProcedureTest.java      |  26 ++
 .../impl/cq/CreateCQProcedureRecoveryTest.java     | 117 ++++++
 .../iotdb/consensus/config/ConsensusConfig.java    |  15 +
 .../apache/iotdb/consensus/iot/IoTConsensus.java   |  32 +-
 .../consensus/iot/IoTConsensusServerImpl.java      |  96 +++--
 .../apache/iotdb/consensus/iot/ReplicateTest.java  |  27 ++
 .../apache/iotdb/consensus/iot/StabilityTest.java  |   8 +
 .../iotdb/consensus/ratis/RecoverReadTest.java     |   9 +-
 .../apache/iotdb/consensus/ratis/TestUtils.java    |  70 +++-
 .../apache/iotdb/db/i18n/DataNodePipeMessages.java |  21 ++
 .../apache/iotdb/db/i18n/DataNodePipeMessages.java |  74 ++--
 .../iotdb/db/i18n/DataNodeSchemaMessages.java      |  10 +-
 .../org/apache/iotdb/db/auth/LoginLockManager.java |   7 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  13 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |   6 +
 .../db/consensus/DataRegionConsensusImpl.java      |   2 +
 .../dataregion/DataExecutionVisitor.java           |   5 -
 .../pipe/agent/plugin/PipeDataNodePluginAgent.java |  22 +-
 .../task/subtask/sink/PipeSinkSubtaskManager.java  |  54 ++-
 .../common/tsfile/PipeTsFileInsertionEvent.java    |  10 +-
 .../tsfile/parser/TsFileInsertionEventParser.java  |   2 +-
 .../scan/AlignedSinglePageWholeChunkReader.java    |  55 ++-
 .../parser/scan/MemoryControlledChunkReader.java   |  76 ++++
 .../parser/scan/SinglePageWholeChunkReader.java    | 193 +++++++++-
 .../scan/TsFileInsertionEventScanParser.java       |  53 +--
 .../metric/sink/PipeDataRegionSinkMetrics.java     |  10 +-
 .../iotconsensusv2/IoTConsensusV2Receiver.java     |   6 +-
 .../legacy/IoTDBLegacyPipeReceiverAgent.java       |  40 ++-
 .../protocol/thrift/IoTDBDataNodeReceiver.java     |  68 +++-
 .../visitor/PipeStatementExceptionVisitor.java     |   7 +
 .../client/IoTDBDataNodeAsyncClientManager.java    |  28 +-
 .../protocol/airgap/IoTDBDataRegionAirGapSink.java |   5 +-
 .../iotconsensusv2/IoTConsensusV2AsyncSink.java    | 103 ++++--
 .../handler/IoTConsensusV2DeleteEventHandler.java  |  16 +-
 .../IoTConsensusV2TabletBatchEventHandler.java     |  20 +-
 .../IoTConsensusV2TabletInsertionEventHandler.java |  17 +-
 .../IoTConsensusV2TsFileInsertionEventHandler.java |  18 +-
 .../sink/protocol/legacy/IoTDBLegacyPipeSink.java  |  29 +-
 .../thrift/async/IoTDBDataRegionAsyncSink.java     |  40 ++-
 .../handler/PipeTransferTrackableHandler.java      |  21 +-
 .../async/handler/PipeTransferTsFileHandler.java   |  23 +-
 .../thrift/sync/IoTDBDataRegionSyncSink.java       |   5 +-
 .../pipe/sink/util/builder/PipeTsFileBuilder.java  |   6 +-
 .../PipeRealtimeDataRegionHybridSource.java        |   4 +-
 .../realtime/PipeRealtimeDataRegionLogSource.java  |   5 +-
 .../realtime/PipeRealtimeDataRegionSource.java     |   8 +-
 .../PipeRealtimeDataRegionTsFileSource.java        |   5 +-
 .../realtime/assigner/DisruptorQueue.java          |  19 +-
 .../realtime/assigner/PipeDataRegionAssigner.java  |  41 ++-
 .../realtime/disruptor/BatchEventProcessor.java    |  11 +-
 .../realtime/disruptor/MultiProducerSequencer.java |  21 ++
 .../dataregion/realtime/disruptor/RingBuffer.java  |  22 +-
 .../iotdb/db/protocol/session/SessionManager.java  |   6 +-
 .../protocol/thrift/impl/ClientRPCServiceImpl.java |  53 ++-
 .../impl/DataNodeInternalRPCServiceImpl.java       |   6 +-
 .../db/queryengine/common/TimeseriesContext.java   | 294 +++++++++++++++-
 .../execution/executor/RegionReadExecutor.java     |  23 +-
 .../fragment/FragmentInstanceManager.java          |  79 +++--
 .../schema/CountGroupByLevelScanOperator.java      |  15 +-
 .../operator/schema/SchemaCountOperator.java       |   4 +
 .../operator/schema/source/ISchemaSource.java      |   4 +
 .../schema/source/SchemaSourceFactory.java         |  18 +-
 .../schema/source/TimeSeriesSchemaSource.java      |  20 ++
 .../source/ActiveTimeSeriesRegionScanOperator.java |  92 +++--
 .../queryengine/plan/analyze/AnalyzeVisitor.java   | 189 +++++++++-
 .../db/queryengine/plan/parser/ASTVisitor.java     |  12 +-
 .../plan/planner/LogicalPlanBuilder.java           |  16 +-
 .../plan/planner/LogicalPlanVisitor.java           |   8 +-
 .../plan/planner/OperatorTreeGenerator.java        |  52 ++-
 .../plan/planner/distribution/SourceRewriter.java  |  10 +-
 .../metadata/read/LevelTimeSeriesCountNode.java    |  48 ++-
 .../node/metadata/read/TimeSeriesCountNode.java    |  49 ++-
 .../plan/node/source/TimeseriesRegionScanNode.java |   7 +
 .../planner/plan/node/write/DeleteDataNode.java    |  10 +-
 .../planner/plan/node/write/InsertRowNode.java     |  10 +-
 .../planner/plan/node/write/InsertRowsNode.java    |  10 +-
 .../planner/plan/node/write/InsertTabletNode.java  |  17 +-
 .../plan/planner/plan/node/write/ObjectNode.java   |  10 +-
 .../plan/node/write/RelationalDeleteDataNode.java  |  10 +-
 .../plan/node/write/RelationalInsertRowNode.java   |   4 +-
 .../plan/node/write/RelationalInsertRowsNode.java  |   4 +-
 .../node/write/RelationalInsertTabletNode.java     |   7 +-
 .../plan/planner/plan/node/write/SearchNode.java   |  49 +++
 .../fetcher/TableDeviceSchemaValidator.java        |  44 ++-
 .../fetcher/cache/TableDeviceSchemaCache.java      |   6 +-
 .../iterative/rule/PruneTableScanColumns.java      |  54 ++-
 .../planner/optimizations/SortElimination.java     |  46 +++
 .../security/TreeAccessCheckVisitor.java           |  99 +++++-
 .../plan/relational/sql/ast/InsertTablet.java      |  17 +-
 .../scheduler/FragmentInstanceDispatcherImpl.java  |  15 +
 .../plan/statement/crud/LoadTsFileStatement.java   |  25 ++
 .../plan/statement/metadata/CountStatement.java    |   9 +
 .../apache/iotdb/db/schemaengine/SchemaEngine.java |   9 +-
 .../mtree/impl/mem/MTreeBelowSGMemoryImpl.java     |  81 ++++-
 .../mtree/impl/mem/mnode/IMemMNode.java            |  23 +-
 .../mtree/impl/mem/mnode/basic/BasicMNode.java     |  21 +-
 .../impl/mem/mnode/impl/AboveDatabaseMNode.java    |  10 -
 .../mtree/impl/mem/mnode/impl/DatabaseMNode.java   |  10 -
 .../impl/mem/mnode/impl/MeasurementMNode.java      |  10 -
 .../mtree/impl/pbtree/MTreeBelowSGCachedImpl.java  |  83 ++++-
 .../mtree/impl/pbtree/mnode/ICachedMNode.java      |  19 +
 .../impl/pbtree/mnode/basic/CachedBasicMNode.java  |  40 ++-
 .../schemaregion/mtree/traverser/Traverser.java    | 102 ++++++
 .../traverser/basic/MeasurementTraverser.java      |   5 +
 .../iotdb/db/storageengine/StorageEngine.java      |  16 +-
 .../db/storageengine/dataregion/DataRegion.java    |  84 ++++-
 .../execute/task/InnerSpaceCompactionTask.java     |   2 +-
 .../impl/SizeTieredCompactionSelector.java         |   2 +-
 .../filescan/impl/ClosedFileScanHandleImpl.java    |  35 +-
 .../filescan/impl/UnclosedFileScanHandleImpl.java  |  83 +++--
 .../dataregion/snapshot/SnapshotLoader.java        | 106 +++---
 .../dataregion/tsfile/TsFileManager.java           |  21 +-
 .../tsfile/generator/TsFileNameGenerator.java      |   4 +-
 .../tsfile/timeindex/ArrayDeviceTimeIndex.java     |   2 +-
 .../allocation/AbstractNodeAllocationStrategy.java |   6 +-
 .../dataregion/wal/buffer/WALBuffer.java           |  14 +-
 .../dataregion/wal/buffer/WALInfoEntry.java        |  43 ++-
 .../storageengine/dataregion/wal/node/WALNode.java |  11 +-
 .../db/storageengine/load/LoadTsFileManager.java   |   6 +-
 .../storageengine/load/disk/ILoadDiskSelector.java |   2 +-
 .../InheritSystemMultiDisksStrategySelector.java   |   2 +-
 .../db/storageengine/load/disk/MinIOSelector.java  |   2 +-
 .../iotdb/db/storageengine/load/util/LoadUtil.java |   6 +-
 .../db/storageengine/rescon/disk/TierManager.java  |  11 +-
 .../apache/iotdb/db/utils/ErrorHandlingUtils.java  |   2 +-
 .../apache/iotdb/db/utils/ModificationUtils.java   |  57 ++-
 .../apache/iotdb/db/utils/QueryDataSetUtils.java   | 171 ++-------
 .../org/apache/iotdb/db/auth/TreeAccessTest.java   | 133 +++++++
 .../strategy/DirectoryStrategyTest.java            |  10 +-
 .../i18n/DataNodeSchemaMessagesZhFormatTest.java   |  99 ++++++
 .../cache/TreeDeviceSchemaCacheManagerTest.java    |  49 +++
 .../mtree/lock/StampedWriterPreferredLockTest.java |  42 ++-
 .../schemaRegion/SchemaRegionBasicTest.java        |  22 ++
 .../pipe/event/TsFileInsertionEventParserTest.java | 258 +++++++++++++-
 .../receiver/PipeStatementTsStatusVisitorTest.java |  14 +
 .../legacy/IoTDBLegacyPipeReceiverAgentTest.java   | 122 +++++++
 .../protocol/thrift/IoTDBDataNodeReceiverTest.java | 110 ++++++
 .../realtime/disruptor/DisruptorShutdownTest.java  |  56 +++
 .../execution/executor/RegionReadExecutorTest.java |  46 +++
 .../execution/operator/LimitOperatorTest.java      |   3 +
 .../operator/schema/SchemaCountOperatorTest.java   | 113 ++++++
 .../schema/source/TimeSeriesSchemaSourceTest.java  | 183 ++++++++++
 .../distribution/RegionScanPlanningTest.java       |  81 +++++
 .../logical/RegionScanLogicalPlannerTest.java      |  47 +++
 .../metadata/read/SchemaCountNodeSerdeTest.java    |   8 +-
 .../planner/node/write/InsertRowNodeSerdeTest.java |  90 +++++
 .../node/write/InsertRowsNodeSerdeTest.java        | 141 ++++++++
 .../node/write/InsertTabletNodeSerdeTest.java      |  67 ++++
 .../IPlanVisitorInheritanceConstraintTest.java     |  54 ++-
 .../plan/relational/analyzer/SortTest.java         |  44 +++
 .../fetcher/TableDeviceSchemaValidatorTest.java    |  29 +-
 .../plan/relational/sql/ast/InsertTabletTest.java  |  69 ++++
 .../mtree/impl/mem/MTreeBelowSGMemoryImplTest.java | 281 +++++++++++++++
 .../impl/pbtree/MTreeBelowSGCachedImplTest.java    | 217 ++++++++++++
 .../iotdb/db/storageengine/dataregion/TTLTest.java |   4 +-
 .../BatchedCompactionWithTsFileSplitterTest.java   |  16 +-
 ...actionWithReadPointPerformerValidationTest.java |   4 +-
 .../utils/CompactionFileGeneratorUtils.java        |   2 +-
 .../utils/MultiTsFileDeviceIteratorTest.java       |   7 +-
 .../dataregion/snapshot/IoTDBSnapshotTest.java     | 115 +++++-
 .../dataregion/wal/io/WALFileTest.java             |  57 +++
 .../wal/node/WALNodeWaitForRollFileTest.java       |  29 +-
 .../rescon/disk/FolderManagerTest.java             |   5 +-
 .../conf/iotdb-system.properties.template          |   6 +
 .../apache/iotdb/commons/i18n/PipeMessages.java    |  14 +
 .../apache/iotdb/commons/i18n/UtilMessages.java    |  12 +
 .../apache/iotdb/commons/i18n/PipeMessages.java    |  14 +
 .../apache/iotdb/commons/i18n/UtilMessages.java    |  12 +
 .../apache/iotdb/commons}/disk/FolderManager.java  |  53 ++-
 .../commons}/disk/strategy/DirectoryStrategy.java  |  12 +-
 .../disk/strategy/DirectoryStrategyType.java       |   2 +-
 .../strategy/MaxDiskUsableSpaceFirstStrategy.java  |   4 +-
 .../MinFolderOccupiedSpaceFirstStrategy.java       |   8 +-
 .../strategy/RandomOnDiskUsableSpaceStrategy.java  |   4 +-
 .../commons}/disk/strategy/SequenceStrategy.java   |   4 +-
 .../exception/DiskSpaceInsufficientException.java  |   4 +-
 .../executable/ReferenceCountedJarMetaKeeper.java  | 136 +++++++
 .../org/apache/iotdb/commons/path/PartialPath.java |  28 +-
 .../meta/ConfigNodePipePluginMetaKeeper.java       |  50 +--
 .../plugin/env/PipeTaskSinkRuntimeEnvironment.java |   9 +
 .../pipe/datastructure/pattern/TreePattern.java    |  36 +-
 .../commons/pipe/sink/protocol/IoTDBSink.java      |   7 +-
 .../node/common/AbstractAboveDatabaseMNode.java    |   4 +
 .../commons/schema/node/utils/IMNodeIterator.java  |   2 +-
 .../commons/schema/tree/AbstractTreeVisitor.java   |   4 +
 .../ReferenceCountedJarMetaKeeperTest.java         | 116 ++++++
 233 files changed, 8419 insertions(+), 1327 deletions(-)

diff --cc 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableScanColumns.java
index 97dc0672b55,bf02d62f546..5a7ab6eadfa
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableScanColumns.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableScanColumns.java
@@@ -27,9 -27,10 +27,11 @@@ import org.apache.iotdb.db.queryengine.
  import 
org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor;
  import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode;
  import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode;
 +import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExternalTsFileScanNode;
  import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode;
+ import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeAlignedDeviceViewScanNode;
  import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode;
+ import 
org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeNonAlignedDeviceViewScanNode;
  
  import java.util.ArrayList;
  import java.util.LinkedHashMap;
@@@ -127,24 -172,10 +173,26 @@@ public class PruneTableScanColumns exte
                  deviceTableScanNode.getPushDownLimit(),
                  deviceTableScanNode.getPushDownOffset(),
                  deviceTableScanNode.isPushLimitToEachDevice(),
-                 deviceTableScanNode.containsNonAlignedDevice()));
+                 deviceTableScanNode.containsNonAlignedDevice());
+         
prunedNode.setRegionReplicaSet(deviceTableScanNode.getRegionReplicaSet());
+         return Optional.of(prunedNode);
        }
 +    } else if (node instanceof ExternalTsFileScanNode) {
 +      ExternalTsFileScanNode externalTsFileScanNode = 
(ExternalTsFileScanNode) node;
 +      return Optional.of(
 +          new ExternalTsFileScanNode(
 +              externalTsFileScanNode.getPlanNodeId(),
 +              externalTsFileScanNode.getQualifiedObjectName(),
 +              newOutputs,
 +              newAssignments,
 +              externalTsFileScanNode.getPushDownPredicate(),
 +              externalTsFileScanNode.getPushDownLimit(),
 +              externalTsFileScanNode.getPushDownOffset(),
 +              externalTsFileScanNode.getTagPredicate().orElse(null),
 +              externalTsFileScanNode.getTimePredicate().orElse(null),
 +              externalTsFileScanNode.getScanOrder(),
 +              externalTsFileScanNode.getPushedOrderingScheme().orElse(null),
 +              externalTsFileScanNode.getTsFilePaths()));
      } else if (node instanceof InformationSchemaTableScanNode) {
        // For the convenience of process in execution stage, column-prune for
        // InformationSchemaTableScanNode is

Reply via email to