This is an automated email from the ASF dual-hosted git repository. shuwenwei pushed a commit to branch skipNotSatisfiedTimeRange in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 5a58eb90d2518b90dc81da44b985fb1ffe223cbb Merge: 0425267e1c9 73a0cd8d399 Author: shuwenwei <s13979062...@gmail.com> AuthorDate: Fri Oct 10 15:35:33 2025 +0800 Merge branch 'iotdb_master' into skipNotSatisfiedTimeRange .github/workflows/cluster-it-1c1d.yml | 31 +- .github/workflows/cluster-it-1c1d1a.yml | 4 +- .github/workflows/cluster-it-1c3d.yml | 26 +- .github/workflows/compile-check.yml | 24 +- .github/workflows/daily-it.yml | 208 ++- .github/workflows/daily-ut.yml | 14 +- .github/workflows/dependency-check.yml | 22 +- .github/workflows/pipe-it.yml | 128 +- .github/workflows/sonar-codecov.yml | 10 +- .github/workflows/table-cluster-it-1c1d.yml | 33 +- .github/workflows/table-cluster-it-1c3d.yml | 26 +- .github/workflows/unit-test.yml | 22 +- .github/workflows/vulnerability-check.yml | 12 +- CONTRIBUTING.md | 2 +- LICENSE | 35 +- LICENSE-binary | 22 +- README.md | 18 +- README_ZH.md | 17 +- dependencies.json | 1 - docker/ReadMe.md | 2 +- .../src/TableModelSessionExample.cpp | 4 +- example/jdbc/pom.xml | 8 + .../java/org/apache/iotdb/it/env/EnvFactory.java | 2 +- .../it/env/cluster/config/MppCommonConfig.java | 24 + .../env/cluster/config/MppSharedCommonConfig.java | 28 + .../iotdb/it/env/cluster/env/AbstractEnv.java | 2 +- .../iotdb/it/env/cluster/node/AINodeWrapper.java | 2 +- .../it/env/remote/config/RemoteCommonConfig.java | 20 + .../org/apache/iotdb/itbase/env/CommonConfig.java | 8 + .../itbase/runtime/ClusterTestConnection.java | 10 +- .../iotdb/itbase/runtime/ClusterTestStatement.java | 4 +- .../iotdb/itbase/runtime/NodeConnection.java | 12 +- .../ainode/it/AINodeConcurrentInferenceIT.java | 239 +++ .../iotdb/ainode/it/AINodeInferenceSQLIT.java | 114 +- .../ainode/it/AINodeInstanceManagementIT.java | 212 +++ .../apache/iotdb/ainode/utils/AINodeTestUtils.java | 35 + .../iotdb/auth/it/IoTDBLoginLockManagerIT.java | 179 ++ ...oTDBMultiDBRegionGroupLeaderDistributionIT.java | 3 +- .../load/IoTDBRegionGroupLeaderDistributionIT.java | 15 + .../IoTDBAutoRegionGroupExtension2IT.java | 2 + .../partition/IoTDBAutoRegionGroupExtensionIT.java | 5 +- .../it/partition/IoTDBPartitionCreationIT.java | 6 + .../it/partition/IoTDBPartitionDurableIT.java | 12 + .../it/partition/IoTDBPartitionGetterIT.java | 2 +- ...IoTDBRegionOperationReliabilityITFramework.java | 10 +- .../IoTDBRegionGroupExpandAndShrinkForIoTV1IT.java | 4 +- .../commit/IoTDBRegionReconstructForIoTV1IT.java | 2 +- .../IoTDBRegionMigrateWithCompressionRatioIT.java | 130 ++ .../org/apache/iotdb/db/it/IoTDBLoadTsFileIT.java | 9 +- .../java/org/apache/iotdb/db/it/IoTDBMiscIT.java | 2 +- .../org/apache/iotdb/db/it/IoTDBRestServiceIT.java | 6 +- .../iotdb/db/it/audit/IoTDBAuditLogBasicIT.java | 1272 +++++++++++++ .../org/apache/iotdb/db/it/auth/IoTDBAuthIT.java | 372 ++-- .../iotdb/db/it/auth/IoTDBClusterAuthorityIT.java | 98 +- .../it/auth/IoTDBClusterAuthorityRelationalIT.java | 61 +- .../iotdb/db/it/auth/IoTDBRelationalAuthIT.java | 154 +- .../iotdb/db/it/auth/IoTDBSeriesPermissionIT.java | 64 +- .../iotdb/db/it/auth/IoTDBSystemPermissionIT.java | 197 +- .../it/auth/IoTDBSystemPermissionRelationalIT.java | 144 ++ .../iotdb/db/it/auth/IoTDBTemplateAuthIT.java | 568 ++++++ .../db/it/auth/IoTDBTemplatePermissionIT.java | 36 +- .../apache/iotdb/db/it/auth/IoTDBUserRenameIT.java | 119 ++ .../db/it/schema/IoTDBCreateTimeseriesIT.java | 12 + .../iotdb/db/it/schema/IoTDBDeleteDatabaseIT.java | 3 +- .../org/apache/iotdb/db/it/utils/TestUtils.java | 139 +- .../pipe/it/dual/tablemodel/TableModelUtils.java | 25 +- .../tablemodel/manual/basic/IoTDBPipeAlterIT.java | 59 +- .../manual/basic/IoTDBPipeDataSinkIT.java | 217 +-- .../manual/basic/IoTDBPipeLifeCycleIT.java | 220 +-- .../manual/basic/IoTDBPipePermissionIT.java | 124 +- .../manual/basic/IoTDBPipeProtocolIT.java | 58 +- .../tablemodel/manual/basic/IoTDBPipeSourceIT.java | 264 +-- .../manual/basic/IoTDBPipeSwitchStatusIT.java | 62 +- .../tablemodel/manual/basic/IoTDBPipeSyntaxIT.java | 47 +- .../manual/basic/IoTDBPipeWithLoadIT.java | 7 +- .../manual/basic/IoTDBTablePatternFormatIT.java | 287 +-- .../manual/enhanced/IoTDBPipeAutoDropIT.java | 13 +- .../manual/enhanced/IoTDBPipeClusterIT.java | 148 +- .../manual/enhanced/IoTDBPipeDoubleLivingIT.java | 88 +- .../manual/enhanced/IoTDBPipeIdempotentIT.java | 32 +- .../manual/enhanced/IoTDBPipeMetaIT.java | 72 +- .../enhanced/IoTDBPipeSinkCompressionIT.java | 22 +- .../manual/enhanced/IoTDBPipeSinkParallelIT.java | 6 +- .../IoTDBPipeTypeConversionISessionIT.java | 4 +- .../manual/enhanced/IoTDBPipeTypeConversionIT.java | 14 +- .../auto/AbstractPipeDualTreeModelAutoIT.java | 4 +- .../treemodel/auto/basic/IoTDBPipeAlterIT.java | 57 +- .../treemodel/auto/basic/IoTDBPipeAutoSplitIT.java | 4 +- .../treemodel/auto/basic/IoTDBPipeDataSinkIT.java | 79 +- .../treemodel/auto/basic/IoTDBPipeLifeCycleIT.java | 218 +-- .../treemodel/auto/basic/IoTDBPipeProcessorIT.java | 12 +- .../treemodel/auto/basic/IoTDBPipeProtocolIT.java | 52 +- .../auto/basic/IoTDBPipeSinkParallelIT.java | 6 +- .../treemodel/auto/basic/IoTDBPipeSourceIT.java | 98 +- .../auto/basic/IoTDBPipeSwitchStatusIT.java | 64 +- .../treemodel/auto/basic/IoTDBPipeSyntaxIT.java | 25 +- .../auto/basic/IoTDBTreePatternFormatIT.java | 18 +- .../auto/enhanced/IoTDBPipeAutoConflictIT.java | 104 +- .../auto/enhanced/IoTDBPipeAutoDropIT.java | 12 +- .../auto/enhanced/IoTDBPipeClusterIT.java | 143 +- .../enhanced/IoTDBPipeConditionalOperationsIT.java | 16 +- .../auto/enhanced/IoTDBPipeIdempotentIT.java | 15 +- .../auto/enhanced/IoTDBPipeNullValueIT.java | 28 +- .../auto/enhanced/IoTDBPipeSinkCompressionIT.java | 22 +- .../auto/enhanced/IoTDBPipeWithLoadIT.java | 12 +- .../treemodel/auto/enhanced/PipeNowFunctionIT.java | 13 +- .../manual/AbstractPipeDualTreeModelManualIT.java | 4 +- .../treemodel/manual/IoTDBPipeInclusionIT.java | 50 +- .../manual/IoTDBPipeManualConflictIT.java | 24 +- .../manual/IoTDBPipeMetaHistoricalIT.java | 43 +- .../manual/IoTDBPipeMetaLeaderChangeIT.java | 28 +- .../treemodel/manual/IoTDBPipeMetaRestartIT.java | 23 +- .../manual/IoTDBPipeMultiSchemaRegionIT.java | 12 +- .../treemodel/manual/IoTDBPipePermissionIT.java | 91 +- .../treemodel/manual/IoTDBPipeReqAutoSliceIT.java | 4 +- .../manual/IoTDBPipeTypeConversionISessionIT.java | 5 +- .../manual/IoTDBPipeTypeConversionIT.java | 15 +- .../iotdb/pipe/it/single/IoTDBPipeAggregateIT.java | 18 +- .../iotdb/pipe/it/single/IoTDBPipeOPCUAIT.java | 15 +- .../pipe/it/single/IoTDBPipePermissionIT.java | 86 +- .../it/db/it/IoTDBAuthenticationTableIT.java | 8 + .../relational/it/db/it/IoTDBDeletionTableIT.java | 6 +- .../relational/it/db/it/IoTDBInsertTableIT.java | 56 + .../relational/it/mqtt/IoTDBMQTTServiceIT.java | 85 +- .../scalar/IoTDBBitwiseFunctionTableIT.java | 36 +- .../it/query/recent/IoTDBMaintainAuthIT.java | 40 +- .../it/query/recent/IoTDBTableAggregationIT.java | 18 +- .../relational/it/schema/IoTDBDatabaseIT.java | 19 +- .../iotdb/relational/it/schema/IoTDBDeviceIT.java | 4 +- .../it/session/IoTDBSessionRelationalIT.java | 82 + .../iotdb/session/it/IoTDBSessionComplexIT.java | 15 +- .../iotdb/session/it/IoTDBSessionCompressedIT.java | 10 +- .../IoTDBSubscriptionConsumerGroupIT.java | 58 +- .../tablemodel/IoTDBSubscriptionPermissionIT.java | 20 +- .../relational/table/argument/ScalarArgument.java | 22 +- .../java/org/apache/iotdb/cli/AbstractCli.java | 10 +- .../src/main/java/org/apache/iotdb/cli/Cli.java | 6 +- .../apache/iotdb/cli/IoTDBSyntaxHighlighter.java | 80 - .../iotdb/tool/backup/IoTDBDataBackTool.java | 4 +- .../org/apache/iotdb/tool/data/ExportDataTree.java | 7 +- .../apache/iotdb/tool/schema/ExportSchemaTree.java | 2 + .../apache/iotdb/tool/schema/ImportSchemaTree.java | 5 +- .../org/apache/iotdb/tool/tsfile/ImportTsFile.java | 2 + .../iotdb/tool/tsfile/ImportTsFileRemotely.java | 12 + iotdb-client/client-cpp/README.md | 2 +- iotdb-client/client-cpp/src/main/SessionBuilder.h | 6 +- iotdb-client/client-cpp/src/main/TableSession.h | 12 +- .../client-cpp/src/main/TableSessionBuilder.h | 6 +- iotdb-client/client-py/pom.xml | 3 + .../tests/integration/sqlalchemy/test_dialect.py | 2 +- iotdb-client/jdbc/pom.xml | 4 +- .../iotdb/jdbc/IoTDBAbstractDatabaseMetadata.java | 1763 +++++++++--------- .../org/apache/iotdb/jdbc/IoTDBConnection.java | 14 +- .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 572 +++--- .../apache/iotdb/jdbc/IoTDBPreparedStatement.java | 2 - .../org/apache/iotdb/jdbc/IoTDBResultMetadata.java | 4 +- .../apache/iotdb/rpc/TElasticFramedTransport.java | 17 +- .../java/org/apache/iotdb/rpc/TSStatusCode.java | 1 + .../iotdb/rpc/TElasticFramedTransportTest.java | 37 + .../java/org/apache/iotdb/session/Session.java | 2 +- iotdb-core/ainode/.gitignore | 14 +- iotdb-core/ainode/iotdb/__init__.py | 17 - iotdb-core/ainode/iotdb/ainode/core/ai_node.py | 2 + iotdb-core/ainode/iotdb/ainode/core/constant.py | 5 +- iotdb-core/ainode/iotdb/ainode/core/exception.py | 4 +- .../core/inference/batcher/abstract_batcher.py} | 25 + .../ainode/core/inference/batcher/basic_batcher.py | 63 + .../core/inference/dispatcher/basic_dispatcher.py | 4 +- .../ainode/core/inference/inference_request.py | 12 +- .../core/inference/inference_request_pool.py | 153 +- .../iotdb/ainode/core/inference/pool_controller.py | 460 ++++- .../iotdb/ainode/core/inference/pool_group.py | 49 +- .../pool_scheduler/abstract_pool_scheduler.py | 33 +- .../pool_scheduler/basic_pool_scheduler.py | 152 +- .../strategy/timerxl_inference_pipeline.py | 6 +- iotdb-core/ainode/iotdb/ainode/core/log.py | 1 + .../iotdb/ainode/core/manager/inference_manager.py | 123 +- .../iotdb/ainode/core/manager/model_manager.py | 17 +- .../ainode/iotdb/ainode/core/manager/utils.py | 19 +- .../iotdb/ainode/core/model/model_storage.py | 6 +- iotdb-core/ainode/iotdb/ainode/core/rpc/handler.py | 59 + iotdb-core/ainode/iotdb/ainode/core/script.py | 5 +- .../ainode/iotdb/ainode/core/util/atmoic_int.py | 66 + .../iotdb/ainode/core/util/batch_executor.py | 133 ++ .../ainode/iotdb/ainode/core/util/gpu_mapping.py | 93 + .../core/util/thread_name.py} | 5 + iotdb-core/ainode/poetry.lock | 694 +++---- iotdb-core/ainode/pom.xml | 40 +- iotdb-core/ainode/pyproject.toml | 105 +- .../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 5 +- .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 49 +- .../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 | 25 + iotdb-core/confignode/pom.xml | 11 + .../iotdb/confignode/audit/CNAuditLogger.java | 94 + .../async/AsyncDataNodeHeartbeatClientPool.java | 11 + .../client/async/CnToDnAsyncRequestType.java | 3 +- .../CnToDnInternalServiceAsyncRequestManager.java | 8 +- .../audit/DataNodeWriteAuditLogHandler.java} | 29 +- .../client/sync/SyncDataNodeClientPool.java | 3 +- .../iotdb/confignode/conf/ConfigNodeConfig.java | 9 +- .../conf/ConfigNodeSystemPropertiesHandler.java | 23 +- .../consensus/request/ConfigPhysicalPlan.java | 4 + .../consensus/request/ConfigPhysicalPlanType.java | 18 + .../request/ConfigPhysicalPlanVisitor.java | 4 + .../request/read/database/CountDatabasePlan.java | 13 +- .../request/read/database/GetDatabasePlan.java | 10 +- .../read/partition/GetNodePathsPartitionPlan.java | 9 + .../consensus/request/write/auth/AuthorPlan.java | 48 +- .../request/write/auth/AuthorRelationalPlan.java | 85 +- .../request/write/auth/AuthorTreePlan.java | 92 +- .../response/auth/PermissionInfoResp.java | 11 + .../response/pipe/task/PipeTableResp.java | 91 +- .../exception/NoAvailableAINodeException.java} | 13 +- .../iotdb/confignode/manager/ConfigManager.java | 138 +- .../apache/iotdb/confignode/manager/IManager.java | 35 +- .../iotdb/confignode/manager/ModelManager.java | 96 +- .../confignode/manager/PermissionManager.java | 21 +- .../iotdb/confignode/manager/ProcedureManager.java | 10 +- .../manager/load/balancer/PartitionBalancer.java | 4 +- .../region/GreedyCopySetRegionGroupAllocator.java | 4 +- .../region/GreedyRegionGroupAllocator.java | 4 +- .../manager/load/service/HeartbeatService.java | 4 +- .../iotdb/confignode/manager/node/NodeManager.java | 49 +- .../runtime/PipeLeaderChangeHandler.java | 4 +- .../runtime/PipeRuntimeCoordinator.java | 2 +- .../runtime/heartbeat/PipeHeartbeat.java | 4 +- .../runtime/heartbeat/PipeHeartbeatScheduler.java | 3 +- .../pipe/coordinator/task/PipeTaskCoordinator.java | 2 +- .../pipe/event/PipeConfigRegionSnapshotEvent.java | 45 +- .../pipe/event/PipeConfigRegionWritePlanEvent.java | 10 +- .../receiver/protocol/IoTDBConfigNodeReceiver.java | 14 +- .../client/IoTDBConfigNodeSyncClientManager.java | 5 +- .../payload/PipeTransferConfigSnapshotSealReq.java | 8 +- .../sink/protocol/IoTDBConfigRegionAirGapSink.java | 5 +- .../pipe/sink/protocol/IoTDBConfigRegionSink.java | 8 +- .../pipe/source/ConfigRegionListeningFilter.java | 11 +- .../pipe/source/ConfigRegionListeningQueue.java | 25 +- .../pipe/source/IoTDBConfigRegionSource.java | 3 +- .../manager/schema/ClusterSchemaManager.java | 14 +- .../confignode/persistence/auth/AuthorInfo.java | 169 ++ .../AuthorPlanExecutor.java} | 290 ++- .../persistence/auth/IAuthorPlanExecutor.java | 62 + .../persistence/executor/ConfigPlanExecutor.java | 15 +- .../persistence/partition/PartitionInfo.java | 13 +- .../schema/CNPhysicalPlanGenerator.java | 32 +- .../persistence/schema/ClusterSchemaInfo.java | 20 +- .../confignode/persistence/schema/ConfigMTree.java | 7 +- .../schema/ConfigNodeSnapshotParser.java | 5 +- .../persistence/schema/TemplateTable.java | 8 +- .../impl/pipe/task/AlterPipeProcedureV2.java | 2 + .../impl/pipe/task/CreatePipeProcedureV2.java | 46 +- .../impl/schema/AlterLogicalViewProcedure.java | 2 +- .../impl/schema/DeleteTimeSeriesProcedure.java | 17 +- .../confignode/procedure/store/ProcedureType.java | 2 + .../iotdb/confignode/service/ConfigNode.java | 27 + .../thrift/ConfigNodeRPCServiceProcessor.java | 98 +- .../request/ConfigPhysicalPlanSerDeTest.java | 4 +- .../pipe/sink/PipeConfigNodeThriftRequestTest.java | 3 +- .../confignode/persistence/AuthorInfoTest.java | 5 +- .../persistence/CNPhysicalPlanGeneratorTest.java | 43 +- .../persistence/schema/ClusterSchemaInfoTest.java | 1 + .../persistence/schema/ConfigMTreeTest.java | 22 +- .../pipe/annotation/PipePluginAnnotationTest.java | 11 +- .../pipe/receiver/PipeEnrichedProcedureTest.java | 2 +- .../impl/schema/DeleteTimeSeriesProcedureTest.java | 2 +- .../pipe/consensuspipe/ConsensusPipeManager.java | 3 +- .../apache/iotdb/consensus/ratis/RatisClient.java | 13 +- .../iotdb/consensus/ratis/RatisConsensus.java | 9 +- .../utils/NoHostnameVerificationTrustManager.java | 88 + .../apache/iotdb/consensus/ratis/utils/Utils.java | 25 +- iotdb-core/datanode/pom.xml | 7 + .../org/apache/iotdb/db/audit/AuditLogger.java | 271 --- .../org/apache/iotdb/db/audit/DNAuditLogger.java | 463 +++++ .../org/apache/iotdb/db/auth/AuthorityChecker.java | 150 +- .../apache/iotdb/db/auth/BasicAuthorityCache.java | 3 + .../iotdb/db/auth/ClusterAuthorityFetcher.java | 97 +- .../apache/iotdb/db/auth/IAuthorityFetcher.java | 6 +- .../org/apache/iotdb/db/auth/LoginLockManager.java | 387 ++++ .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 158 +- .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 29 +- .../dataregion/DataExecutionVisitor.java | 4 +- .../PipeDataRegionSourceConstructor.java | 4 - .../agent/runtime/PipeDataNodeRuntimeAgent.java | 28 +- .../db/pipe/agent/task/PipeDataNodeTaskAgent.java | 12 +- .../agent/task/connection/PipeEventCollector.java | 16 +- .../db/pipe/event/UserDefinedEnrichedEvent.java | 6 + .../db/pipe/event/common/PipeInsertionEvent.java | 16 +- .../common/deletion/PipeDeleteDataNodeEvent.java | 19 +- .../event/common/heartbeat/PipeHeartbeatEvent.java | 6 +- .../schema/PipeSchemaRegionSnapshotEvent.java | 10 + .../schema/PipeSchemaRegionWritePlanEvent.java | 10 +- .../statement/PipeStatementInsertionEvent.java | 6 + .../tablet/PipeInsertNodeTabletInsertionEvent.java | 24 +- .../common/tablet/PipeRawTabletInsertionEvent.java | 43 +- .../event/common/terminate/PipeTerminateEvent.java | 4 + .../tsfile/PipeCompactedTsFileInsertionEvent.java | 8 + .../common/tsfile/PipeTsFileInsertionEvent.java | 89 +- .../table/TsFileInsertionEventTableParser.java | 9 +- ...ileInsertionEventTableParserTabletIterator.java | 25 +- .../db/pipe/event/realtime/PipeRealtimeEvent.java | 25 +- .../overview/PipeDataNodeSinglePipeMetrics.java | 34 + .../downsampling/PartialPathLastObjectCache.java | 60 +- .../schemachange/RenameDatabaseProcessor.java | 2 +- .../legacy/IoTDBLegacyPipeReceiverAgent.java | 9 +- .../protocol/legacy/loader/DeletionLoader.java | 9 +- .../protocol/legacy/loader/TsFileLoader.java | 9 +- .../protocol/thrift/IoTDBDataNodeReceiver.java | 45 +- .../statement/PipeConvertedInsertRowStatement.java | 13 +- .../visitor/PipeStatementTSStatusVisitor.java | 3 +- .../client/IoTDBDataNodeAsyncClientManager.java | 17 +- .../IoTDBDataNodeCacheLeaderClientManager.java | 78 +- .../client/IoTDBDataNodeSyncClientManager.java | 7 +- .../protocol/airgap/IoTDBDataNodeAirGapSink.java | 2 + .../thrift/async/IoTDBDataRegionAsyncSink.java | 14 +- .../handler/PipeTransferTrackableHandler.java | 5 + .../thrift/sync/IoTDBDataNodeSyncSink.java | 5 +- .../sink/protocol/writeback/WriteBackSink.java | 30 +- ...istoricalDataRegionTsFileAndDeletionSource.java | 113 +- .../realtime/PipeRealtimeDataRegionSource.java | 22 + .../realtime/assigner/PipeDataRegionAssigner.java | 2 + .../dataregion/realtime/epoch/TsFileEpoch.java | 13 +- .../matcher/CachedSchemaPatternMatcher.java | 32 +- .../db/pipe/source/mqtt/MQTTPublishHandler.java | 320 ---- .../iotdb/db/pipe/source/mqtt/MQTTSource.java | 264 --- .../schemaregion/IoTDBSchemaRegionSource.java | 9 +- .../PipePlanTablePrivilegeParseVisitor.java | 36 +- .../iotdb/db/protocol/client/ConfigNodeClient.java | 90 +- .../db/protocol/client/DataNodeInternalClient.java | 13 +- .../iotdb/db/protocol/mqtt/MPPPublishHandler.java | 15 +- .../protocol/rest/filter/AuthorizationFilter.java | 2 + .../apache/iotdb/db/protocol/rest/filter/User.java | 9 + .../rest/handler/AuthorizationHandler.java | 5 +- .../table/v1/handler/ExecuteStatementHandler.java | 4 + .../v1/handler/StatementConstructionHandler.java | 7 +- .../rest/v1/handler/ExecuteStatementHandler.java | 4 + .../rest/v1/handler/QueryDataSetHandler.java | 4 + .../rest/v2/handler/ExecuteStatementHandler.java | 4 + .../rest/v2/handler/QueryDataSetHandler.java | 4 + .../iotdb/db/protocol/session/IClientSession.java | 10 + .../iotdb/db/protocol/session/SessionManager.java | 210 +-- .../iotdb/db/protocol/thrift/OperationType.java | 3 +- .../protocol/thrift/impl/ClientRPCServiceImpl.java | 358 ++-- .../impl/DataNodeInternalRPCServiceImpl.java | 64 +- .../db/queryengine/common/MPPQueryContext.java | 116 +- .../iotdb/db/queryengine/common/SessionInfo.java | 75 +- .../common/header/DatasetHeaderFactory.java | 8 + .../common/schematree/DeviceSchemaInfo.java | 12 +- .../execution/executor/RegionWriteExecutor.java | 14 +- .../execution/fragment/DataNodeQueryContext.java | 68 +- .../fragment/FragmentInstanceContext.java | 7 +- .../process/InsertTabletStatementGenerator.java | 39 +- .../TableInsertTabletStatementGenerator.java | 2 +- .../TreeInsertTabletStatementGenerator.java | 2 +- .../operator/source/ShowQueriesOperator.java | 10 +- .../InformationSchemaContentSupplierFactory.java | 127 +- .../relational/LastQueryAggTableScanOperator.java | 99 +- .../aggregation/approximate/HyperLogLog.java | 11 +- .../queue/IndexedBlockingReserveQueue.java | 3 +- .../metric/DriverSchedulerMetricSet.java | 20 +- .../iotdb/db/queryengine/plan/Coordinator.java | 26 +- .../db/queryengine/plan/analyze/AnalyzeUtils.java | 3 - .../queryengine/plan/analyze/AnalyzeVisitor.java | 160 +- .../plan/analyze/ClusterPartitionFetcher.java | 76 +- .../plan/analyze/IPartitionFetcher.java | 13 +- .../analyze/cache/partition/PartitionCache.java | 49 +- .../cache/schema/DataNodeDevicePathCache.java | 2 +- .../analyze/cache/schema/DataNodeTTLCache.java | 2 +- .../schema/dualkeycache/IDualKeyCacheUpdating.java | 45 - .../schema/dualkeycache/impl/DualKeyCacheImpl.java | 2 + .../plan/analyze/load/LoadTsFileAnalyzer.java | 9 +- .../analyze/load/LoadTsFileTableSchemaCache.java | 107 +- .../load/TreeSchemaAutoCreatorAndVerifier.java | 47 +- .../analyze/schema/AutoCreateSchemaExecutor.java | 36 +- .../analyze/schema/ClusterSchemaFetchExecutor.java | 27 +- .../plan/analyze/schema/ClusterSchemaFetcher.java | 42 +- .../plan/analyze/schema/ISchemaFetcher.java | 20 +- .../plan/analyze/schema/NormalSchemaFetcher.java | 47 +- .../plan/analyze/schema/SchemaValidator.java | 4 +- .../execution/config/TableConfigTaskVisitor.java | 281 ++- .../execution/config/TreeConfigTaskVisitor.java | 93 +- .../config/executor/ClusterConfigTaskExecutor.java | 164 +- .../config/executor/IConfigTaskExecutor.java | 11 +- .../ai/LoadModelTask.java} | 20 +- .../ShowAIDevicesTask.java} | 43 +- .../ShowLoadedModelsTask.java} | 49 +- .../ai/UnloadModelTask.java} | 20 +- .../template/ShowNodesInSchemaTemplateTask.java | 47 +- .../metadata/template/ShowPathSetTemplateTask.java | 20 +- .../plan/execution/config/sys/KillQueryTask.java | 3 +- .../config/sys/ShowConfigurationTask.java | 6 + .../execution/config/sys/pipe/ShowPipeTask.java | 6 +- .../db/queryengine/plan/parser/ASTVisitor.java | 120 +- .../plan/parser/StatementGenerator.java | 6 +- .../plan/planner/LogicalPlanBuilder.java | 13 +- .../plan/planner/LogicalPlanVisitor.java | 3 +- .../plan/planner/OperatorTreeGenerator.java | 15 +- .../plan/planner/TableOperatorGenerator.java | 176 +- .../plan/planner/distribution/SourceRewriter.java | 31 + .../metadata/write/view/AlterLogicalViewNode.java | 44 +- .../planner/plan/node/source/ShowQueriesNode.java | 18 +- .../planner/plan/node/write/InsertTabletNode.java | 4 +- .../relational/analyzer/StatementAnalyzer.java | 58 +- .../relational/metadata/TableMetadataImpl.java | 4 +- .../plan/relational/metadata/TableSchema.java | 12 +- .../metadata/cache/DeviceSchemaRequestCache.java | 88 + .../metadata/fetcher/SchemaPredicateUtil.java | 28 +- .../metadata/fetcher/TableDeviceSchemaFetcher.java | 17 +- .../fetcher/TableHeaderSchemaValidator.java | 49 +- .../fetcher/cache/TableDeviceLastCache.java | 4 + .../fetcher/cache/TableDeviceSchemaCache.java | 4 +- .../fetcher/cache/TreeDeviceNormalSchema.java | 2 +- .../cache/TreeDeviceSchemaCacheManager.java | 157 +- .../plan/relational/planner/TranslationMap.java | 2 +- .../distribute/TableDistributedPlanGenerator.java | 3 + .../distribute/TableModelQueryFragmentPlanner.java | 42 + .../planner/node/AggregationTableScanNode.java | 62 + .../plan/relational/security/AccessControl.java | 106 +- .../relational/security/AccessControlImpl.java | 457 +++-- .../relational/security/AllowAllAccessControl.java | 120 +- .../relational/security/ITableAuthChecker.java | 51 +- .../relational/security/ITableAuthCheckerImpl.java | 375 +++- .../relational/security/TableModelPrivilege.java | 41 + .../security/TreeAccessCheckContext.java | 140 ++ .../security/TreeAccessCheckVisitor.java | 1910 ++++++++++++++++++++ .../sql/ast/AbstractQueryDeviceWithCache.java | 3 +- .../relational/sql/ast/AbstractTraverseDevice.java | 2 +- .../plan/relational/sql/ast/AstVisitor.java | 16 + .../plan/relational/sql/ast/DeleteDevice.java | 5 +- .../plan/relational/sql/ast/LoadModel.java | 73 + .../sql/ast/RelationalAuthorStatement.java | 158 +- .../plan/relational/sql/ast/ShowAIDevices.java} | 39 +- .../plan/relational/sql/ast/ShowLoadedModels.java | 66 + .../plan/relational/sql/ast/UnloadModel.java | 72 + .../relational/sql/ast/WrappedInsertStatement.java | 2 +- .../plan/relational/sql/parser/AstBuilder.java | 134 +- .../plan/relational/type/AuthorRType.java | 5 +- .../db/queryengine/plan/statement/AuthorType.java | 14 +- .../statement/AuthorityInformationStatement.java | 30 +- .../db/queryengine/plan/statement/Statement.java | 8 - .../queryengine/plan/statement/StatementType.java | 5 +- .../plan/statement/StatementVisitor.java | 39 +- .../plan/statement/crud/DeleteDataStatement.java | 17 - .../plan/statement/crud/InsertBaseStatement.java | 21 +- .../crud/InsertMultiTabletsStatement.java | 1 + .../plan/statement/crud/InsertRowsStatement.java | 1 + .../plan/statement/crud/InsertStatement.java | 17 - .../plan/statement/crud/InsertTabletStatement.java | 24 +- .../plan/statement/crud/LoadTsFileStatement.java | 8 - .../plan/statement/crud/QueryStatement.java | 18 - .../internal/DeviceSchemaFetchStatement.java | 9 +- .../InternalBatchActivateTemplateStatement.java | 17 - .../InternalCreateMultiTimeSeriesStatement.java | 17 - .../InternalCreateTimeSeriesStatement.java | 17 - .../internal/SeriesSchemaFetchStatement.java | 9 +- .../metadata/AlterTimeSeriesStatement.java | 15 - .../statement/metadata/CountDevicesStatement.java | 25 - .../metadata/CountTimeSeriesStatement.java | 25 - .../metadata/CountTimeSlotListStatement.java | 7 - .../metadata/CreateAlignedTimeSeriesStatement.java | 17 - .../metadata/CreateContinuousQueryStatement.java | 14 - .../metadata/CreateFunctionStatement.java | 14 - .../metadata/CreateMultiTimeSeriesStatement.java | 17 - .../metadata/CreateTimeSeriesStatement.java | 15 - .../statement/metadata/CreateTriggerStatement.java | 14 - .../metadata/DatabaseSchemaStatement.java | 14 - .../metadata/DeleteDatabaseStatement.java | 14 - .../metadata/DeleteTimeSeriesStatement.java | 26 +- .../metadata/DropContinuousQueryStatement.java | 14 - .../statement/metadata/DropFunctionStatement.java | 14 - .../statement/metadata/DropTriggerStatement.java | 14 - .../statement/metadata/GetRegionIdStatement.java | 7 - .../metadata/GetSeriesSlotListStatement.java | 7 - .../metadata/GetTimeSlotListStatement.java | 7 - .../statement/metadata/RemoveAINodeStatement.java | 7 - .../metadata/RemoveConfigNodeStatement.java | 7 - .../metadata/RemoveDataNodeStatement.java | 7 - .../plan/statement/metadata/SetTTLStatement.java | 17 - .../statement/metadata/ShowClusterIdStatement.java | 7 - .../statement/metadata/ShowClusterStatement.java | 7 - .../metadata/ShowConfigNodesStatement.java | 7 - .../metadata/ShowContinuousQueriesStatement.java | 14 - .../statement/metadata/ShowDataNodesStatement.java | 7 - .../statement/metadata/ShowDevicesStatement.java | 25 - .../statement/metadata/ShowFunctionsStatement.java | 14 - .../statement/metadata/ShowRegionStatement.java | 7 - .../plan/statement/metadata/ShowTTLStatement.java | 9 + .../metadata/ShowTimeSeriesStatement.java | 25 - .../statement/metadata/ShowTriggersStatement.java | 14 - .../statement/metadata/ShowVariablesStatement.java | 7 - .../metadata/model/CreateModelStatement.java | 14 - .../metadata/model/DropModelStatement.java | 14 - ...ModelStatement.java => LoadModelStatement.java} | 52 +- .../ShowAIDevicesStatement.java} | 22 +- .../metadata/model/ShowAINodesStatement.java | 7 - .../model/ShowLoadedModelsStatement.java} | 45 +- .../metadata/model/ShowModelsStatement.java | 14 - ...delStatement.java => UnloadModelStatement.java} | 62 +- .../metadata/pipe/AlterPipeStatement.java | 14 - .../metadata/pipe/CreatePipePluginStatement.java | 14 - .../metadata/pipe/CreatePipeStatement.java | 14 - .../metadata/pipe/DropPipePluginStatement.java | 14 - .../statement/metadata/pipe/DropPipeStatement.java | 14 - .../metadata/pipe/ShowPipePluginsStatement.java | 14 - .../metadata/pipe/ShowPipesStatement.java | 14 - .../metadata/pipe/StartPipeStatement.java | 14 - .../statement/metadata/pipe/StopPipeStatement.java | 14 - .../metadata/region/ExtendRegionStatement.java | 7 - .../metadata/region/MigrateRegionStatement.java | 7 - .../region/ReconstructRegionStatement.java | 7 - .../metadata/region/RemoveRegionStatement.java | 7 - .../subscription/CreateTopicStatement.java | 14 - .../subscription/DropSubscriptionStatement.java | 14 - .../metadata/subscription/DropTopicStatement.java | 14 - .../subscription/ShowSubscriptionsStatement.java | 14 - .../metadata/subscription/ShowTopicsStatement.java | 14 - .../template/AbstractShowExactTemplate.java} | 27 +- .../template/ActivateTemplateStatement.java | 17 - .../template/BatchActivateTemplateStatement.java | 17 - .../template/DeactivateTemplateStatement.java | 24 +- .../ShowNodesInSchemaTemplateStatement.java | 33 +- .../template/ShowPathSetTemplateStatement.java | 33 +- .../template/ShowSchemaTemplateStatement.java | 20 +- .../metadata/view/AlterLogicalViewStatement.java | 48 +- .../metadata/view/CreateLogicalViewStatement.java | 61 +- .../metadata/view/DeleteLogicalViewStatement.java | 17 - .../metadata/view/RenameLogicalViewStatement.java | 19 - .../plan/statement/sys/AuthorStatement.java | 237 +-- .../statement/sys/ExplainAnalyzeStatement.java | 6 - .../plan/statement/sys/KillQueryStatement.java | 17 +- .../statement/sys/SetConfigurationStatement.java | 39 + .../plan/statement/sys/SetSqlDialectStatement.java | 8 - .../statement/sys/ShowConfigurationStatement.java | 13 + .../sys/ShowCurrentSqlDialectStatement.java | 8 - .../statement/sys/ShowCurrentUserStatement.java | 8 - .../plan/statement/sys/ShowQueriesStatement.java | 16 +- .../plan/statement/sys/ShowVersionStatement.java | 8 - .../statement/sys/TestConnectionStatement.java | 7 - .../schemaregion/SchemaRegionLoader.java | 18 +- .../schemaregion/impl/SchemaRegionMemoryImpl.java | 3 +- .../schemaregion/impl/SchemaRegionPBTreeImpl.java | 5 +- .../mtree/impl/mem/MTreeBelowSGMemoryImpl.java | 17 - .../mtree/impl/pbtree/MTreeBelowSGCachedImpl.java | 17 - .../mtree/loader/MNodeFactoryLoader.java | 25 +- .../mtree/traverser/counter/DatabaseCounter.java | 13 +- .../reader/impl/TimeseriesReaderWithViewFetch.java | 2 +- .../schemaregion/utils/MetaFormatUtils.java | 2 +- .../db/schemaengine/table/DataNodeTableCache.java | 15 +- .../template/ClusterTemplateManager.java | 24 +- .../db/schemaengine/template/ITemplateManager.java | 2 + .../java/org/apache/iotdb/db/service/DataNode.java | 71 +- .../db/service/DataNodeInternalRPCService.java | 14 +- .../iotdb/db/service/DataNodeShutdownHook.java | 19 + .../metrics/IoTDBInternalLocalReporter.java | 15 +- .../db/storageengine/dataregion/DataRegion.java | 64 +- .../performer/impl/FastCompactionPerformer.java | 18 +- .../impl/ReadChunkCompactionPerformer.java | 5 +- .../impl/ReadPointCompactionPerformer.java | 6 +- .../execute/utils/CompactionPathUtils.java | 9 +- .../execute/utils/CompactionTableSchema.java | 11 +- .../utils/CompactionTableSchemaCollector.java | 33 +- .../compaction/execute/utils/CompactionUtils.java | 16 +- .../execute/utils/MultiTsFileDeviceIterator.java | 39 +- .../executor/fast/SeriesCompactionExecutor.java | 6 +- .../utils/writer/AbstractCompactionWriter.java | 11 + .../estimator/AbstractCompactionEstimator.java | 4 + .../RepairUnsortedFileCompactionEstimator.java | 5 + .../impl/NewSizeTieredCompactionSelector.java | 2 +- .../selector/impl/SettleSelectorImpl.java | 2 +- .../compaction/tool/SingleSequenceFileTask.java | 11 +- .../compaction/tool/TimePartitionProcessTask.java | 9 +- .../dataregion/flush/CompressionRatio.java | 19 +- .../dataregion/memtable/TsFileProcessor.java | 5 +- .../dataregion/modification/ModificationFile.java | 2 - .../dataregion/snapshot/SnapshotLoader.java | 42 +- .../dataregion/snapshot/SnapshotTaker.java | 27 + .../dataregion/tsfile/TsFileResource.java | 25 +- .../db/storageengine/load/LoadTsFileManager.java | 2 +- ...vertedInsertTabletStatementTSStatusVisitor.java | 3 +- ...rtedInsertTabletStatementExceptionVisitor.java} | 18 +- ...leStatementDataTypeConvertExecutionVisitor.java | 23 +- ...rtedInsertTabletStatementExceptionVisitor.java} | 2 +- ...eeStatementDataTypeConvertExecutionVisitor.java | 19 +- .../converter/LoadTsFileDataTypeConverter.java | 19 +- .../load/splitter/TsFileSplitter.java | 21 + .../strategy/RandomOnDiskUsableSpaceStrategy.java | 4 +- .../agent/SubscriptionAgentLauncher.java | 4 +- .../event/cache/SubscriptionPollResponseCache.java | 54 +- .../resource/log/SubscriptionLogStatus.java | 2 +- .../apache/iotdb/db/tools/IoTDBDataDirViewer.java | 25 +- .../apache/iotdb/db/tools/TsFileSketchTool.java | 16 +- .../db/tools/settle/TsFileAndModSettleTool.java | 5 +- .../iotdb/db/tools/utils/TsFileStatisticScan.java | 6 +- .../db/trigger/executor/TriggerFireVisitor.java | 6 + .../apache/iotdb/db/utils/DataNodeAuthUtils.java | 200 +- .../iotdb/{util => db/utils}/TabletDecoder.java | 2 +- .../iotdb/db/utils/datastructure/BackwardSort.java | 3 + .../apache/iotdb/db/auth/LoginLockManagerTest.java | 538 ++++++ .../auth/authorizer/LocalFileAuthorizerTest.java | 4 +- .../org/apache/iotdb/db/auth/entity/RoleTest.java | 16 +- .../org/apache/iotdb/db/auth/entity/UserTest.java | 4 +- .../db/auth/user/LocalFileUserAccessorTest.java | 19 +- .../cache/TreeDeviceSchemaCacheManagerTest.java | 19 +- .../db/pipe/consensus/DeletionResourceTest.java | 2 +- .../pipe/event/TsFileInsertionEventParserTest.java | 3 + .../annotation/PipePluginAnnotationTest.java | 11 +- .../pipe/sink/PipeDataNodeThriftRequestTest.java | 22 +- .../operator/MergeTreeSortOperatorTest.java | 4 +- .../plan/analyze/ExpressionAnalyzerTest.java | 2 +- .../plan/analyze/FakePartitionFetcherImpl.java | 7 +- .../plan/analyze/FakeSchemaFetcherImpl.java | 22 +- .../plan/parser/StatementGeneratorTest.java | 13 +- .../plan/planner/distribution/Util.java | 30 +- .../plan/planner/distribution/Util2.java | 30 +- .../planner/node/write/WritePlanNodeSplitTest.java | 3 + .../plan/relational/analyzer/AuthTest.java | 36 +- .../plan/relational/analyzer/TSBSMetadata.java | 10 +- .../plan/relational/analyzer/TestMetadata.java | 10 +- .../relational/sql/parser/AuthorStatementTest.java | 27 +- .../compaction/AbstractCompactionTest.java | 2 + .../CompactionTableSchemaCollectorTest.java | 8 +- .../TableModelFastCompactionPerformerTest.java | 125 +- ...TableModelReadChunkCompactionPerformerTest.java | 94 +- .../dataregion/snapshot/IoTDBSnapshotTest.java | 8 + iotdb-core/metrics/ReadMe.md | 4 +- iotdb-core/metrics/interface/pom.xml | 4 + .../apache/iotdb/metrics/config/MetricConfig.java | 54 +- .../metrics/config/MetricConfigDescriptor.java | 13 + .../reporter/iotdb/IoTDBSessionReporter.java | 22 +- .../reporter/prometheus/PrometheusReporter.java | 63 +- .../java/org/apache/iotdb/metrics/type/Timer.java | 16 +- iotdb-core/node-commons/pom.xml | 1 + .../conf/iotdb-system.properties.template | 13 +- .../iotdb/commons/audit/AbstractAuditLogger.java | 125 ++ .../iotdb/commons/audit/AuditEventType.java} | 44 +- .../apache/iotdb/commons/audit/AuditLogFields.java | 182 ++ .../iotdb/commons}/audit/AuditLogOperation.java | 4 +- .../apache/iotdb/commons/audit/IAuditEntity.java | 61 + .../iotdb/commons/audit/PrivilegeLevel.java} | 8 +- .../org/apache/iotdb/commons/audit/UserEntity.java | 154 ++ .../commons/auth/authorizer/BasicAuthorizer.java | 24 +- .../iotdb/commons/auth/authorizer/IAuthorizer.java | 28 + .../auth/authorizer/LocalFileAuthorizer.java | 4 +- .../commons/auth/authorizer/OpenIdAuthorizer.java | 5 + .../iotdb/commons/auth/entity/IEntityAccessor.java | 15 + .../iotdb/commons/auth/entity/PrivilegeType.java | 131 +- .../org/apache/iotdb/commons/auth/entity/Role.java | 21 +- .../org/apache/iotdb/commons/auth/entity/User.java | 43 +- .../iotdb/commons/auth/role/BasicRoleManager.java | 22 + .../iotdb/commons/auth/role/IEntityManager.java | 9 + .../commons/auth/role/LocalFileRoleAccessor.java | 82 +- .../iotdb/commons/auth/user/BasicUserManager.java | 154 +- .../commons/auth/user/LocalFileUserAccessor.java | 57 +- .../commons/auth/user/LocalFileUserManager.java | 1 + .../apache/iotdb/commons/auth/utils/AuthUtils.java | 49 + .../apache/iotdb/commons/client/ThriftClient.java | 4 +- .../iotdb/commons/client/ainode/AINodeClient.java | 53 + .../apache/iotdb/commons/conf/CommonConfig.java | 109 +- .../iotdb/commons/conf/CommonDescriptor.java | 30 +- .../iotdb/commons/conf/ConfigurationFileUtils.java | 43 +- .../apache/iotdb/commons/conf/IoTDBConstant.java | 6 + .../iotdb/commons/partition/SchemaPartition.java | 6 + .../org/apache/iotdb/commons/path/PartialPath.java | 2 +- .../agent/plugin/builtin/BuiltinPipePlugin.java | 3 - .../plugin/builtin/source/mqtt/MQTTSource.java | 68 - .../commons/pipe/agent/task/PipeTaskAgent.java | 6 +- .../iotdb/commons/pipe/config/PipeConfig.java | 4 + .../iotdb/commons/pipe/config/PipeDescriptor.java | 5 + .../pipe/config/constant/PipeSinkConstant.java | 6 + .../pipe/config/constant/PipeSourceConstant.java | 34 +- .../pipe/config/constant/SystemConstant.java | 5 +- .../visibility/VisibilityTestUtils.java | 10 +- .../iotdb/commons/pipe/event/EnrichedEvent.java | 16 + .../commons/pipe/event/PipeSnapshotEvent.java | 4 + .../commons/pipe/event/PipeWritePlanEvent.java | 4 + .../commons/pipe/event/ProgressReportEvent.java | 4 + .../commons/pipe/receiver/IoTDBFileReceiver.java | 52 +- .../pipe/receiver/PipeReceiverStatusHandler.java | 55 +- .../pipe/sink/client/IoTDBClientManager.java | 7 +- .../pipe/sink/client/IoTDBSyncClientManager.java | 28 +- .../common/PipeTransferHandshakeConstant.java | 2 + .../commons/pipe/sink/protocol/IoTDBSink.java | 15 + .../pipe/sink/protocol/IoTDBSslSyncSink.java | 5 +- .../pipe/source/IoTDBNonDataRegionSource.java | 4 + .../iotdb/commons/pipe/source/IoTDBSource.java | 15 + .../iotdb/commons/schema/SchemaConstant.java | 1 + .../schema/column/ColumnHeaderConstant.java | 18 + .../apache/iotdb/commons/schema/table/Audit.java | 45 + .../builtin/UDTFEqualSizeBucketRandomSample.java | 6 +- .../org/apache/iotdb/commons/utils/AuthUtils.java | 36 +- .../org/apache/iotdb/commons/utils/IOUtils.java | 30 + .../org/apache/iotdb/commons/utils/RetryUtils.java | 3 +- .../pipe/datastructure/PipeCommitQueueTest.java | 8 + .../annotation/PipePluginAnnotationTest.java | 11 +- .../db/relational/grammar/sql/RelationalSql.g4 | 79 +- .../thrift-ainode/src/main/thrift/ainode.thrift | 32 + .../src/main/thrift/confignode.thrift | 77 +- .../src/main/thrift/datanode.thrift | 38 +- pom.xml | 8 +- scripts/sbin/start-cli.sh | 9 +- scripts/sbin/windows/start-cli-table.bat | 124 +- scripts/sbin/windows/start-cli.bat | 234 +-- 701 files changed, 22718 insertions(+), 10646 deletions(-)