This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch win_metrics_new in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 8965b4d120e81113cf935aabe1e77fab7f265bfd Merge: f3fa4873df9 a53f960e25c Author: unknown <[email protected]> AuthorDate: Thu Mar 12 12:17:20 2026 +0800 Merge branch 'master' of github.com:apache/iotdb into win_metrics_new .github/workflows/cluster-it-1c1d1a.yml | 5 +- .github/workflows/greetings.yml | 14 - .github/workflows/multi-language-client.yml | 13 +- .github/workflows/vulnerability-check.yml | 42 +- .gitignore | 3 + .mvn/wrapper/maven-wrapper.properties | 2 +- LICENSE | 32 +- LICENSE-binary | 16 +- README.md | 29 +- README_ZH.md | 6 +- RELEASE_NOTES.md | 47 + code-coverage/pom.xml | 2 +- dependencies.json | 22 +- distribution/pom.xml | 25 +- distribution/src/assembly/all.xml | 8 + distribution/src/assembly/datanode.xml | 10 + .../src/assembly/external-service-impl.xml | 55 + docker/src/main/Dockerfile-1c1d | 4 +- example/client-cpp-example/pom.xml | 6 +- example/client-cpp-example/src/CMakeLists.txt | 115 +- example/jdbc/pom.xml | 2 +- .../org/apache/iotdb/TableModelJDBCExample.java | 7 +- example/mqtt-customize/pom.xml | 8 +- .../server/CustomizedJsonPayloadFormatter.java | 6 +- ...Formatter => org.apache.iotdb.PayloadFormatter} | 0 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 +- .../java/org/apache/iotdb/SessionPoolExample.java | 2 +- .../org/apache/iotdb/TableModelSessionExample.java | 7 +- .../apache/iotdb/TableModelSessionPoolExample.java | 11 +- example/trigger/pom.xml | 2 +- example/udf/pom.xml | 2 +- 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 | 18 +- .../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 +- {example/jdbc => external-service-impl}/pom.xml | 32 +- .../rest-openapi}/pom.xml | 36 +- .../src/main/openapi3/iotdb_rest_common.yaml | 0 .../src/main/openapi3/iotdb_rest_table_v1.yaml | 0 .../src/main/openapi3/iotdb_rest_v1.yaml | 0 .../src/main/openapi3/iotdb_rest_v2.yaml | 0 external-service-impl/rest/pom.xml | 225 + .../java/org/apache/iotdb/rest}/RestService.java | 30 +- .../rest/protocol}/filter/ApiOriginFilter.java | 2 +- .../rest/protocol}/filter/AuthorizationFilter.java | 4 +- .../protocol}/filter/BasicSecurityContext.java | 2 +- .../apache/iotdb/rest/protocol}/filter/User.java | 2 +- .../iotdb/rest/protocol}/filter/UserCache.java | 2 +- .../protocol}/handler/AuthorizationHandler.java | 4 +- .../rest/protocol}/impl/PingApiServiceImpl.java | 6 +- .../table/v1/handler/ExceptionHandler.java | 4 +- .../table/v1/handler/ExecuteStatementHandler.java | 2 +- .../table/v1/handler/QueryDataSetHandler.java | 6 +- .../table/v1/handler/RequestValidationHandler.java | 6 +- .../v1/handler/StatementConstructionHandler.java | 4 +- .../table/v1/impl/RestApiServiceImpl.java | 26 +- .../rest/protocol}/utils/InsertRowDataUtils.java | 2 +- .../protocol}/utils/InsertTabletSortDataUtils.java | 2 +- .../protocol/v1}/handler/ExceptionHandler.java | 4 +- .../v1/handler/ExecuteStatementHandler.java | 2 +- .../protocol}/v1/handler/QueryDataSetHandler.java | 26 +- .../v1/handler/RequestValidationHandler.java | 8 +- .../v1/handler/StatementConstructionHandler.java | 4 +- .../protocol}/v1/impl/GrafanaApiServiceImpl.java | 18 +- .../rest/protocol}/v1/impl/RestApiServiceImpl.java | 32 +- .../protocol/v2}/handler/ExceptionHandler.java | 4 +- .../v2/handler/ExecuteStatementHandler.java | 2 +- .../rest/protocol}/v2/handler/FastLastHandler.java | 10 +- .../protocol}/v2/handler/QueryDataSetHandler.java | 22 +- .../v2/handler/RequestValidationHandler.java | 12 +- .../v2/handler/StatementConstructionHandler.java | 8 +- .../protocol}/v2/impl/GrafanaApiServiceImpl.java | 18 +- .../rest/protocol}/v2/impl/RestApiServiceImpl.java | 52 +- integration-test/pom.xml | 53 +- integration-test/src/assembly/mpp-share.xml | 10 + integration-test/src/assembly/mpp-test.xml | 2 +- .../iotdb/it/env/cluster/ClusterConstant.java | 2 +- .../it/env/cluster/config/MppCommonConfig.java | 27 +- .../it/env/cluster/config/MppDataNodeConfig.java | 6 + .../env/cluster/config/MppSharedCommonConfig.java | 33 +- .../iotdb/it/env/cluster/env/AbstractEnv.java | 33 +- .../iotdb/it/env/cluster/node/AINodeWrapper.java | 29 +- .../it/env/cluster/node/AbstractNodeWrapper.java | 17 +- .../iotdb/it/env/cluster/node/DataNodeWrapper.java | 4 + .../it/env/remote/config/RemoteCommonConfig.java | 20 +- .../it/env/remote/config/RemoteDataNodeConfig.java | 5 + .../iotdb/it/utils/TsFileTableGenerator.java | 30 +- .../constant/BuiltinAggregationFunctionEnum.java | 7 +- .../BuiltinTimeSeriesGeneratingFunctionEnum.java | 2 +- .../apache/iotdb/itbase/constant/TestConstant.java | 14 +- .../org/apache/iotdb/itbase/env/CommonConfig.java | 10 +- .../apache/iotdb/itbase/env/DataNodeConfig.java | 2 + .../itbase/runtime/ClusterTestConnection.java | 10 +- .../iotdb/itbase/runtime/ClusterTestResultSet.java | 30 +- .../iotdb/itbase/runtime/ClusterTestStatement.java | 18 +- .../itbase/runtime/ParallelRequestDelegate.java | 9 +- .../iotdb/ainode/it/AINodeCallInferenceIT.java | 135 + .../iotdb/ainode/it/AINodeClusterConfigIT.java | 3 - .../ainode/it/AINodeConcurrentForecastIT.java | 120 + .../ainode/it/AINodeConcurrentInferenceIT.java | 240 - ...sterConfigIT.java => AINodeDeviceManageIT.java} | 75 +- .../apache/iotdb/ainode/it/AINodeForecastIT.java | 195 + .../iotdb/ainode/it/AINodeInferenceSQLIT.java | 344 - .../ainode/it/AINodeInstanceManagementIT.java | 87 +- .../iotdb/ainode/it/AINodeModelManageIT.java | 101 +- .../apache/iotdb/ainode/utils/AINodeTestUtils.java | 184 +- .../confignode/it/IoTDBConfigNodeSnapshotIT.java | 31 +- .../it/database/IoTDBDatabaseSetAndDeleteIT.java | 66 +- .../it/load/IoTDBConfigNodeSwitchLeaderIT.java | 2 +- .../partition/IoTDBAutoRegionGroupExtensionIT.java | 8 +- .../IoTDBCustomRegionGroupExtensionIT.java | 2 +- .../it/partition/IoTDBPartitionCreationIT.java | 4 +- .../it/partition/IoTDBPartitionDurableIT.java | 4 +- .../it/partition/IoTDBPartitionGetterIT.java | 41 +- .../partition/IoTDBPartitionTableAutoCleanIT.java | 57 +- .../commit/IoTDBRegionReconstructForIoTV1IT.java | 1 + .../confignode/it/utils/ConfigNodeTestUtils.java | 16 +- .../org/apache/iotdb/db/it/IoTDBDeletionIT.java | 46 + .../org/apache/iotdb/db/it/IoTDBExampleIT.java | 4 +- .../java/org/apache/iotdb/db/it/IoTDBFilterIT.java | 14 + .../org/apache/iotdb/db/it/IoTDBFlushQueryIT.java | 87 +- .../org/apache/iotdb/db/it/IoTDBLoadTsFileIT.java | 198 + .../iotdb/db/it/IoTDBLoadTsFileWithModIT.java | 60 +- .../org/apache/iotdb/db/it/IoTDBRestServiceIT.java | 8 +- .../iotdb/db/it/IoTDBSetConfigurationIT.java | 12 +- .../org/apache/iotdb/db/it/IoTDBSimpleQueryIT.java | 261 +- .../db/it/IoTDBSyntaxConventionIdentifierIT.java | 2 +- .../db/it/aligned/IoTDBAlignedLastQueryIT.java | 10 +- .../iotdb/db/it/audit/IoTDBAuditLogBasicIT.java | 2 + .../org/apache/iotdb/db/it/auth/IoTDBAuthIT.java | 54 + .../iotdb/db/it/auth/IoTDBRelationalAuthIT.java | 37 + .../iotdb/db/it/auth/IoTDBSeriesPermissionIT.java | 7 + .../iotdb/db/it/auth/IoTDBSystemPermissionIT.java | 3 +- .../it/auth/IoTDBSystemPermissionRelationalIT.java | 3 +- .../IoTDBIoTConsensusV23C3DBasicITBase.java | 298 + .../batch/IoTDBIoTConsensusV2Batch3C3DBasicIT.java | 52 + .../IoTDBIoTConsensusV2Stream3C3DBasicIT.java | 52 + .../IoTDBLastQueryAlias2IT.java} | 39 +- .../iotdb/db/it/last/IoTDBLastQueryAliasIT.java | 164 + .../db/it/last/IoTDBLastQueryLastCacheIT.java | 42 + .../iotdb/db/it/mqtt/IoTDBMQTTServiceJsonIT.java | 451 + .../apache/iotdb/db/it/path/IoTDBQuotedPathIT.java | 4 +- .../db/it/query/IoTDBAggregationFirstByIT.java | 271 + .../it/query/IoTDBAggregationFirstByInGroupIT.java | 177 + .../iotdb/db/it/query/IoTDBAggregationFirstIT.java | 349 + .../it/query/IoTDBAggregationFirstInGroupIT.java | 172 + .../db/it/query/IoTDBAggregationLastByIT.java | 272 + .../it/query/IoTDBAggregationLastByInGroupIT.java | 170 + .../iotdb/db/it/query/IoTDBAggregationLastIT.java | 333 + .../db/it/query/IoTDBAggregationLastInGroupIT.java | 166 + .../it/query/IoTDBPredicateConversionTreeIT.java | 293 + .../apache/iotdb/db/it/query/IoTDBResultSetIT.java | 11 +- .../it/schema/IoTDBAlterEncodingCompressorIT.java | 209 + .../db/it/schema/IoTDBAlterTimeSeriesTypeIT.java | 3581 ++++ .../db/it/schema/IoTDBAutoCreateSchemaIT.java | 14 +- .../it/schema/IoTDBCreateAlignedTimeseriesIT.java | 22 + .../db/it/schema/IoTDBCreateTimeseriesIT.java | 8 + .../db/it/schema/IoTDBDeactivateTemplateIT.java | 2 +- .../db/it/schema/IoTDBDeleteTimeSeriesIT.java | 2 +- .../iotdb/db/it/schema/IoTDBMetadataFetchIT.java | 2 +- .../iotdb/db/it/schema/IoTDBSchemaTemplateIT.java | 17 + .../IoTDBShowTimeseriesOrderByTimeseriesIT.java | 278 + .../org/apache/iotdb/db/it/schema/IoTDBTagIT.java | 2 +- .../iotdb/db/it/selectinto/IoTDBSelectIntoIT.java | 68 +- .../db/it/udf/IoTDBUDTFBuiltinFunctionIT.java | 235 - .../iotdb/db/it/utils/TSDataTypeTestUtils.java | 113 + .../org/apache/iotdb/db/it/utils/TestUtils.java | 71 +- .../pipe/it/dual/tablemodel/TableModelUtils.java | 39 +- .../manual/basic/IoTDBPipeLifeCycleIT.java | 230 +- .../manual/basic/IoTDBPipePermissionIT.java | 4 +- .../IoTDBPipeTsFileDecompositionWithModsIT.java | 192 + .../manual/enhanced/IoTDBPipeIdempotentIT.java | 44 +- .../treemodel/auto/basic/IoTDBPipeAlterIT.java | 45 + .../treemodel/auto/basic/IoTDBPipeDataSinkIT.java | 148 +- .../treemodel/auto/basic/IoTDBPipeLifeCycleIT.java | 217 +- .../treemodel/auto/basic/IoTDBPipeProcessorIT.java | 19 +- .../treemodel/auto/basic/IoTDBPipeProtocolIT.java | 87 +- .../auto/basic/IoTDBPipeSinkParallelIT.java | 20 +- .../treemodel/auto/basic/IoTDBPipeSourceIT.java | 460 +- .../auto/basic/IoTDBPipeSwitchStatusIT.java | 88 +- .../treemodel/auto/basic/IoTDBPipeSyntaxIT.java | 501 +- .../auto/basic/IoTDBTreePatternFormatIT.java | 588 +- .../auto/enhanced/IoTDBPipeAutoConflictIT.java | 126 +- .../auto/enhanced/IoTDBPipeAutoDropIT.java | 42 +- .../auto/enhanced/IoTDBPipeClusterIT.java | 277 +- .../auto/enhanced/IoTDBPipeIdempotentIT.java | 32 +- .../auto/enhanced/IoTDBPipeNullValueIT.java | 22 +- .../auto/enhanced/IoTDBPipeSinkCompressionIT.java | 103 +- .../auto/enhanced/IoTDBPipeWithLoadIT.java | 17 +- .../treemodel/auto/enhanced/PipeNowFunctionIT.java | 153 +- .../treemodel/manual/IoTDBPipeInclusionIT.java | 136 +- .../manual/IoTDBPipeManualConflictIT.java | 102 +- .../manual/IoTDBPipeMetaHistoricalIT.java | 67 +- .../manual/IoTDBPipeMetaLeaderChangeIT.java | 52 +- .../treemodel/manual/IoTDBPipeMetaRestartIT.java | 52 +- .../manual/IoTDBPipeMultiSchemaRegionIT.java | 26 +- .../treemodel/manual/IoTDBPipePermissionIT.java | 406 + .../IoTDBPipeTsFileDecompositionWithModsIT.java | 976 + .../manual/IoTDBPipeTypeConversionISessionIT.java | 10 +- .../iotdb/pipe/it/single/AbstractPipeSingleIT.java | 2 +- .../iotdb/pipe/it/single/IoTDBPipeAggregateIT.java | 14 +- .../iotdb/pipe/it/single/IoTDBPipeOPCUAIT.java | 305 +- .../pipe/it/single/IoTDBPipePermissionIT.java | 81 +- .../iotdb/pipe/it/triple/IoTDBPipeForwardIT.java | 2 + .../it/db/it/IoTDBAuthenticationTableIT.java | 36 + .../relational/it/db/it/IoTDBDeletionTableIT.java | 559 +- .../relational/it/db/it/IoTDBInsertTableIT.java | 43 + .../relational/it/db/it/IoTDBLoadTsFileIT.java | 211 +- .../it/db/it/IoTDBSetSystemStatusTableIT.java | 1 + .../it/db/it/IoTDBTablePreparedStatementIT.java | 385 + .../db/it/IoTDBTablePreparedStatementJDBCIT.java | 498 + .../it/db/it/IoTDBWindowFunction3IT.java | 179 + .../relational/it/mqtt/IoTDBMQTTServiceIT.java | 1 + .../it/query/old/IoTDBSimpleQueryTableIT.java | 8 +- .../scalar/IoTDBScalarFunctionTableIT.java | 23 +- .../relational/it/query/recent/IoTDBCteIT.java | 558 +- .../it/query/recent/IoTDBDebugQueryIT.java | 105 + .../it/query/recent/IoTDBExceptTableIT.java | 159 + .../it/query/recent/IoTDBFillTableIT.java | 20 + .../it/query/recent/IoTDBIntersectTableIT.java | 153 + .../it/query/recent/IoTDBLengthFunctionIT.java | 119 + .../it/query/recent/IoTDBMaintainAuthIT.java | 8 +- .../recent/IoTDBPredicateConversionTableIT.java | 379 + .../it/query/recent/IoTDBTableAggregationIT.java | 33 + .../it/query/recent/IoTDBTableFunctionIT.java | 92 + .../it/query/recent/IoTExplainAnalyzeIT.java | 264 + .../informationschema/IoTDBCurrentQueriesIT.java | 263 + .../recent/informationschema/IoTDBServicesIT.java | 118 + .../query/recent/scalar/IoTDBCRC32FunctionIT.java | 149 + .../recent/scalar/IoTDBCastLiteralFunctionIT.java | 146 + .../scalar/IoTDBFromBase32ColumnFunctionIT.java | 197 + .../scalar/IoTDBFromBase64ColumnFunctionIT.java | 117 + .../scalar/IoTDBFromBase64UrlColumnFunctionIT.java | 186 + .../scalar/IoTDBFromBigEndian32FunctionIT.java | 170 + .../scalar/IoTDBFromBigEndian64FunctionIT.java | 169 + .../scalar/IoTDBFromHexColumnFunctionIT.java | 133 + .../scalar/IoTDBFromIEEE754_32FunctionIT.java | 154 + .../scalar/IoTDBFromIEEE754_64FunctionIT.java | 154 + .../scalar/IoTDBFromLittleEndian32FunctionIT.java | 173 + .../scalar/IoTDBFromLittleEndian64FunctionIT.java | 173 + .../recent/scalar/IoTDBHmacMd5FunctionIT.java | 211 + .../recent/scalar/IoTDBHmacSha1FunctionIT.java | 211 + .../recent/scalar/IoTDBHmacSha256FunctionIT.java | 217 + .../recent/scalar/IoTDBHmacSha512FunctionIT.java | 221 + .../query/recent/scalar/IoTDBLpadFunctionIT.java | 230 + .../recent/scalar/IoTDBMd5ColumnFunctionIT.java | 132 + .../scalar/IoTDBMurmur3ColumnFunctionIT.java | 132 + .../recent/scalar/IoTDBReverseFunctionIT.java | 136 + .../query/recent/scalar/IoTDBRpadFunctionIT.java | 230 + .../recent/scalar/IoTDBSha1ColumnFunctionIT.java | 132 + .../recent/scalar/IoTDBSha256ColumnFunctionIT.java | 134 + .../recent/scalar/IoTDBSha512ColumnFunctionIT.java | 132 + .../scalar/IoTDBSpookyHashV2_32FunctionIT.java | 156 + .../scalar/IoTDBSpookyHashV2_64FunctionIT.java | 156 + .../scalar/IoTDBToBase32ColumnFunctionIT.java | 141 + .../scalar/IoTDBToBase64ColumnFunctionIT.java | 149 + .../scalar/IoTDBToBase64UrlColumnFunctionIT.java | 126 + .../scalar/IoTDBToBigEndian32FunctionIT.java | 143 + .../scalar/IoTDBToBigEndian64FunctionIT.java | 139 + .../recent/scalar/IoTDBToHexColumnFunctionIT.java | 149 + .../recent/scalar/IoTDBToIEEE754_32FunctionIT.java | 118 + .../recent/scalar/IoTDBToIEEE754_64FunctionIT.java | 119 + .../scalar/IoTDBToLittleEndian32FunctionIT.java | 140 + .../scalar/IoTDBToLittleEndian64FunctionIT.java | 140 + .../scalar/IoTDBXXHash64ColumnFunctionIT.java | 132 + .../recent/subquery/SubqueryDataSetUtils.java | 4 + .../IoTDBUncorrelatedScalarSubqueryIT.java | 5 + .../view/recent/IoTDBComplexQueryTableViewIT.java | 18 +- .../view/recent/IoTDBTableViewAddColumnTest.java | 84 + .../it/rest/it/IoTDBRestServiceInsertValuesIT.java | 2 +- .../it/schema/IoTDBAlterColumnTypeIT.java | 2707 +++ .../relational/it/schema/IoTDBDatabaseIT.java | 53 +- .../iotdb/relational/it/schema/IoTDBDeviceIT.java | 44 +- .../iotdb/relational/it/schema/IoTDBTableIT.java | 101 +- .../it/schema/IoTDBTableWithDefinedTimeIT.java | 252 + .../it/session/IoTDBSessionRelationalIT.java | 27 +- .../iotdb/session/it/IoTDBConnectionsIT.java | 364 + .../iotdb/session/it/IoTDBSessionSimpleIT.java | 22 +- .../session/it/IoTDBSessionSyntaxConventionIT.java | 6 +- .../it/cluster/IoTDBSubscriptionRestartIT.java | 7 +- .../it/dual/AbstractSubscriptionDualIT.java | 3 - .../dual/tablemodel/IoTDBSubscriptionTopicIT.java | 7 + .../IoTDBSubscriptionConsumerGroupIT.java | 125 +- .../IoTDBSubscriptionTimePrecisionIT.java | 2 + .../dual/treemodel/IoTDBSubscriptionTopicIT.java | 14 + .../it/local/AbstractSubscriptionLocalIT.java | 1 - .../it/local/IoTDBSubscriptionBasicIT.java | 8 + .../it/local/IoTDBSubscriptionDataTypeIT.java | 21 + .../it/local/IoTDBSubscriptionIdempotentIT.java | 4 + .../it/local/IoTDBSubscriptionTopicIT.java | 5 + .../tablemodel/IoTDBSubscriptionIsolationIT.java | 3 + .../tablemodel/IoTDBSubscriptionPermissionIT.java | 5 + .../it/triple/AbstractSubscriptionTripleIT.java | 5 - .../treemodel/IoTDBSubscriptionSharingIT.java | 2 + .../IoTDBDefaultPullConsumerDataSetIT.java | 2 + .../IoTDBDefaultTsfilePushConsumerIT.java | 2 + .../IoTDBRootDatasetPushConsumerIT.java | 2 + .../IoTDBRootPullConsumeTsfileIT.java | 2 + ...merPullConsumerWith1TopicShareProcessMixIT.java | 2 + .../param/IoTDBTestParamPullConsumerIT.java | 26 + .../param/IoTDBTestParamPushConsumerIT.java | 19 + .../param/IoTDBTestParamSubscriptionSessionIT.java | 6 + .../regression/param/IoTDBTestParamTopicIT.java | 20 + ...DBTestAutoCommitFalseDataSetPullConsumerIT.java | 2 + ...TDBTestAutoCommitTrueDataSetPullConsumerIT.java | 2 + .../format/IoTDBDBDataSetPullConsumerIT.java | 2 + .../format/IoTDBDBTsfilePullConsumerIT.java | 2 + .../IoTDBAllTsDatasetPullConsumerIT.java | 2 + .../IoTDBAllTsTsfilePullConsumerIT.java | 2 + .../IoTDBAllTsfilePullConsumerSnapshotIT.java | 2 + .../IoTDBPathDeviceDataSetPullConsumerIT.java | 2 + .../IoTDBPathDeviceTsfilePullConsumerIT.java | 2 + .../IoTDBTimeTsDatasetPullConsumerIT.java | 2 + .../IoTDBTimeTsTsfilePullConsumerIT.java | 2 + .../IoTDBSnapshotDevicePullConsumerDataSetIT.java | 2 + .../IoTDBSnapshotDevicePullConsumerTsfileIT.java | 2 + ...DBConsumer2With1TopicShareProcessDataSetIT.java | 2 + ...TDBConsumer2With1TopicShareProcessTsfileIT.java | 2 + .../multi/IoTDBMultiGroupVsMultiConsumerIT.java | 2 + .../IoTDBOneConsumerMultiTopicsDatasetIT.java | 2 + .../multi/IoTDBOneConsumerMultiTopicsMixIT.java | 2 + .../multi/IoTDBOneConsumerMultiTopicsTsfileIT.java | 2 + .../pattern/IoTDBDBPatternPullConsumeTsfileIT.java | 2 + .../IoTDBDBPatternPullConsumerDataSetIT.java | 2 + .../IoTDBDefaultPatternPullConsumerDataSetIT.java | 2 + .../IoTDBDevicePatternPullConsumeTsfileIT.java | 2 + .../IoTDBDevicePatternPullConsumerDataSetIT.java | 2 + ...DBMiddleMatch2PatternPullConsumerDataSetIT.java | 2 + ...IoTDBMiddleMatchPatternPullConsumeTsfileIT.java | 2 + ...TDBMiddleMatchPatternPullConsumerDataSetIT.java | 2 + .../IoTDBRootPatternPullConsumeTsfileIT.java | 2 + .../pattern/IoTDBTSPatternPullConsumeTsfileIT.java | 2 + .../IoTDBTSPatternPullConsumerDataSetIT.java | 2 + .../time/IoTDBAllPullConsumerDataSetIT.java | 2 + .../time/IoTDBHistoryPullConsumerDataSetIT.java | 2 + .../time/IoTDBRealTimePullConsumerDataSetIT.java | 2 + ...oTDBTimeRangeAccuratePullConsumerDataSetIT.java | 2 + .../time/IoTDBTimeRangePullConsumerDataSetIT.java | 2 + .../format/IoTDBTestPushConsumeDataSetIT.java | 2 + .../IoTDBTestPushConsumeNoTargetDirTsfileIT.java | 2 + .../format/IoTDBTestPushConsumeTsfileIT.java | 2 + .../IoTDBLooseAllTsDatasetPushConsumerIT.java | 2 + ...TDBLooseAllTsDatasetPushConsumerSnapshotIT.java | 2 + .../IoTDBLooseAllTsfilePushConsumerIT.java | 2 + .../IoTDBPathLooseDeviceTsfilePushConsumerIT.java | 2 + .../IoTDBPathLooseTsDatasetPushConsumerIT.java | 2 + .../IoTDBPathLooseTsfilePushConsumerIT.java | 2 + .../IoTDBPathTsLooseDatasetPushConsumerIT.java | 2 + .../IoTDBTimeLooseTsDatasetPushConsumerIT.java | 2 + .../IoTDBTimeLooseTsTsfilePushConsumerIT.java | 2 + .../IoTDBTimeLooseTsfilePushConsumerIT.java | 2 + .../IoTDBTimeTsLooseDatasetPushConsumerIT.java | 2 + ...oTDBSnapshotTSPatternDatasetPushConsumerIT.java | 2 + ...IoTDBSnapshotTSPatternTsfilePushConsumerIT.java | 2 + ...DBConsumer2With1TopicShareProcessDataSetIT.java | 2 + ...TDBConsumer2With1TopicShareProcessTsfileIT.java | 2 + .../multi/IoTDBMultiGroupVsMultiConsumerIT.java | 2 + .../IoTDBOneConsumerMultiTopicsDatasetIT.java | 2 + .../multi/IoTDBOneConsumerMultiTopicsMixIT.java | 2 + .../multi/IoTDBOneConsumerMultiTopicsTsfileIT.java | 2 + .../IoTDBDBPatternDatasetPushConsumerIT.java | 2 + .../IoTDBDBPatternTsfilePushConsumerIT.java | 2 + .../IoTDBDefaultPatternTsfilePushConsumerIT.java | 2 + .../IoTDBDevicePatternDatasetPushConsumerIT.java | 2 + .../IoTDBDevicePatternTsfilePushConsumerIT.java | 2 + .../IoTDBRootPatternDatasetPushConsumerIT.java | 2 + .../IoTDBTSPatternDatasetPushConsumerIT.java | 2 + .../IoTDBTSPatternTsfilePushConsumerIT.java | 2 + .../IoTDBHistoryRootDatasetPushConsumerIT.java | 2 + .../time/IoTDBHistoryRootTsFilePushConsumerIT.java | 2 + .../time/IoTDBRealTimeDBDatasetPushConsumerIT.java | 2 + .../time/IoTDBRealTimeDBTsfilePushConsumerIT.java | 2 + ...DBTimeRangeAccurateDBDataSetPushConsumerIT.java | 2 + .../IoTDBTimeRangeDBDataSetPushConsumerIT.java | 2 + .../time/IoTDBTimeRangeDBTsfilePushConsumerIT.java | 2 + .../topic/IoTDBDataSet1TopicConsumerSpecialIT.java | 2 + .../regression/topic/IoTDBTestTopicNameIT.java | 2 + .../regression/user/IoTDBOtherUserConsumerIT.java | 8 +- .../apache/iotdb/tools/it/ExportTsFileTestIT.java | 3 +- .../src/test/resources/ainode-example/config.yaml | 5 - .../{ainode-example/model.pt => object-example.pt} | Bin iotdb-api/external-api/pom.xml | 2 +- .../{external-api => external-service-api}/pom.xml | 12 +- .../externalservice/api/IExternalService.java | 17 +- iotdb-api/pipe-api/pom.xml | 7 +- .../iotdb/pipe/api/collector/DataCollector.java | 26 +- .../iotdb/pipe/api/collector/TabletCollector.java | 31 +- .../api/customizer/parameter/PipeParameters.java | 52 +- .../event/dml/insertion/TabletInsertionEvent.java | 11 + .../api/exception/PipePasswordCheckException.java | 7 +- .../java/org/apache/iotdb/pipe/api/type/Type.java | 5 +- .../customizer/parameter/PipeParametersTest.java | 39 +- iotdb-api/pom.xml | 3 +- iotdb-api/trigger-api/pom.xml | 2 +- iotdb-api/udf-api/pom.xml | 2 +- .../iotdb/udf/api/relational/access/Record.java | 52 +- .../java/org/apache/iotdb/udf/api/type/Type.java | 10 +- iotdb-client/cli/pom.xml | 22 +- .../java/org/apache/iotdb/cli/AbstractCli.java | 25 +- .../src/main/java/org/apache/iotdb/cli/Cli.java | 16 +- .../org/apache/iotdb/tool/common/Constants.java | 12 + .../org/apache/iotdb/tool/common/OptionsUtil.java | 30 + .../apache/iotdb/tool/data/AbstractDataTool.java | 41 +- .../org/apache/iotdb/tool/data/ExportData.java | 5 +- .../apache/iotdb/tool/data/ExportDataTable.java | 10 +- .../org/apache/iotdb/tool/data/ExportDataTree.java | 250 +- .../apache/iotdb/tool/data/ImportDataTable.java | 10 +- .../org/apache/iotdb/tool/data/ImportDataTree.java | 10 +- .../iotdb/tool/schema/AbstractSchemaTool.java | 43 +- .../iotdb/tool/schema/ExportSchemaTable.java | 10 +- .../apache/iotdb/tool/schema/ExportSchemaTree.java | 12 +- .../iotdb/tool/schema/ImportSchemaTable.java | 10 +- .../apache/iotdb/tool/schema/ImportSchemaTree.java | 10 +- .../iotdb/tool/tsfile/ImportTsFileRemotely.java | 9 +- iotdb-client/client-cpp/pom.xml | 57 +- .../client-cpp/src/main/AbstractSessionBuilder.h | 39 +- iotdb-client/client-cpp/src/main/CMakeLists.txt | 43 +- 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/NodesSupplier.cpp | 73 +- iotdb-client/client-cpp/src/main/NodesSupplier.h | 34 +- iotdb-client/client-cpp/src/main/Session.cpp | 32 +- iotdb-client/client-cpp/src/main/Session.h | 58 +- iotdb-client/client-cpp/src/main/SessionBuilder.h | 15 + .../client-cpp/src/main/SessionConnection.cpp | 26 +- .../client-cpp/src/main/SessionConnection.h | 11 +- .../client-cpp/src/main/SessionDataSet.cpp | 2 + .../client-cpp/src/main/TableSessionBuilder.h | 15 + .../client-cpp/src/main/ThriftConnection.cpp | 22 +- .../client-cpp/src/main/ThriftConnection.h | 10 +- iotdb-client/client-cpp/src/test/CMakeLists.txt | 74 +- iotdb-client/client-cpp/src/test/catch2/catch.hpp | 17974 +++++++++++++++++++ iotdb-client/client-cpp/src/test/main.cpp | 15 +- iotdb-client/client-py/README.md | 2 + iotdb-client/client-py/iotdb/Session.py | 8 +- .../client-py/iotdb/tsfile/utils/tsblock_serde.py | 5 +- .../client-py/iotdb/utils/SessionDataSet.py | 19 + .../client-py/iotdb/utils/iotdb_rpc_dataset.py | 68 + iotdb-client/client-py/pom.xml | 8 +- iotdb-client/client-py/session_example.py | 6 + iotdb-client/client-py/session_example_date.py | 109 + iotdb-client/client-py/session_pool_example.py | 18 +- .../client-py/table_model_session_example.py | 4 + .../client-py/table_model_session_pool_example.py | 24 +- .../client-py/tests/integration/test_dataframe.py | 50 + .../client-py/tests/integration/test_todf.py | 2 +- 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/IoTDBConnection.java | 6 +- .../org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java | 29 +- .../apache/iotdb/jdbc/IoTDBPreparedStatement.java | 17 +- .../java/org/apache/iotdb/jdbc/IoTDBStatement.java | 6 +- .../iotdb/jdbc/IoTDBTablePreparedStatement.java | 732 + .../iotdb/jdbc/IoTDBPreparedStatementTest.java | 12 +- .../jdbc/IoTDBTablePreparedStatementTest.java | 240 + iotdb-client/pom.xml | 2 +- iotdb-client/service-rpc/pom.xml | 22 +- .../org/apache/iotdb/rpc/IoTDBJDBCDataSet.java | 6 + .../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java | 6 + .../iotdb/rpc/NettyTNonblockingTransport.java | 623 - .../main/java/org/apache/iotdb/rpc/RpcUtils.java | 12 + .../rpc/TCompressedElasticFramedTransport.java | 8 +- .../apache/iotdb/rpc/TElasticFramedTransport.java | 131 +- .../iotdb/rpc/TNonblockingTransportWrapper.java | 8 +- .../java/org/apache/iotdb/rpc/TSStatusCode.java | 37 +- .../iotdb/rpc/stmt/PreparedParameterSerde.java | 175 + .../iotdb/rpc/stmt/PreparedParameterSerdeTest.java | 127 + iotdb-client/session/pom.xml | 24 +- .../org/apache/iotdb/session/NodesSupplier.java | 49 +- .../java/org/apache/iotdb/session/Session.java | 8 +- .../payload/SubscriptionSessionDataSet.java | 1 + .../apache/iotdb/session/util/SessionUtils.java | 3 + iotdb-core/ainode/.gitignore | 9 +- iotdb-core/ainode/ainode.spec | 265 + iotdb-core/ainode/ainode.xml | 22 +- iotdb-core/ainode/build_binary.py | 624 + iotdb-core/ainode/iotdb/ainode/core/ai_node.py | 7 +- iotdb-core/ainode/iotdb/ainode/core/config.py | 84 +- iotdb-core/ainode/iotdb/ainode/core/constant.py | 223 +- .../{inference/strategy => device}/__init__.py | 0 .../{model/timerxl => device/backend}/__init__.py | 0 .../iotdb/ainode/core/device/backend/base.py | 26 +- .../ainode/core/device/backend/cpu_backend.py | 21 +- .../ainode/core/device/backend/cuda_backend.py | 23 +- .../iotdb/ainode/core/device/device_utils.py | 33 +- .../ainode/iotdb/ainode/core/device/env.py | 23 +- iotdb-core/ainode/iotdb/ainode/core/exception.py | 110 +- .../ainode/core/inference/batcher/basic_batcher.py | 27 +- .../core/inference/dispatcher/basic_dispatcher.py | 6 +- .../ainode/core/inference/inference_request.py | 40 +- .../core/inference/inference_request_pool.py | 147 +- .../inference/{strategy => pipeline}/__init__.py | 0 .../core/inference/pipeline/basic_pipeline.py | 288 + .../core/inference/pipeline/pipeline_loader.py | 58 + .../iotdb/ainode/core/inference/pool_controller.py | 242 +- .../iotdb/ainode/core/inference/pool_group.py | 6 +- .../pool_scheduler/abstract_pool_scheduler.py | 12 +- .../pool_scheduler/basic_pool_scheduler.py | 68 +- .../strategy/abstract_inference_pipeline.py | 60 - .../strategy/timer_sundial_inference_pipeline.py | 51 - .../strategy/timerxl_inference_pipeline.py | 51 - .../ainode/iotdb/ainode/core/inference/utils.py | 45 +- .../ainode/iotdb/ainode/core/ingress/iotdb.py | 8 - iotdb-core/ainode/iotdb/ainode/core/log.py | 4 +- .../iotdb/ainode/core/manager/device_manager.py | 108 + .../iotdb/ainode/core/manager/inference_manager.py | 325 +- .../iotdb/ainode/core/manager/model_manager.py | 157 +- .../ainode/iotdb/ainode/core/manager/utils.py | 41 +- .../ainode/core/model/built_in_model_factory.py | 1238 -- .../strategy => model/chronos2}/__init__.py | 0 .../iotdb/ainode/core/model/chronos2/base.py | 300 + .../ainode/core/model/chronos2/chronos_bolt.py | 703 + .../iotdb/ainode/core/model/chronos2/config.py | 138 + .../iotdb/ainode/core/model/chronos2/dataset.py | 756 + .../iotdb/ainode/core/model/chronos2/layers.py | 481 + .../iotdb/ainode/core/model/chronos2/model.py | 909 + .../core/model/chronos2/pipeline_chronos2.py | 476 + .../iotdb/ainode/core/model/chronos2/utils.py | 242 + .../iotdb/ainode/core/model/model_constants.py | 25 +- .../ainode/iotdb/ainode/core/model/model_enums.py | 70 - .../iotdb/ainode/core/model/model_factory.py | 291 - .../ainode/iotdb/ainode/core/model/model_info.py | 159 +- .../ainode/iotdb/ainode/core/model/model_loader.py | 150 + .../iotdb/ainode/core/model/model_storage.py | 775 +- .../iotdb/ainode/core/model/moirai2/__init__.py} | 9 +- .../strategy => model/moirai2/common}/__init__.py | 0 .../ainode/core/model/moirai2/common/torch_util.py | 130 + .../core/model/moirai2/configuration_moirai2.py | 61 + .../ainode/core/model/moirai2/modeling_moirai2.py | 1352 ++ .../strategy => model/moirai2/module}/__init__.py | 0 .../ainode/core/model/moirai2/module/attention.py | 366 + .../iotdb/ainode/core/model/moirai2/module/ffn.py | 159 + .../iotdb/ainode/core/model/moirai2/module/norm.py | 62 + .../core/model/moirai2/module/packed_scaler.py | 125 + .../core/model/moirai2/module/position/__init__.py | 30 +- .../core/model/moirai2/module/position/additive.py | 81 + .../model/moirai2/module/position/attn_bias.py | 113 + .../moirai2/module/position/attn_projection.py | 215 + .../core/model/moirai2/module/transformer.py | 246 + .../ainode/core/model/moirai2/module/ts_embed.py | 294 + .../ainode/core/model/moirai2/pipeline_moirai2.py | 169 + .../moirai2/transform}/__init__.py | 0 .../ainode/core/model/moirai2/transform/_base.py | 71 + .../ainode/core/model/moirai2/transform/_mixin.py | 126 + .../core/model/moirai2/transform/imputation.py | 133 + .../strategy => model/sktime}/__init__.py | 0 .../ainode/core/model/sktime/arima/config.json | 25 + .../core/model/sktime/configuration_sktime.py | 409 + .../model/sktime/exponential_smoothing/config.json | 11 + .../core/model/sktime/gaussian_hmm/config.json | 22 + .../ainode/core/model/sktime/gmm_hmm/config.json | 24 + .../ainode/core/model/sktime/modeling_sktime.py | 180 + .../core/model/sktime/naive_forecaster/config.json | 9 + .../ainode/core/model/sktime/pipeline_sktime.py | 115 + .../core/model/sktime/stl_forecaster/config.json | 22 + .../ainode/core/model/sktime/stray/config.json | 11 + .../ainode/core/model/sundial/modeling_sundial.py | 21 +- .../ainode/core/model/sundial/pipeline_sundial.py | 111 + .../strategy => model/timer_xl}/__init__.py | 0 .../{timerxl => timer_xl}/configuration_timer.py | 0 .../model/{timerxl => timer_xl}/modeling_timer.py | 15 +- .../ainode/core/model/timer_xl/pipeline_timer.py | 102 + .../{timerxl => timer_xl}/ts_generation_mixin.py | 0 .../ainode/iotdb/ainode/core/model/uri_utils.py | 137 - iotdb-core/ainode/iotdb/ainode/core/model/utils.py | 137 + iotdb-core/ainode/iotdb/ainode/core/rpc/client.py | 39 - iotdb-core/ainode/iotdb/ainode/core/rpc/handler.py | 150 +- iotdb-core/ainode/iotdb/ainode/core/rpc/service.py | 15 +- iotdb-core/ainode/iotdb/ainode/core/script.py | 80 +- .../ainode/iotdb/ainode/core/util/gpu_mapping.py | 93 - iotdb-core/ainode/iotdb/ainode/core/util/serde.py | 30 +- iotdb-core/ainode/poetry.lock | 2226 --- iotdb-core/ainode/pom.xml | 138 +- iotdb-core/ainode/pyproject.toml | 39 +- .../ainode/resources/conf/iotdb-ainode.properties | 6 +- .../ainode/resources/syncPythonVersion.groovy | 192 - iotdb-core/antlr/pom.xml | 2 +- .../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 5 + .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 86 +- .../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 | 33 + iotdb-core/confignode/pom.xml | 34 +- .../iotdb/confignode/audit/CNAuditLogger.java | 50 +- .../async/AsyncAINodeHeartbeatClientPool.java | 14 +- .../async/AsyncDataNodeHeartbeatClientPool.java | 1 - .../client/async/CnToDnAsyncRequestType.java | 6 + .../CnToDnInternalServiceAsyncRequestManager.java | 17 + .../rpc/DataNodeAsyncRequestRPCHandler.java | 11 + .../rpc/GetBuiltInExternalServiceRPCHandler.java | 82 + .../sync/CnToAnSyncRequestType.java} | 9 +- .../client/sync/SyncAINodeClientPool.java | 151 + .../iotdb/confignode/conf/ConfigNodeConfig.java | 11 + .../confignode/conf/ConfigNodeDescriptor.java | 3 + .../confignode/conf/SystemPropertiesUtils.java | 2 + .../consensus/request/ConfigPhysicalPlan.java | 52 +- .../consensus/request/ConfigPhysicalPlanType.java | 10 +- .../request/ConfigPhysicalPlanVisitor.java | 24 + .../ShowExternalServicePlan.java} | 32 +- .../write/database/PreDeleteDatabasePlan.java | 22 +- .../CreateExternalServicePlan.java} | 40 +- .../DropExternalServicePlan.java} | 38 +- .../StartExternalServicePlan.java} | 38 +- .../StopExternalServicePlan.java} | 38 +- .../request/write/model/UpdateModelInfoPlan.java | 122 - .../payload/PipeAlterEncodingCompressorPlan.java | 130 + .../pipe/payload/PipeAlterTimeSeriesPlan.java | 110 + .../pipe/payload/PipeDeactivateTemplatePlan.java | 2 +- .../AlterColumnDataTypePlan.java} | 45 +- .../write/template/CreateSchemaTemplatePlan.java | 2 +- .../externalservice/ShowExternalServiceResp.java | 53 + .../consensus/response/model/GetModelInfoResp.java | 63 - .../consensus/response/model/ModelTableResp.java | 62 - .../consensus/response/table/DescTableResp.java | 21 +- .../response/template/TemplateInfoResp.java | 2 +- .../response/template/TemplateSetInfoResp.java | 2 +- .../confignode/manager/ClusterQuotaManager.java | 5 +- .../iotdb/confignode/manager/ConfigManager.java | 353 +- .../apache/iotdb/confignode/manager/IManager.java | 77 +- .../iotdb/confignode/manager/ModelManager.java | 244 - .../confignode/manager/PermissionManager.java | 12 +- .../iotdb/confignode/manager/ProcedureManager.java | 163 +- .../iotdb/confignode/manager/TTLManager.java | 14 + .../externalservice/ExternalServiceInfo.java | 312 + .../externalservice/ExternalServiceManager.java | 215 + .../iotdb/confignode/manager/load/LoadManager.java | 2 +- .../manager/load/balancer/RegionBalancer.java | 2 +- .../iotdb/confignode/manager/node/NodeManager.java | 16 +- .../manager/partition/PartitionManager.java | 8 +- .../agent/plugin/PipeConfigNodePluginAgent.java | 4 +- .../pipe/agent/task/PipeConfigNodeSubtask.java | 27 +- .../pipe/agent/task/PipeConfigNodeTaskStage.java | 8 +- .../runtime/PipeLeaderChangeHandler.java | 5 +- .../pipe/coordinator/task/PipeTaskCoordinator.java | 30 +- .../coordinator/task/PipeTaskCoordinatorLock.java | 59 +- .../receiver/protocol/IoTDBConfigNodeReceiver.java | 562 +- .../PipeConfigPhysicalPlanTSStatusVisitor.java | 29 + .../client/IoTDBConfigNodeSyncClientManager.java | 6 +- .../sink/protocol/IoTDBConfigRegionAirGapSink.java | 8 +- .../pipe/sink/protocol/IoTDBConfigRegionSink.java | 16 +- .../pipe/source/ConfigRegionListeningFilter.java | 93 +- .../pipe/source/IoTDBConfigRegionSource.java | 98 +- ...nfigPhysicalPlanTablePrivilegeParseVisitor.java | 389 - ...ava => PipeConfigTablePatternParseVisitor.java} | 9 +- .../PipeConfigTablePrivilegeParseVisitor.java | 378 + ....java => PipeConfigTableScopeParseVisitor.java} | 2 +- ...java => PipeConfigTreePatternParseVisitor.java} | 98 +- .../PipeConfigTreePrivilegeParseVisitor.java | 610 + ...r.java => PipeConfigTreeScopeParseVisitor.java} | 2 +- .../manager/schema/ClusterSchemaManager.java | 98 +- .../subscription/SubscriptionCoordinator.java | 10 +- .../iotdb/confignode/persistence/ModelInfo.java | 378 - .../iotdb/confignode/persistence/TTLInfo.java | 17 + .../confignode/persistence/auth/AuthorInfo.java | 93 +- .../persistence/auth/AuthorPlanExecutor.java | 34 +- .../persistence/auth/IAuthorPlanExecutor.java | 8 +- .../persistence/executor/ConfigPlanExecutor.java | 50 +- .../persistence/partition/PartitionInfo.java | 2 +- .../persistence/pipe/PipePluginInfo.java | 105 +- .../confignode/persistence/pipe/PipeTaskInfo.java | 18 +- .../confignode/persistence/quota/QuotaInfo.java | 4 +- .../schema/CNPhysicalPlanGenerator.java | 12 +- .../persistence/schema/ClusterSchemaInfo.java | 70 +- .../confignode/persistence/schema/ConfigMTree.java | 109 +- .../persistence/schema/ConfigMTreeStore.java | 2 +- .../persistence/schema/TemplateTable.java | 2 +- .../schema/mnode/impl/ConfigTableNode.java | 15 + .../schema/mnode/info/ConfigTableInfo.java | 16 + .../procedure/CompletedProcedureRecycler.java | 21 +- .../procedure/PartitionTableAutoCleaner.java | 18 +- .../iotdb/confignode/procedure/Procedure.java | 27 +- .../confignode/procedure/ProcedureExecutor.java | 88 +- .../procedure/TimeoutExecutorThread.java | 12 +- .../procedure/env/RegionMaintainHandler.java | 245 +- .../procedure/impl/model/CreateModelProcedure.java | 250 - .../procedure/impl/model/DropModelProcedure.java | 199 - .../procedure/impl/node/RemoveAINodeProcedure.java | 31 +- .../impl/pipe/AbstractOperatePipeProcedureV2.java | 21 + .../pipe/plugin/CreatePipePluginProcedure.java | 2 +- .../impl/pipe/plugin/DropPipePluginProcedure.java | 2 +- .../impl/pipe/task/AlterPipeProcedureV2.java | 63 +- .../impl/pipe/task/CreatePipeProcedureV2.java | 13 +- .../impl/region/AddRegionPeerProcedure.java | 7 +- .../impl/region/CreateRegionGroupsProcedure.java | 6 + .../impl/region/RemoveRegionPeerProcedure.java | 45 +- .../schema/AlterEncodingCompressorProcedure.java | 335 + .../impl/schema/AlterLogicalViewProcedure.java | 10 +- .../schema/AlterTimeSeriesDataTypeProcedure.java | 410 + .../impl/schema/DataNodeRegionTaskExecutor.java | 17 +- .../impl/schema/DataNodeTSStatusTaskExecutor.java | 113 + .../impl/schema/DeactivateTemplateProcedure.java | 60 +- .../impl/schema/DeleteDatabaseProcedure.java | 28 +- .../impl/schema/DeleteLogicalViewProcedure.java | 58 +- .../impl/schema/DeleteTimeSeriesProcedure.java | 78 +- .../procedure/impl/schema/SchemaUtils.java | 14 +- .../impl/schema/SetTemplateProcedure.java | 14 +- .../impl/schema/UnsetTemplateProcedure.java | 2 +- .../table/AbstractAlterOrDropTableProcedure.java | 29 +- .../table/AlterTableColumnDataTypeProcedure.java | 212 + .../impl/schema/table/DeleteDevicesProcedure.java | 96 +- .../schema/table/DropTableColumnProcedure.java | 2 +- .../procedure/state/AddRegionPeerState.java | 1 + ...tate.java => AlterEncodingCompressorState.java} | 7 +- .../procedure/state/CreateRegionGroupsState.java | 5 +- .../procedure/state/RemoveAINodeState.java | 1 - .../procedure/state/RemoveRegionPeerState.java | 1 + ...ate.java => AlterTableColumnDataTypeState.java} | 9 +- ...tate.java => AlterTimeSeriesDataTypeState.java} | 8 +- ...ageGroupState.java => DeleteDatabaseState.java} | 2 +- .../procedure/store/ConfigProcedureStore.java | 26 +- .../procedure/store/IProcedureStore.java | 10 +- .../procedure/store/ProcedureFactory.java | 39 +- .../confignode/procedure/store/ProcedureType.java | 9 + .../thrift/ConfigNodeRPCServiceProcessor.java | 108 +- .../request/ConfigPhysicalPlanSerDeTest.java | 35 +- .../request/ConfigPhysicalPlanTypeTest.java} | 37 +- ...t.java => PipeConfigScopeParseVisitorTest.java} | 2 +- ...=> PipeConfigTablePatternParseVisitorTest.java} | 12 +- ... => PipeConfigTreePatternParseVisitorTest.java} | 32 +- .../PipeConfigTreePrivilegeParseVisitorTest.java | 316 + .../confignode/persistence/AuthorInfoTest.java | 2 +- .../persistence/CNPhysicalPlanGeneratorTest.java | 2 +- .../persistence/ExternalServiceInfoTest.java | 93 + .../iotdb/confignode/persistence/PipeInfoTest.java | 16 +- .../persistence/schema/ClusterSchemaInfoTest.java | 2 +- .../persistence/schema/ConfigMTreeTest.java | 63 +- .../persistence/schema/TemplateTableTest.java | 2 +- .../pipe/receiver/PipeEnrichedProcedureTest.java | 30 +- .../AlterEncodingCompressorProcedureTest.java | 62 + ...a => AlterTimeSeriesDataTypeProcedureTest.java} | 40 +- .../schema/DataNodeRegionTaskExecutorTest.java | 81 + .../schema/DeactivateTemplateProcedureTest.java | 2 +- .../impl/schema/UnsetTemplateProcedureTest.java | 2 +- .../test/resources/oldsnapshot/cluster_schema.bin | Bin 0 -> 121 bytes .../resources/oldsnapshot/table_cluster_schema.bin | Bin 0 -> 5177 bytes iotdb-core/consensus/pom.xml | 28 +- .../consensus/config/PipeConsensusConfig.java | 16 - .../apache/iotdb/consensus/pipe/PipeConsensus.java | 39 +- .../consensus/pipe/PipeConsensusServerImpl.java | 223 +- .../pipe/consensuspipe/ConsensusPipeManager.java | 157 - .../pipe/metric/PipeConsensusSyncLagManager.java | 10 +- .../service/PipeConsensusRPCServiceProcessor.java | 3 +- .../iotdb/consensus/ratis/RatisConsensus.java | 1 + iotdb-core/datanode/pom.xml | 129 +- .../assembly/resources/conf/logback-datanode.xml | 17 +- .../org/apache/iotdb/db/audit/DNAuditLogger.java | 398 +- .../org/apache/iotdb/db/auth/AuthorityChecker.java | 23 +- .../iotdb/db/auth/ClusterAuthorityFetcher.java | 85 +- .../apache/iotdb/db/auth/IAuthorityFetcher.java | 3 +- .../apache/iotdb/db/conf/DataNodeMemoryConfig.java | 24 +- .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 225 +- .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 161 +- .../org/apache/iotdb/db/conf/IoTDBStartCheck.java | 4 + .../db/consensus/DataRegionConsensusImpl.java | 8 +- .../dataregion/DataExecutionVisitor.java | 6 + .../dataregion/DataRegionStateMachine.java | 15 +- .../schemaregion/SchemaExecutionVisitor.java | 159 +- .../ChunkTypeInconsistentException.java} | 30 +- .../DataTypeInconsistentException.java} | 16 +- ...ception.java => AINodeConnectionException.java} | 14 +- .../db/exception/ainode/GetModelInfoException.java | 2 +- .../pipe/agent/plugin/PipeDataNodePluginAgent.java | 40 +- .../dataregion/PipeDataRegionPluginAgent.java | 32 +- .../schemaregion/PipeSchemaRegionPluginAgent.java | 4 +- .../db/pipe/agent/runtime/PipeAgentLauncher.java | 3 +- .../db/pipe/agent/task/PipeDataNodeTaskAgent.java | 59 +- .../task/builder/PipeDataNodeTaskBuilder.java | 99 +- .../agent/task/connection/PipeEventCollector.java | 24 +- .../pipe/agent/task/stage/PipeTaskSinkStage.java | 12 +- .../subtask/processor/PipeProcessorSubtask.java | 58 +- .../agent/task/subtask/sink/PipeSinkSubtask.java | 44 +- .../subtask/sink/PipeSinkSubtaskLifeCycle.java | 6 +- .../task/subtask/sink/PipeSinkSubtaskManager.java | 4 +- .../consensus/ConsensusPipeDataNodeDispatcher.java | 131 - .../pipe/consensus/deletion/DeletionResource.java | 9 +- .../deletion/DeletionResourceManager.java | 20 +- .../deletion/persist/PageCacheDeletionBuffer.java | 4 +- .../consensus/deletion/recover/DeletionReader.java | 4 +- .../db/pipe/event/common/PipeInsertionEvent.java | 5 + .../common/deletion/PipeDeleteDataNodeEvent.java | 1 + .../event/common/heartbeat/PipeHeartbeatEvent.java | 84 +- .../db/pipe/event/common/row/PipeRowCollector.java | 35 +- .../tablet/PipeInsertNodeTabletInsertionEvent.java | 159 +- .../common/tablet/PipeRawTabletEventConverter.java | 72 + .../common/tablet/PipeRawTabletInsertionEvent.java | 34 +- .../event/common/tablet/PipeTabletCollector.java | 61 + .../tablet/parser/TabletInsertionEventParser.java | 7 +- .../TabletInsertionEventTablePatternParser.java | 18 +- .../TabletInsertionEventTreePatternParser.java | 49 +- .../tsfile/PipeCompactedTsFileInsertionEvent.java | 4 +- .../common/tsfile/PipeTsFileInsertionEvent.java | 135 +- .../tsfile/parser/TsFileInsertionEventParser.java | 90 +- .../parser/TsFileInsertionEventParserProvider.java | 48 +- .../query/TsFileInsertionEventQueryParser.java | 141 +- ...ileInsertionEventQueryParserTabletIterator.java | 33 +- .../scan/TsFileInsertionEventScanParser.java | 435 +- .../table/TsFileInsertionEventTableParser.java | 75 +- ...ileInsertionEventTableParserTabletIterator.java | 53 +- .../tsfile/parser/util/ModsOperationUtil.java | 314 + .../db/pipe/event/realtime/PipeRealtimeEvent.java | 2 +- .../event/realtime/PipeRealtimeEventFactory.java | 2 +- .../PipeDataNodeRemainingEventAndTimeOperator.java | 10 +- .../overview/PipeDataNodeSinglePipeMetrics.java | 16 +- .../overview/PipeTsFileToTabletsMetrics.java | 67 + .../schema/PipeSchemaRegionSourceMetrics.java | 38 +- .../db/pipe/metric/source/PipeAssignerMetrics.java | 32 +- .../processor/aggregate/AggregateProcessor.java | 3 + .../exchange/sender/TwoStageAggregateSender.java | 5 +- .../protocol/airgap/IoTDBAirGapReceiver.java | 62 +- .../protocol/airgap/IoTDBAirGapReceiverAgent.java | 5 +- .../legacy/IoTDBLegacyPipeReceiverAgent.java | 6 +- .../protocol/legacy/loader/DeletionLoader.java | 3 +- .../protocol/legacy/loader/TsFileLoader.java | 3 +- .../protocol/thrift/IoTDBDataNodeReceiver.java | 55 +- .../transform/converter/ValueConverter.java | 6 +- .../visitor/PipePlanToStatementVisitor.java | 1 + .../visitor/PipeStatementExceptionVisitor.java | 8 +- .../visitor/PipeStatementTSStatusVisitor.java | 220 +- .../PipeStatementTreePatternParseVisitor.java | 22 +- ...leStatementDataTypeConvertExecutionVisitor.java | 21 +- ...eeStatementDataTypeConvertExecutionVisitor.java | 16 +- .../resource/memory/InsertNodeMemoryEstimator.java | 56 +- .../pipe/resource/memory/PipeMemoryWeightUtil.java | 62 +- .../client/IoTDBDataNodeAsyncClientManager.java | 13 +- .../client/IoTDBDataNodeSyncClientManager.java | 6 +- .../evolvable/batch/PipeTabletEventBatch.java | 6 + .../batch/PipeTabletEventTsFileBatch.java | 6 +- .../request/PipeTransferTabletBatchReqV2.java | 7 +- .../request/PipeTransferTabletRawReq.java | 110 +- .../request/PipeTransferTabletRawReqV2.java | 50 +- .../protocol/airgap/IoTDBDataNodeAirGapSink.java | 2 + .../protocol/airgap/IoTDBDataRegionAirGapSink.java | 5 + .../airgap/IoTDBSchemaRegionAirGapSink.java | 6 +- .../sink/protocol/legacy/IoTDBLegacyPipeSink.java | 20 +- .../sink/protocol/opcda/OpcDaServerHandle.java | 6 +- .../db/pipe/sink/protocol/opcua/OpcUaSink.java | 347 +- .../sink/protocol/opcua/client/ClientRunner.java | 159 + .../opcua/client/IoTDBKeyStoreLoaderClient.java | 127 + .../protocol/opcua/client/IoTDBOpcUaClient.java | 335 + .../opcua/{ => server}/OpcUaKeyStoreLoader.java | 2 +- .../opcua/{ => server}/OpcUaNameSpace.java | 171 +- .../opcua/{ => server}/OpcUaServerBuilder.java | 97 +- .../pipeconsensus/PipeConsensusSyncSink.java | 2 +- .../handler/PipeConsensusDeleteEventHandler.java | 2 +- .../PipeConsensusTsFileInsertionEventHandler.java | 2 +- .../thrift/async/IoTDBDataRegionAsyncSink.java | 61 +- .../PipeTransferTabletBatchEventHandler.java | 2 +- .../PipeTransferTabletInsertionEventHandler.java | 2 +- .../handler/PipeTransferTrackableHandler.java | 16 +- .../async/handler/PipeTransferTsFileHandler.java | 23 +- .../thrift/sync/IoTDBDataNodeSyncSink.java | 6 +- .../thrift/sync/IoTDBDataRegionSyncSink.java | 3 +- .../thrift/sync/IoTDBSchemaRegionSink.java | 10 +- .../sink/protocol/writeback/WriteBackSink.java | 112 +- .../pipe/sink/util/TabletStatementConverter.java | 476 + .../sink/util/sorter/InsertEventDataAdapter.java | 127 + .../util/sorter/InsertTabletStatementAdapter.java | 118 + ...EventSorter.java => PipeInsertEventSorter.java} | 100 +- .../sorter/PipeTableModelTabletEventSorter.java | 67 +- .../sorter/PipeTreeModelTabletEventSorter.java | 48 +- .../db/pipe/sink/util/sorter/TabletAdapter.java | 113 + .../source/dataregion/IoTDBDataRegionSource.java | 203 +- ...istoricalDataRegionTsFileAndDeletionSource.java | 86 +- .../PipeRealtimeDataRegionHybridSource.java | 16 +- .../realtime/PipeRealtimeDataRegionSource.java | 18 +- .../realtime/assigner/DisruptorQueue.java | 20 +- .../assigner/DisruptorQueueExceptionHandler.java | 3 +- .../realtime/assigner/PipeDataRegionAssigner.java | 75 +- .../PipeTsFileEpochProgressIndexKeeper.java | 8 +- .../realtime/disruptor/BatchEventProcessor.java | 120 + .../dataregion/realtime/disruptor/Disruptor.java | 135 + .../realtime/disruptor/EventFactory.java} | 31 +- .../realtime/disruptor/EventHandler.java} | 34 +- .../realtime/disruptor/ExceptionHandler.java} | 41 +- .../realtime/disruptor/MultiProducerSequencer.java | 270 + .../dataregion/realtime/disruptor/RingBuffer.java | 295 + .../dataregion/realtime/disruptor/Sequence.java | 122 + .../realtime/disruptor/SequenceBarrier.java | 78 + .../realtime/disruptor/SequenceGroups.java | 65 + .../listener/PipeInsertionDataNodeListener.java | 12 +- .../listener/PipeTimePartitionListener.java | 21 +- .../matcher/CachedSchemaPatternMatcher.java | 8 +- .../schemaregion/IoTDBSchemaRegionSource.java | 112 +- .../PipePlanTreePatternParseVisitor.java | 41 +- .../PipePlanTreePrivilegeParseVisitor.java | 355 + ...r.java => PipeTableStatementToPlanVisitor.java} | 2 +- .../PipeTreeStatementToPlanVisitor.java | 60 + .../schemaregion/SchemaRegionListeningFilter.java | 7 +- .../iotdb/db/protocol/client/ConfigNodeClient.java | 88 +- .../protocol/client/DataNodeClientPoolFactory.java | 42 +- .../iotdb/db/protocol/client/an/AINodeClient.java | 321 + .../protocol/client/an}/AINodeClientManager.java | 25 +- .../iotdb/db/protocol/session/ClientSession.java | 23 + .../iotdb/db/protocol/session/IClientSession.java | 51 + .../db/protocol/session/InternalClientSession.java | 26 +- .../db/protocol/session/MqttClientSession.java | 29 +- .../db/protocol/session/PreparedStatementInfo.java | 99 + .../db/protocol/session/RestClientSession.java | 25 + .../iotdb/db/protocol/session/SessionManager.java | 92 +- .../iotdb/db/protocol/thrift/OperationType.java | 5 +- .../thrift/handler/BaseServerContextHandler.java | 1 + .../protocol/thrift/impl/ClientRPCServiceImpl.java | 641 +- .../impl/DataNodeInternalRPCServiceImpl.java | 160 +- .../thrift/impl/NativeStatementRequest.java | 99 + .../db/queryengine/common/ConnectionInfo.java | 64 + .../db/queryengine/common/MPPQueryContext.java | 138 +- .../iotdb/db/queryengine/common/QueryId.java | 7 + .../common/header/DatasetHeaderFactory.java | 10 +- .../common/schematree/ClusterSchemaTree.java | 2 +- .../queryengine/common/schematree/ISchemaTree.java | 2 +- .../schematree/visitor/SchemaTreeVisitor.java | 2 +- .../SchemaTreeVisitorWithLimitOffsetWrapper.java | 2 +- .../queryengine/execution/QueryStateMachine.java | 2 +- .../execution/aggregation/AccumulatorFactory.java | 1 + .../execution/aggregation/AvgAccumulator.java | 1 + .../execution/aggregation/ExtremeAccumulator.java | 22 +- .../aggregation/FirstValueAccumulator.java | 37 +- .../aggregation/LastValueAccumulator.java | 37 +- .../aggregation/MaxMinByBaseAccumulator.java | 6 + .../execution/aggregation/MaxValueAccumulator.java | 14 +- .../execution/aggregation/MinValueAccumulator.java | 14 +- .../execution/aggregation/SumAccumulator.java | 1 + .../execution/aggregation/VarianceAccumulator.java | 1 + .../execution/exchange/SharedTsBlockQueue.java | 38 +- .../exchange/source/LocalSourceHandle.java | 5 + .../execution/executor/RegionReadExecutor.java | 14 +- .../execution/executor/RegionWriteExecutor.java | 31 +- .../fragment/FakedFragmentInstanceContext.java | 2 +- .../fragment/FragmentInstanceContext.java | 91 +- .../fragment/FragmentInstanceExecution.java | 35 +- .../fragment/FragmentInstanceManager.java | 8 +- .../execution/fragment/QueryContext.java | 10 +- .../execution/fragment/QueryStatistics.java | 10 +- .../execution/memory/LocalMemoryManager.java | 1 - .../execution/operator/AggregationUtil.java | 3 +- .../execution/operator/ExplainAnalyzeOperator.java | 76 +- .../execution/operator/GroupedTopNBuilder.java} | 18 +- .../operator/GroupedTopNRowNumberAccumulator.java | 483 + .../operator/GroupedTopNRowNumberBuilder.java | 192 + .../queryengine/execution/operator/IdRegistry.java | 76 + .../operator/RowIdComparisonStrategy.java} | 10 +- .../execution/operator/RowIdHashStrategy.java} | 12 +- .../execution/operator/RowReference.java | 45 + .../operator/RowReferenceTsBlockManager.java | 386 + .../SimpleTsBlockWithPositionComparator.java | 52 + .../operator/TsBlockWithPositionComparator.java} | 11 +- .../operator/process/AbstractIntoOperator.java | 6 +- .../operator/process/AbstractSortOperator.java | 4 +- .../operator/process/AbstractTreeIntoOperator.java | 8 +- .../operator/process/DeviceViewIntoOperator.java | 110 +- .../process/InsertTabletStatementGenerator.java | 4 + .../operator/process/MappingCollectOperator.java | 5 +- .../TableInsertTabletStatementGenerator.java | 10 +- .../operator/process/TableIntoOperator.java | 12 +- .../execution/operator/process/TopKOperator.java | 14 +- .../operator/process/TransformOperator.java | 1 + .../operator/process/TreeIntoOperator.java | 37 +- .../execution/operator/process/ValuesOperator.java | 120 + .../operator/process/ai/InferenceOperator.java | 96 +- .../operator/process/function/partition/Slice.java | 58 +- .../process/join/merge/MergeSortComparator.java | 1 + .../AlignedUpdateViewPathLastCacheOperator.java | 25 +- .../operator/process/last/LastQueryOperator.java | 6 +- .../process/last/UpdateLastCacheOperator.java | 2 +- .../last/UpdateViewPathLastCacheOperator.java | 2 +- .../process/rowpattern/expression/Computation.java | 4 + .../expression/PatternExpressionComputation.java | 5 +- .../operator/process/window/RowNumberOperator.java | 214 + .../process/window/TableWindowOperator.java | 2 + .../process/window/TopKRankingOperator.java | 278 + .../process/window/function/value/LagFunction.java | 1 + .../window/function/value/LeadFunction.java | 1 + .../process/window/utils/RowComparator.java | 3 + .../operator/schema/SchemaFetchScanOperator.java | 2 +- .../operator/schema/source/DeviceSchemaSource.java | 2 +- .../schema/source/LogicalViewSchemaSource.java | 3 +- .../schema/source/SchemaSourceFactory.java | 18 +- .../schema/source/TimeSeriesSchemaSource.java | 11 +- .../execution/operator/source/FileLoaderUtils.java | 34 +- .../execution/operator/source/SeriesScanUtil.java | 637 +- .../AbstractDefaultAggTableScanOperator.java | 2 +- .../relational/AbstractTableScanOperator.java | 10 +- .../source/relational/CteScanOperator.java | 119 + .../InformationSchemaContentSupplierFactory.java | 365 +- .../relational/LastQueryAggTableScanOperator.java | 65 +- .../relational/aggregation/AccumulatorFactory.java | 164 +- .../ApproxCountDistinctAccumulator.java | 1 + .../relational/aggregation/AvgAccumulator.java | 2 + .../relational/aggregation/ExtremeAccumulator.java | 21 +- .../relational/aggregation/FirstAccumulator.java | 479 +- .../relational/aggregation/FirstByAccumulator.java | 516 +- .../aggregation/FirstByDescAccumulator.java | 180 +- .../aggregation/FirstDescAccumulator.java | 168 +- .../relational/aggregation/LastAccumulator.java | 407 +- .../relational/aggregation/LastByAccumulator.java | 454 +- .../aggregation/LastByDescAccumulator.java | 234 +- .../aggregation/LastDescAccumulator.java | 198 +- .../aggregation/MaskedRecordIterator.java | 2 - .../relational/aggregation/MaxAccumulator.java | 22 +- .../relational/aggregation/MinAccumulator.java | 22 +- .../relational/aggregation}/RecordIterator.java | 66 +- .../relational/aggregation/SumAccumulator.java | 2 + .../aggregation/TableMaxMinByBaseAccumulator.java | 5 + .../aggregation/TableVarianceAccumulator.java | 2 + .../UserDefinedAggregateFunctionAccumulator.java | 1 - .../source/relational/aggregation/Utils.java | 41 +- .../GroupedApproxCountDistinctAccumulator.java | 1 + .../aggregation/grouped/GroupedAvgAccumulator.java | 1 + .../grouped/GroupedExtremeAccumulator.java | 8 + .../grouped/GroupedFirstAccumulator.java | 396 +- .../grouped/GroupedFirstByAccumulator.java | 482 +- .../grouped/GroupedLastAccumulator.java | 396 +- .../grouped/GroupedLastByAccumulator.java | 485 +- .../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 + .../grouped/array/IntArrayFIFOQueue.java | 201 + .../grouped/array/LongBigArrayFIFOQueue.java | 197 + .../grouped/hash/NoChannelGroupByHash.java | 72 + .../operator/window/WindowManagerFactory.java | 2 + .../relational/ColumnTransformerBuilder.java | 381 +- .../execution/schedule/AbstractDriverThread.java | 4 +- .../execution/schedule/DriverScheduler.java | 2 +- .../execution/schedule/task/DriverTask.java | 12 +- .../iotdb/db/queryengine/plan/Coordinator.java | 617 +- .../db/queryengine/plan/analyze/Analysis.java | 2 +- .../queryengine/plan/analyze/AnalyzeVisitor.java | 169 +- .../plan/analyze/ClusterPartitionFetcher.java | 4 + .../plan/analyze/ExpressionAnalyzer.java | 4 +- .../db/queryengine/plan/analyze/IModelFetcher.java | 4 - .../db/queryengine/plan/analyze/ModelFetcher.java | 51 +- .../queryengine/plan/analyze/PredicateUtils.java | 16 +- .../queryengine/plan/analyze/SelectIntoUtils.java | 42 +- .../plan/analyze/TemplatedAggregationAnalyze.java | 2 +- .../queryengine/plan/analyze/TemplatedAnalyze.java | 2 +- .../analyze/cache/partition/PartitionCache.java | 7 +- .../dualkeycache/impl/CacheEntryGroupImpl.java | 6 + .../schema/dualkeycache/impl/DualKeyCacheImpl.java | 67 +- .../schema/dualkeycache/impl/ICacheEntryGroup.java | 3 + .../plan/analyze/load/LoadTsFileAnalyzer.java | 21 +- .../analyze/load/LoadTsFileTableSchemaCache.java | 12 +- .../load/TreeSchemaAutoCreatorAndVerifier.java | 37 +- .../analyze/schema/AutoCreateSchemaExecutor.java | 54 +- .../analyze/schema/ClusterSchemaFetchExecutor.java | 7 +- .../plan/analyze/schema/ClusterSchemaFetcher.java | 2 +- .../plan/analyze/schema/ISchemaFetcher.java | 2 +- .../plan/analyze/schema/TemplateSchemaFetcher.java | 2 +- .../plan/execution/IQueryExecution.java | 4 + .../queryengine/plan/execution/QueryExecution.java | 12 +- .../plan/execution/config/ConfigExecution.java | 26 +- .../execution/config/TableConfigTaskVisitor.java | 231 +- .../execution/config/TreeConfigTaskVisitor.java | 114 +- .../config/executor/ClusterConfigTaskExecutor.java | 750 +- .../config/executor/IConfigTaskExecutor.java | 36 +- .../metadata/AlterEncodingCompressorTask.java | 47 + .../config/metadata/AlterTimeSeriesTask.java | 57 + ...dModelsTask.java => ShowAvailableUrlsTask.java} | 40 +- .../config/metadata/ShowFunctionsTask.java | 6 +- ...eateTrainingTask.java => CreateTuningTask.java} | 8 +- .../config/metadata/ai/ShowAIDevicesTask.java | 17 +- .../config/metadata/ai/ShowLoadedModelsTask.java | 4 +- .../config/metadata/ai/ShowModelsTask.java | 4 +- .../CreateExternalServiceTask.java} | 53 +- .../DropExternalServiceTask.java} | 50 +- .../ShowExternalServiceTask.java} | 65 +- .../externalservice/StartExternalServiceTask.java} | 42 +- .../externalservice/StopExternalServiceTask.java} | 42 +- .../relational/AlterColumnDataTypeTask.java | 54 + .../relational/DescribeTableDetailsTask.java | 14 +- .../metadata/relational/ShowCreateViewTask.java | 2 +- .../template/ShowNodesInSchemaTemplateTask.java | 2 +- .../metadata/template/ShowSchemaTemplateTask.java | 2 +- .../execution/config/session/DeallocateTask.java | 63 + .../plan/execution/config/session/PrepareTask.java | 67 + .../config/session/PreparedStatementHelper.java | 60 + .../session/PreparedStatementMemoryManager.java | 157 + .../execution/config/sys/pipe/AlterPipeTask.java | 18 +- .../execution/config/sys/pipe/CreatePipeTask.java | 24 +- .../config/sys/pipe/PipeFunctionSupport.java | 2 +- .../execution/config/sys/pipe/ShowPipeTask.java | 5 +- .../TableModelStatementMemorySourceVisitor.java | 34 +- .../plan/expression/ExpressionFactory.java | 2 +- .../plan/expression/multi/FunctionExpression.java | 4 +- .../predicate/ConvertPredicateToFilterVisitor.java | 134 +- .../plan/optimization/AggregationPushDown.java | 2 +- .../db/queryengine/plan/parser/ASTVisitor.java | 316 +- .../plan/planner/LocalExecutionPlanner.java | 8 + .../plan/planner/LogicalPlanBuilder.java | 66 +- .../plan/planner/LogicalPlanVisitor.java | 90 +- .../plan/planner/OperatorTreeGenerator.java | 34 +- .../plan/planner/TableOperatorGenerator.java | 293 +- .../planner/distribution/ExchangeNodeAdder.java | 6 +- .../SimpleFragmentParallelPlanner.java | 5 +- .../plan/planner/distribution/SourceRewriter.java | 15 +- .../distribution/WriteFragmentParallelPlanner.java | 3 +- .../memory/FakedMemoryReservationManager.java | 11 + .../planner/memory/MemoryReservationManager.java | 29 + .../NotThreadSafeMemoryReservationManager.java | 23 + .../memory/ThreadSafeMemoryReservationManager.java | 13 + .../plan/planner/plan/DistributedQueryPlan.java | 11 + .../plan/planner/plan/FragmentInstance.java | 32 +- .../plan/planner/plan/node/PlanGraphPrinter.java | 89 +- .../plan/planner/plan/node/PlanNodeType.java | 32 + .../plan/planner/plan/node/PlanVisitor.java | 45 + .../plan/node/load/LoadSingleTsFileNode.java | 24 +- .../planner/plan/node/load/LoadTsFileNode.java | 14 +- .../node/metadata/read/DevicesSchemaScanNode.java | 24 +- .../metadata/read/LevelTimeSeriesCountNode.java | 2 +- .../metadata/read/SeriesSchemaFetchScanNode.java | 6 +- .../node/metadata/read/TimeSeriesCountNode.java | 2 +- .../metadata/read/TimeSeriesSchemaScanNode.java | 51 +- .../write/AlterEncodingCompressorNode.java | 146 + .../node/metadata/write/AlterTimeSeriesNode.java | 87 +- .../plan/node/pipe/PipeEnrichedInsertNode.java | 7 + .../plan/node/process/AI/InferenceNode.java | 3 +- .../node/process/ActiveRegionScanMergeNode.java | 3 + .../plan/node/process/last/LastQueryNode.java | 6 +- .../plan/node/source/LastQueryScanNode.java | 108 +- .../planner/plan/node/source/ShowQueriesNode.java | 2 +- .../plan/node/write/InsertMultiTabletsNode.java | 9 + .../plan/planner/plan/node/write/InsertNode.java | 5 + .../planner/plan/node/write/InsertRowNode.java | 26 +- .../planner/plan/node/write/InsertRowsNode.java | 9 + .../plan/node/write/InsertRowsOfOneDeviceNode.java | 9 + .../planner/plan/node/write/InsertTabletNode.java | 40 +- .../plan/planner/plan/node/write/ObjectNode.java | 331 + .../plan/node/write/RelationalInsertRowNode.java | 11 + .../plan/node/write/RelationalInsertRowsNode.java | 14 +- .../node/write/RelationalInsertTabletNode.java | 96 + .../parameter/DeviceViewIntoPathDescriptor.java | 5 +- .../planner/plan/parameter/IntoPathDescriptor.java | 5 +- .../parameter/model/ModelInferenceDescriptor.java | 61 +- .../plan/relational/analyzer/Analysis.java | 31 + .../plan/relational/analyzer/Analyzer.java | 6 + .../relational/analyzer/ExpressionAnalyzer.java | 113 +- .../plan/relational/analyzer/Scope.java | 35 +- .../relational/analyzer/StatementAnalyzer.java | 265 +- .../analyzer/StatementAnalyzerFactory.java | 21 +- .../predicate/ConvertPredicateToFilterVisitor.java | 127 +- .../PredicatePushIntoMetadataChecker.java | 6 + .../function/TableBuiltinTableFunction.java | 6 +- .../function/tvf/ClassifyTableFunction.java | 387 + .../function/tvf/ForecastTableFunction.java | 368 +- .../plan/relational/metadata/Metadata.java | 38 +- .../relational/metadata/TableMetadataImpl.java | 552 +- .../metadata/cache/DeviceSchemaRequestCache.java | 8 +- .../metadata/fetcher/TableDeviceSchemaFetcher.java | 30 +- .../fetcher/TableDeviceSchemaValidator.java | 17 +- .../fetcher/TableHeaderSchemaValidator.java | 471 +- .../fetcher/cache/TableDeviceCacheEntry.java | 8 +- .../fetcher/cache/TableDeviceLastCache.java | 56 +- .../fetcher/cache/TableDeviceSchemaCache.java | 8 +- .../cache/TableDeviceSchemaCacheMetrics.java | 9 +- .../fetcher/cache/TreeDeviceNormalSchema.java | 6 +- .../cache/TreeDeviceSchemaCacheManager.java | 2 +- .../planner/CastToBlobLiteralVisitor.java | 6 + .../planner/CastToBooleanLiteralVisitor.java | 6 + .../planner/CastToDateLiteralVisitor.java | 6 + .../planner/CastToDoubleLiteralVisitor.java | 6 + .../planner/CastToFloatLiteralVisitor.java | 6 + .../planner/CastToInt32LiteralVisitor.java | 6 + .../planner/CastToInt64LiteralVisitor.java | 6 + .../planner/CastToStringLiteralVisitor.java | 6 + .../planner/CastToTimestampLiteralVisitor.java | 6 + .../plan/relational/planner/CteMaterializer.java | 356 + .../plan/relational/planner/IrTypeAnalyzer.java | 7 + .../plan/relational/planner/LiteralEncoder.java | 7 +- .../relational/planner/LiteralInterpreter.java | 7 + .../plan/relational/planner/QueryPlanner.java | 50 +- .../plan/relational/planner/RelationPlanner.java | 189 +- .../plan/relational/planner/SubqueryPlanner.java | 29 +- .../relational/planner/TableLogicalPlanner.java | 28 +- .../plan/relational/planner/TableModelPlanner.java | 25 +- .../planner/distribute/AddExchangeNodes.java | 50 +- .../distribute/TableDistributedPlanGenerator.java | 142 +- .../distribute/TableDistributedPlanner.java | 17 +- .../distribute/TableModelQueryFragmentPlanner.java | 1 + ...ithUncorrelatedScalarSubqueryReconstructor.java | 247 + .../iterative/rule/EvaluateEmptyIntersect.java | 63 + .../iterative/rule/GatherAndMergeWindows.java | 333 + .../planner/iterative/rule/ImplementExceptAll.java | 112 + .../rule/ImplementExceptDistinctAsUnion.java | 94 + .../iterative/rule/ImplementIntersectAll.java | 95 + .../rule/ImplementIntersectDistinctAsUnion.java | 89 + .../planner/iterative/rule/MergeExcept.java | 47 + .../planner/iterative/rule/MergeIntersect.java | 47 + .../planner/iterative/rule/MergeUnion.java | 48 + .../iterative/rule/PruneDistinctAggregation.java | 30 +- .../iterative/rule/PruneExceptSourceColumns.java | 54 + .../rule/PruneIntersectSourceColumns.java | 55 + .../iterative/rule/PushDownFilterIntoWindow.java | 166 + .../iterative/rule/PushDownLimitIntoWindow.java | 100 + .../rule/PushDownOffsetIntoTableScan.java | 4 +- .../iterative/rule/PushLimitThroughUnion.java | 107 + .../iterative/rule/PushProjectionThroughUnion.java | 111 + .../iterative/rule/PushTopKThroughUnion.java | 102 + .../iterative/rule/RemoveEmptyExceptBranches.java | 139 + .../iterative/rule/RemoveEmptyUnionBranches.java | 113 + .../iterative/rule/RemoveRedundantWindow.java | 49 + .../iterative/rule/ReplaceWindowWithRowNumber.java | 72 + .../planner/iterative/rule/SetOperationMerge.java | 243 + .../iterative/rule/SetOperationNodeTranslator.java | 355 + .../relational/planner/iterative/rule/Util.java | 45 +- .../planner/node/AggregationTableScanNode.java | 10 + .../plan/relational/planner/node/CteScanNode.java | 132 + .../plan/relational/planner/node/ExceptNode.java | 99 + .../relational/planner/node/IntersectNode.java | 98 + .../plan/relational/planner/node/Patterns.java | 60 +- .../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 + .../DataNodeLocationSupplierFactory.java | 5 +- .../optimizations/LogicalOptimizeFactory.java | 97 +- .../PushLimitOffsetIntoTableScan.java | 9 +- .../optimizations/PushPredicateIntoTableScan.java | 100 + .../planner/optimizations/SymbolMapper.java | 33 +- .../optimizations/TransformSortToStreamSort.java | 7 + .../optimizations/UnaliasSymbolReferences.java | 93 + .../plan/relational/security/AccessControl.java | 10 + .../relational/security/AccessControlImpl.java | 143 +- .../relational/security/AllowAllAccessControl.java | 17 + .../relational/security/ITableAuthCheckerImpl.java | 68 +- .../security/TreeAccessCheckVisitor.java | 436 +- .../plan/relational/sql/ParameterExtractor.java | 121 + .../sql/ast/AbstractQueryDeviceWithCache.java | 36 +- .../relational/sql/ast/AbstractTraverseDevice.java | 48 + .../plan/relational/sql/ast/AddColumn.java | 13 + .../plan/relational/sql/ast/AliasedRelation.java | 14 + .../plan/relational/sql/ast/AllColumns.java | 13 + .../plan/relational/sql/ast/AllRows.java | 9 + .../relational/sql/ast/AlterColumnDataType.java | 133 + .../plan/relational/sql/ast/AlterDB.java | 9 + .../plan/relational/sql/ast/AlterPipe.java | 15 + .../plan/relational/sql/ast/AnchorPattern.java | 11 + .../sql/ast/ArithmeticBinaryExpression.java | 12 + .../sql/ast/ArithmeticUnaryExpression.java | 11 + .../plan/relational/sql/ast/AsofJoinOn.java | 11 + .../sql/ast/AstMemoryEstimationHelper.java | 123 + .../plan/relational/sql/ast/AstVisitor.java | 48 + .../plan/relational/sql/ast/BetweenPredicate.java | 13 + .../plan/relational/sql/ast/BinaryLiteral.java | 11 + .../plan/relational/sql/ast/BooleanLiteral.java | 10 + .../queryengine/plan/relational/sql/ast/Cast.java | 12 + .../plan/relational/sql/ast/ClearCache.java | 11 + .../relational/sql/ast/CoalesceExpression.java | 11 + .../plan/relational/sql/ast/ColumnDefinition.java | 15 + .../plan/relational/sql/ast/Columns.java | 11 + .../relational/sql/ast/ComparisonExpression.java | 34 +- .../plan/relational/sql/ast/CountDevice.java | 8 + .../plan/relational/sql/ast/CountStatement.java | 13 + .../plan/relational/sql/ast/CreateDB.java | 9 + ...ateFunction.java => CreateExternalService.java} | 55 +- .../plan/relational/sql/ast/CreateFunction.java | 13 + .../plan/relational/sql/ast/CreateIndex.java | 13 + .../plan/relational/sql/ast/CreateModel.java | 13 + .../relational/sql/ast/CreateOrUpdateDevice.java | 16 + .../plan/relational/sql/ast/CreatePipe.java | 52 +- .../plan/relational/sql/ast/CreatePipePlugin.java | 14 + .../plan/relational/sql/ast/CreateTable.java | 26 + .../plan/relational/sql/ast/CreateTopic.java | 13 + .../plan/relational/sql/ast/CreateTraining.java | 15 + .../plan/relational/sql/ast/CreateView.java | 14 + .../plan/relational/sql/ast/CurrentDatabase.java | 11 + .../plan/relational/sql/ast/CurrentTime.java | 14 + .../plan/relational/sql/ast/CurrentUser.java | 11 + .../plan/relational/sql/ast/DatabaseStatement.java | 9 + .../ast/{TableSubquery.java => Deallocate.java} | 52 +- .../plan/relational/sql/ast/DecimalLiteral.java | 11 + .../plan/relational/sql/ast/Delete.java | 12 + .../plan/relational/sql/ast/DeleteDevice.java | 19 +- .../relational/sql/ast/DereferenceExpression.java | 13 + .../plan/relational/sql/ast/DescribeTable.java | 11 + .../plan/relational/sql/ast/DoubleLiteral.java | 10 + .../plan/relational/sql/ast/DropColumn.java | 12 + .../plan/relational/sql/ast/DropDB.java | 11 + .../ast/{Table.java => DropExternalService.java} | 54 +- .../plan/relational/sql/ast/DropFunction.java | 11 + .../plan/relational/sql/ast/DropIndex.java | 12 + .../plan/relational/sql/ast/DropModel.java | 12 + .../plan/relational/sql/ast/DropPipe.java | 11 + .../plan/relational/sql/ast/DropPipePlugin.java | 12 + .../plan/relational/sql/ast/DropSubscription.java | 12 + .../plan/relational/sql/ast/DropTable.java | 12 + .../plan/relational/sql/ast/DropTopic.java | 12 + .../plan/relational/sql/ast/EmptyPattern.java | 11 + .../plan/relational/sql/ast/Except.java | 12 + .../plan/relational/sql/ast/ExcludedPattern.java | 12 + .../plan/relational/sql/ast/Execute.java | 108 + .../plan/relational/sql/ast/ExecuteImmediate.java | 112 + .../plan/relational/sql/ast/ExistsPredicate.java | 12 + .../plan/relational/sql/ast/Explain.java | 11 + .../plan/relational/sql/ast/ExplainAnalyze.java | 12 + .../plan/relational/sql/ast/Expression.java | 3 + .../plan/relational/sql/ast/ExtendRegion.java | 11 + .../plan/relational/sql/ast/Extract.java | 11 + .../plan/relational/sql/ast/FetchDevice.java | 19 + .../plan/relational/sql/ast/FieldReference.java | 11 + .../queryengine/plan/relational/sql/ast/Fill.java | 16 + .../ast/{DoubleLiteral.java => FloatLiteral.java} | 62 +- .../plan/relational/sql/ast/FrameBound.java | 13 + .../plan/relational/sql/ast/FunctionCall.java | 23 + .../plan/relational/sql/ast/GenericDataType.java | 12 + .../plan/relational/sql/ast/GenericLiteral.java | 12 + .../plan/relational/sql/ast/GroupBy.java | 11 + .../plan/relational/sql/ast/GroupingSets.java | 14 + .../plan/relational/sql/ast/Identifier.java | 11 + .../plan/relational/sql/ast/IfExpression.java | 14 + .../plan/relational/sql/ast/InListExpression.java | 12 + .../plan/relational/sql/ast/InPredicate.java | 12 + .../plan/relational/sql/ast/Insert.java | 13 + .../plan/relational/sql/ast/InsertRow.java | 11 +- .../plan/relational/sql/ast/InsertRows.java | 33 +- .../plan/relational/sql/ast/InsertTablet.java | 9 + .../plan/relational/sql/ast/Intersect.java | 12 + .../relational/sql/ast/IsNotNullPredicate.java | 11 + .../plan/relational/sql/ast/IsNullPredicate.java | 11 + .../queryengine/plan/relational/sql/ast/Join.java | 13 + .../plan/relational/sql/ast/JoinCriteria.java | 4 +- .../plan/relational/sql/ast/JoinOn.java | 13 + .../plan/relational/sql/ast/JoinUsing.java | 11 + .../plan/relational/sql/ast/KillQuery.java | 12 + .../plan/relational/sql/ast/LikePredicate.java | 13 + .../queryengine/plan/relational/sql/ast/Limit.java | 11 + .../plan/relational/sql/ast/LoadModel.java | 14 + .../plan/relational/sql/ast/LoadTsFile.java | 106 +- .../plan/relational/sql/ast/LogicalExpression.java | 11 + .../plan/relational/sql/ast/LongLiteral.java | 13 +- .../plan/relational/sql/ast/MeasureDefinition.java | 13 + .../plan/relational/sql/ast/MigrateRegion.java | 10 + .../plan/relational/sql/ast/NaturalJoin.java | 9 + .../queryengine/plan/relational/sql/ast/Node.java | 9 +- .../plan/relational/sql/ast/NotExpression.java | 11 + .../plan/relational/sql/ast/NullIfExpression.java | 13 + .../plan/relational/sql/ast/NullLiteral.java | 11 + .../plan/relational/sql/ast/NumericParameter.java | 11 + .../plan/relational/sql/ast/Offset.java | 11 + .../relational/sql/ast/OneOrMoreQuantifier.java | 12 + .../plan/relational/sql/ast/OrderBy.java | 11 + .../plan/relational/sql/ast/Parameter.java | 11 + .../relational/sql/ast/PatternAlternation.java | 12 + .../relational/sql/ast/PatternConcatenation.java | 12 + .../relational/sql/ast/PatternPermutation.java | 12 + .../sql/ast/PatternRecognitionRelation.java | 22 + .../plan/relational/sql/ast/PatternVariable.java | 12 + .../plan/relational/sql/ast/PipeEnriched.java | 13 + .../plan/relational/sql/ast/Prepare.java | 99 + .../plan/relational/sql/ast/ProcessingMode.java | 11 + .../plan/relational/sql/ast/Property.java | 12 + .../plan/relational/sql/ast/QualifiedName.java | 20 +- .../sql/ast/QuantifiedComparisonExpression.java | 13 + .../plan/relational/sql/ast/QuantifiedPattern.java | 13 + .../queryengine/plan/relational/sql/ast/Query.java | 53 + .../relational/sql/ast/QuerySpecification.java | 22 + .../plan/relational/sql/ast/RangeQuantifier.java | 14 + .../plan/relational/sql/ast/ReconstructRegion.java | 11 + .../sql/ast/RelationalAuthorStatement.java | 30 + .../plan/relational/sql/ast/RemoveAINode.java | 10 + .../plan/relational/sql/ast/RemoveConfigNode.java | 10 + .../plan/relational/sql/ast/RemoveDataNode.java | 11 + .../plan/relational/sql/ast/RemoveRegion.java | 11 + .../plan/relational/sql/ast/RenameColumn.java | 19 +- .../plan/relational/sql/ast/RenameTable.java | 18 +- .../queryengine/plan/relational/sql/ast/Row.java | 11 + .../relational/sql/ast/SearchedCaseExpression.java | 13 + .../plan/relational/sql/ast/Select.java | 10 + .../plan/relational/sql/ast/SetColumnComment.java | 13 + .../plan/relational/sql/ast/SetProperties.java | 12 + .../plan/relational/sql/ast/SetSqlDialect.java | 10 + .../plan/relational/sql/ast/SetTableComment.java | 12 + .../plan/relational/sql/ast/ShowAIDevices.java | 12 + .../plan/relational/sql/ast/ShowAINodes.java | 11 + ...ShowConfigNodes.java => ShowAvailableUrls.java} | 22 +- .../plan/relational/sql/ast/ShowCluster.java | 11 + .../plan/relational/sql/ast/ShowClusterId.java | 11 + .../plan/relational/sql/ast/ShowConfigNodes.java | 11 + .../plan/relational/sql/ast/ShowConfiguration.java | 1 - .../relational/sql/ast/ShowCurrentDatabase.java | 11 + .../relational/sql/ast/ShowCurrentSqlDialect.java | 11 + .../relational/sql/ast/ShowCurrentTimestamp.java | 11 + .../plan/relational/sql/ast/ShowCurrentUser.java | 11 + .../plan/relational/sql/ast/ShowDB.java | 10 + .../plan/relational/sql/ast/ShowDataNodes.java | 11 + .../plan/relational/sql/ast/ShowDevice.java | 12 + ...owPipePlugins.java => ShowExternalService.java} | 29 +- .../plan/relational/sql/ast/ShowFunctions.java | 11 + .../plan/relational/sql/ast/ShowIndex.java | 12 + .../plan/relational/sql/ast/ShowLoadedModels.java | 13 + .../plan/relational/sql/ast/ShowModels.java | 12 + .../plan/relational/sql/ast/ShowPipePlugins.java | 12 + .../plan/relational/sql/ast/ShowPipes.java | 13 + .../plan/relational/sql/ast/ShowRegions.java | 13 + .../plan/relational/sql/ast/ShowStatement.java | 17 + .../plan/relational/sql/ast/ShowSubscriptions.java | 13 + .../plan/relational/sql/ast/ShowTables.java | 12 + .../plan/relational/sql/ast/ShowTopics.java | 13 + .../plan/relational/sql/ast/ShowVariables.java | 11 + .../plan/relational/sql/ast/ShowVersion.java | 11 + .../relational/sql/ast/SimpleCaseExpression.java | 14 + .../plan/relational/sql/ast/SimpleGroupBy.java | 12 + .../plan/relational/sql/ast/SingleColumn.java | 15 + .../plan/relational/sql/ast/SkipTo.java | 12 + .../plan/relational/sql/ast/SortItem.java | 11 + .../ast/{Table.java => StartExternalService.java} | 48 +- .../plan/relational/sql/ast/StartPipe.java | 12 + .../plan/relational/sql/ast/Statement.java | 34 + .../ast/{Table.java => StopExternalService.java} | 48 +- .../plan/relational/sql/ast/StopPipe.java | 11 + .../plan/relational/sql/ast/StringLiteral.java | 11 + .../relational/sql/ast/SubqueryExpression.java | 12 + .../plan/relational/sql/ast/SubsetDefinition.java | 14 + .../plan/relational/sql/ast/SymbolReference.java | 11 + .../queryengine/plan/relational/sql/ast/Table.java | 11 + .../relational/sql/ast/TableExpressionType.java | 3 +- .../relational/sql/ast/TableFunctionArgument.java | 14 + .../sql/ast/TableFunctionInvocation.java | 14 + .../sql/ast/TableFunctionTableArgument.java | 15 + .../plan/relational/sql/ast/TableSubquery.java | 12 + .../plan/relational/sql/ast/TimeRange.java | 12 + .../queryengine/plan/relational/sql/ast/Trim.java | 12 + .../plan/relational/sql/ast/TypeParameter.java | 12 + .../queryengine/plan/relational/sql/ast/Union.java | 11 + .../plan/relational/sql/ast/UnloadModel.java | 14 + .../plan/relational/sql/ast/Update.java | 11 + .../plan/relational/sql/ast/UpdateAssignment.java | 13 + .../queryengine/plan/relational/sql/ast/Use.java | 11 + .../plan/relational/sql/ast/Values.java | 11 + .../relational/sql/ast/VariableDefinition.java | 13 + .../plan/relational/sql/ast/WhenClause.java | 12 + .../plan/relational/sql/ast/WindowDefinition.java | 13 + .../plan/relational/sql/ast/WindowFrame.java | 14 + .../plan/relational/sql/ast/WindowReference.java | 12 + .../relational/sql/ast/WindowSpecification.java | 18 + .../queryengine/plan/relational/sql/ast/With.java | 11 + .../plan/relational/sql/ast/WithQuery.java | 42 +- .../relational/sql/ast/WrappedInsertStatement.java | 414 +- .../plan/relational/sql/ast/WrappedStatement.java | 5 + .../relational/sql/ast/ZeroOrMoreQuantifier.java | 12 + .../relational/sql/ast/ZeroOrOneQuantifier.java | 12 + .../plan/relational/sql/parser/AstBuilder.java | 234 +- .../plan/relational/sql/parser/ErrorHandler.java | 31 +- .../plan/relational/sql/rewrite/ShowRewrite.java | 15 + .../relational/sql/util/ExpressionFormatter.java | 15 +- .../plan/relational/sql/util/SqlFormatter.java | 8 +- .../plan/relational/type/CompatibleResolver.java | 6 + .../plan/relational/type/InternalTypeManager.java | 6 + .../relational/utils/ResultColumnAppender.java | 145 + .../plan/relational/utils/TypeUtil.java | 13 +- .../scheduler/FragmentInstanceDispatcherImpl.java | 2 +- .../scheduler/load/LoadTsFileDispatcherImpl.java | 12 +- .../plan/scheduler/load/LoadTsFileScheduler.java | 12 +- .../db/queryengine/plan/statement/Statement.java | 27 + .../queryengine/plan/statement/StatementType.java | 7 + .../plan/statement/StatementVisitor.java | 55 +- .../plan/statement/component/OrderByComponent.java | 6 + .../plan/statement/crud/InsertBaseStatement.java | 157 +- .../crud/InsertMultiTabletsStatement.java | 18 + .../plan/statement/crud/InsertRowStatement.java | 73 + .../crud/InsertRowsOfOneDeviceStatement.java | 6 + .../plan/statement/crud/InsertRowsStatement.java | 11 + .../plan/statement/crud/InsertTabletStatement.java | 314 +- .../plan/statement/crud/LoadTsFileStatement.java | 79 +- .../InternalBatchActivateTemplateStatement.java | 2 +- .../internal/SeriesSchemaFetchStatement.java | 2 +- .../metadata/AlterEncodingCompressorStatement.java | 126 + ....java => AlterTimeSeriesDataTypeStatement.java} | 20 +- .../metadata/AlterTimeSeriesStatement.java | 15 +- .../statement/metadata/CountDatabaseStatement.java | 2 +- .../metadata/DeleteDatabaseStatement.java | 2 +- ...tement.java => ShowAvailableUrlsStatement.java} | 17 +- .../statement/metadata/ShowDatabaseStatement.java | 2 +- .../plan/statement/metadata/ShowStatement.java | 7 + .../metadata/ShowTimeSeriesStatement.java | 15 + .../CreateExternalServiceStatement.java} | 57 +- .../DropExternalServiceStatement.java} | 57 +- .../ShowExternalServiceStatement.java} | 36 +- .../StartExternalServiceStatement.java} | 50 +- .../StopExternalServiceStatement.java} | 50 +- .../metadata/pipe/AlterPipeStatement.java | 40 +- .../metadata/pipe/CreatePipeStatement.java | 28 +- .../template/ActivateTemplateStatement.java | 11 +- .../template/BatchActivateTemplateStatement.java | 2 +- .../template/DeactivateTemplateStatement.java | 2 +- .../plan/statement/sys/AuthorStatement.java | 6 + .../plan/udf}/BuiltinAggregationFunction.java | 2 +- .../plan/udf}/BuiltinScalarFunction.java | 2 +- .../udf}/BuiltinTimeSeriesGeneratingFunction.java | 51 +- .../queryengine/plan/udf/UDFManagementService.java | 3 - .../db/queryengine/plan/udf/UDTFForecast.java | 272 + .../FragmentInstanceStatisticsDrawer.java | 28 +- .../dag/column/binary/HmacColumnTransformer.java | 108 + .../binary/factory/HmacStrategiesFactory.java | 93 + .../column/binary/strategies/HmacStrategy.java} | 9 +- .../dag/column/ternary/LpadColumnTransformer.java | 92 + .../dag/column/ternary/RpadColumnTransformer.java | 92 + .../column/ternary/TernaryColumnTransformer.java | 2 +- .../dag/column/ternary/utils/BytePaddingUtils.java | 87 + .../udf/UserDefineScalarFunctionTransformer.java | 2 +- .../AbstractCastFunctionColumnTransformer.java | 10 + ...r.java => AbstractLengthColumnTransformer.java} | 15 +- .../unary/scalar/BlobLengthColumnTransformer.java} | 24 +- .../scalar/BytesToDoubleColumnTransformer.java | 78 + .../scalar/BytesToFloatColumnTransformer.java | 79 + .../unary/scalar/BytesToIntColumnTransformer.java | 81 + .../unary/scalar/BytesToLongColumnTransformer.java | 80 + ...olumnTransformer.java => CRC32Transformer.java} | 32 +- .../scalar/CastFunctionColumnTransformer.java | 3 + ...er.java => DoubleToBytesColumnTransformer.java} | 32 +- ...mer.java => FloatToBytesColumnTransformer.java} | 32 +- .../scalar/GenericCodecColumnTransformer.java | 92 + ....java => HmacConstantKeyColumnTransformer.java} | 23 +- ...ormer.java => IntToBytesColumnTransformer.java} | 33 +- .../unary/scalar/LengthColumnTransformer.java | 30 +- ...rmer.java => LongToBytesColumnTransformer.java} | 31 +- .../scalar/ObjectLengthColumnTransformer.java} | 23 +- .../scalar/TryCastFunctionColumnTransformer.java | 3 + .../scalar/factory/CodecStrategiesFactory.java | 133 + .../factory/NumericCodecStrategiesFactory.java | 169 + .../unary/scalar/inteface/CodecStrategy.java} | 11 +- .../dag/column/unary/scalar/util/HexUtils.java | 86 + .../unary/scalar/util/SpookyHashV2Utils.java | 603 + .../unary/scalar/util/TransformerDebugUtils.java | 62 + .../dag/input/ConstantInputReader.java | 1 + .../dag/input/QueryDataSetInputLayer.java | 10 +- .../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 | 4 +- .../datastructure/row/SerializableRowList.java | 2 + .../datastructure/tv/SerializableTVList.java | 1 + .../apache/iotdb/db/schemaengine/SchemaEngine.java | 60 +- .../rescon/MemSchemaEngineStatistics.java | 3 +- .../rescon/MemSchemaRegionStatistics.java | 2 +- .../schemaengine/schemaregion/ISchemaRegion.java | 20 +- .../schemaregion/SchemaRegionPlanType.java | 2 + .../schemaregion/SchemaRegionPlanVisitor.java | 6 + .../update/DeviceAttributeCacheUpdater.java | 8 +- .../GeneralRegionAttributeSecurityService.java | 4 +- .../schemaregion/impl/SchemaRegionMemoryImpl.java | 85 +- .../schemaregion/impl/SchemaRegionPBTreeImpl.java | 43 +- .../visitor/SchemaRegionPlanDeserializer.java | 7 + .../visitor/SchemaRegionPlanSerializer.java | 8 + .../schemaregion/mtree/IMTreeStore.java | 2 +- .../mtree/impl/mem/MTreeBelowSGMemoryImpl.java | 397 +- .../schemaregion/mtree/impl/mem/MemMTreeStore.java | 2 +- .../mtree/impl/mem/mnode/IMemMNode.java | 11 +- .../mtree/impl/mem/mnode/basic/BasicMNode.java | 16 +- .../impl/mem/mnode/impl/AboveDatabaseMNode.java | 10 + .../mtree/impl/mem/mnode/impl/DatabaseMNode.java | 10 + .../impl/mem/mnode/impl/MeasurementMNode.java | 10 + .../mtree/impl/mem/mnode/info/LogicalViewInfo.java | 3 + .../mtree/impl/mem/mnode/info/MeasurementInfo.java | 3 + .../mnode/iterator/AbstractTraverserIterator.java | 2 +- .../mnode/iterator/MemoryTraverserIterator.java | 2 +- .../mtree/impl/pbtree/CachedMTreeStore.java | 2 +- .../mtree/impl/pbtree/MTreeBelowSGCachedImpl.java | 230 +- .../pbtree/ReentrantReadOnlyCachedMTreeStore.java | 2 +- .../mnode/iterator/CachedTraverserIterator.java | 2 +- .../schemaregion/mtree/traverser/Traverser.java | 2 +- .../schemaregion/read/req/IShowTimeSeriesPlan.java | 6 +- .../read/req/SchemaRegionReadPlanFactory.java | 16 +- .../read/req/impl/ShowTimeSeriesPlanImpl.java | 20 +- .../read/resp/info/impl/ShowDevicesResult.java | 28 +- .../impl/SchemaReaderLimitOffsetWrapper.java | 36 +- .../schemaregion/utils/MNodeUtils.java | 2 +- .../schemaengine/schemaregion/utils/MetaUtils.java | 6 +- .../schemaregion/utils/ResourceByPathUtils.java | 79 +- .../view/visitor/TransformToExpressionVisitor.java | 21 +- .../write/req/SchemaRegionWritePlanFactory.java | 3 + .../req/impl/CreateAlignedTimeSeriesPlanImpl.java | 10 + .../write/req/impl/CreateTimeSeriesPlanImpl.java | 10 + .../db/schemaengine/table/DataNodeTableCache.java | 42 +- .../template/ClusterTemplateManager.java | 9 +- .../db/schemaengine/template/ITemplateManager.java | 1 + .../template/TemplateInternalRPCUtil.java | 2 + .../java/org/apache/iotdb/db/service/DataNode.java | 134 +- .../db/service/ResourcesInformationHolder.java | 11 + .../externalservice/BuiltinExternalServices.java | 58 + .../ExternalServiceClassLoader.java | 57 + .../ExternalServiceManagementException.java} | 12 +- .../ExternalServiceManagementService.java | 428 + .../db/service/metrics/CompactionMetrics.java | 14 +- .../iotdb/db/service/metrics/FileMetrics.java | 20 + .../iotdb/db/service/metrics/WritingMetrics.java | 3 +- .../db/service/metrics/file/ObjectFileMetrics.java | 86 + .../metrics/memory/QueryEngineMemoryMetrics.java | 12 +- .../iotdb/db/storageengine/StorageEngine.java | 60 +- .../db/storageengine/dataregion/DataRegion.java | 857 +- .../dataregion/IDataRegionForQuery.java | 2 +- .../db/storageengine/dataregion/IObjectPath.java | 65 + .../dataregion/VirtualDataRegion.java | 2 +- .../performer/impl/FastCompactionPerformer.java | 26 +- .../impl/ReadChunkCompactionPerformer.java | 7 +- .../execute/task/AbstractCompactionTask.java | 16 +- .../execute/task/InnerSpaceCompactionTask.java | 17 +- .../execute/task/SettleCompactionTask.java | 11 +- .../subtask/FastCompactionPerformerSubTask.java | 33 +- .../execute/utils/CompactionSeriesContext.java | 60 + .../compaction/execute/utils/CompactionUtils.java | 143 + .../execute/utils/MultiTsFileDeviceIterator.java | 45 +- .../fast/FastAlignedSeriesCompactionExecutor.java | 35 +- .../FastNonAlignedSeriesCompactionExecutor.java | 53 +- .../fast/element/ChunkMetadataElement.java | 10 +- .../fast/reader/CompactionAlignedChunkReader.java | 8 +- .../ReadChunkAlignedSeriesCompactionExecutor.java | 31 +- .../readchunk/SingleSeriesCompactionExecutor.java | 21 +- .../utils/writer/AbstractCompactionWriter.java | 1 + .../compaction/repair/RepairDataFileScanUtil.java | 2 +- .../compaction/repair/RepairTimePartition.java | 2 +- .../schedule/CompactionScheduleContext.java | 27 + .../compaction/schedule/TTLScheduleTask.java | 12 + .../impl/RewriteCrossSpaceCompactionSelector.java | 6 + .../selector/utils/TsFileResourceCandidate.java | 7 +- .../dataregion/flush/MemTableFlushTask.java | 1 + .../dataregion/memtable/AbstractMemTable.java | 98 +- .../memtable/AbstractWritableMemChunk.java | 47 +- .../memtable/AlignedReadOnlyMemChunk.java | 49 +- .../memtable/AlignedWritableMemChunk.java | 293 +- .../memtable/AlignedWritableMemChunkGroup.java | 7 + .../dataregion/memtable/IMemTable.java | 10 +- .../dataregion/memtable/IWritableMemChunk.java | 2 + .../memtable/IWritableMemChunkGroup.java | 4 + .../dataregion/memtable/ReadOnlyMemChunk.java | 45 +- .../dataregion/memtable/TsFileProcessor.java | 112 +- .../dataregion/memtable/WritableMemChunk.java | 125 +- .../dataregion/memtable/WritableMemChunkGroup.java | 18 + .../dataregion/modification/DeletionPredicate.java | 8 + .../dataregion/modification/ModificationFile.java | 12 +- .../modification/TableDeletionEntry.java | 9 + .../dataregion/read/QueryDataSource.java | 5 + .../read/reader/chunk/DiskAlignedChunkLoader.java | 16 +- .../read/reader/chunk/DiskChunkLoader.java | 17 + .../read/reader/chunk/MemAlignedChunkReader.java | 7 + .../read/reader/chunk/MemAlignedPageReader.java | 19 +- .../read/reader/chunk/MemChunkReader.java | 7 + .../read/reader/chunk/MemPageReader.java | 11 +- .../dataregion/snapshot/SnapshotLoader.java | 1 + .../dataregion/snapshot/SnapshotTaker.java | 14 +- .../dataregion/tsfile/TsFileResource.java | 62 +- .../tsfile/timeindex/ArrayDeviceTimeIndex.java | 5 +- .../dataregion/tsfile/timeindex/FileTimeIndex.java | 3 +- .../dataregion/tsfile/timeindex/ITimeIndex.java | 10 +- .../tsfile/timeindex/PlainDeviceTimeIndex.java | 3 +- .../allocation/AbstractNodeAllocationStrategy.java | 21 +- .../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 | 8 +- .../db/storageengine/load/LoadTsFileManager.java | 46 +- .../storageengine/load/active/ActiveLoadAgent.java | 90 + .../load/active/ActiveLoadDirScanner.java | 46 +- .../load/active/ActiveLoadPathHelper.java | 282 + .../load/active/ActiveLoadPendingQueue.java | 17 +- .../load/active/ActiveLoadTsFileLoader.java | 45 +- .../load/config/LoadTsFileConfigurator.java | 20 +- ...leStatementDataTypeConvertExecutionVisitor.java | 15 +- ...eeStatementDataTypeConvertExecutionVisitor.java | 18 +- .../converter/LoadTsFileDataTypeConverter.java | 1 + .../db/storageengine/load/disk/MinIOSelector.java | 10 +- .../load/memory/LoadTsFileMemoryManager.java | 19 +- .../splitter/BatchedAlignedValueChunkData.java | 2 + .../ActiveLoadUtil.java => util/LoadUtil.java} | 88 +- .../db/storageengine/rescon/disk/TierManager.java | 99 + .../rescon/memory/PrimitiveArrayManager.java | 2 + .../rescon/memory/TimePartitionManager.java | 2 +- .../task/stage/SubscriptionTaskSinkStage.java | 16 +- .../subtask/SubscriptionSinkSubtaskManager.java | 40 +- .../org/apache/iotdb/db/tools/DelayAnalyzer.java | 387 + .../iotdb/db/tools/TsFileResourcePrinter.java | 5 +- .../apache/iotdb/db/tools/TsFileSketchTool.java | 30 + .../iotdb/db/tools/TsFileSplitByPartitionTool.java | 1 + .../org/apache/iotdb/db/utils/CommonUtils.java | 23 + .../apache/iotdb/db/utils/DataNodeAuthUtils.java | 6 +- .../iotdb/db/utils/EncodingInferenceUtils.java | 1 + .../apache/iotdb/db/utils/ErrorHandlingUtils.java | 17 +- .../org/apache/iotdb/db/utils/HeapTraversal.java | 64 + .../java/org/apache/iotdb/db/utils/MemUtils.java | 4 +- .../org/apache/iotdb/db/utils/ObjectTypeUtils.java | 252 + .../org/apache/iotdb/db/utils/ObjectWriter.java | 82 + .../apache/iotdb/db/utils/QueryDataSetUtils.java | 11 +- .../org/apache/iotdb/db/utils/SchemaUtils.java | 317 +- .../org/apache/iotdb/db/utils/TabletDecoder.java | 1 + .../apache/iotdb/db/utils/TimeValuePairUtils.java | 2 + .../iotdb/db/utils/TimestampPrecisionUtils.java | 4 +- .../apache/iotdb/db/utils/TypeInferenceUtils.java | 1 + .../apache/iotdb/db/utils/cte/CteDataReader.java | 52 + .../apache/iotdb/db/utils/cte/CteDataStore.java | 109 + .../apache/iotdb/db/utils/cte/MemoryReader.java | 75 + .../db/utils/datastructure/AlignedTVList.java | 200 +- .../db/utils/datastructure/BackAlignedTVList.java | 3 +- .../db/utils/datastructure/BackBinaryTVList.java | 3 +- .../db/utils/datastructure/BackBooleanTVList.java | 3 +- .../db/utils/datastructure/BackDoubleTVList.java | 3 +- .../db/utils/datastructure/BackFloatTVList.java | 3 +- .../db/utils/datastructure/BackIntTVList.java | 10 +- .../db/utils/datastructure/BackLongTVList.java | 3 +- .../iotdb/db/utils/datastructure/BinaryTVList.java | 9 + .../db/utils/datastructure/BooleanTVList.java | 9 + .../iotdb/db/utils/datastructure/DoubleTVList.java | 9 + .../iotdb/db/utils/datastructure/FloatTVList.java | 9 + .../iotdb/db/utils/datastructure/IntTVList.java | 44 +- .../iotdb/db/utils/datastructure/LongTVList.java | 9 + .../MergeSortMultiAlignedTVListIterator.java | 1 + .../MergeSortMultiTVListIterator.java | 1 + .../datastructure/MultiAlignedTVListIterator.java | 1 + .../utils/datastructure/MultiTVListIterator.java | 1 + .../db/utils/datastructure/QuickAlignedTVList.java | 3 +- .../db/utils/datastructure/QuickBinaryTVList.java | 3 +- .../db/utils/datastructure/QuickBooleanTVList.java | 3 +- .../db/utils/datastructure/QuickDoubleTVList.java | 3 +- .../db/utils/datastructure/QuickFloatTVList.java | 3 +- .../db/utils/datastructure/QuickIntTVList.java | 10 +- .../db/utils/datastructure/QuickLongTVList.java | 3 +- .../iotdb/db/utils/datastructure/TVList.java | 47 +- .../db/utils/datastructure/TimAlignedTVList.java | 3 +- .../db/utils/datastructure/TimBinaryTVList.java | 3 +- .../db/utils/datastructure/TimBooleanTVList.java | 3 +- .../db/utils/datastructure/TimDoubleTVList.java | 3 +- .../db/utils/datastructure/TimFloatTVList.java | 3 +- .../iotdb/db/utils/datastructure/TimIntTVList.java | 10 +- .../db/utils/datastructure/TimLongTVList.java | 3 +- .../iotdb/db/utils/sort/FileSpillerReader.java | 5 + .../apache/iotdb/db/utils/sort/MemoryReader.java | 5 + .../org/apache/iotdb/db/utils/sort/SortReader.java | 3 + .../db/utils/windowing/window/WindowImpl.java | 1 + .../apache/iotdb/db/auth/AuthorityCheckerTest.java | 51 + .../org/apache/iotdb/db/auth/TreeAccessTest.java | 84 + .../auth/authorizer/LocalFileAuthorizerTest.java | 8 +- .../db/auth/authorizer/OpenIdAuthorizerTest.java | 8 +- .../db/auth/role/LocalFileRoleAccessorTest.java | 2 +- .../schemaregion/SchemaExecutionVisitorTest.java | 277 + .../cache/TreeDeviceSchemaCacheManagerTest.java | 16 +- .../db/metadata/path/MeasurementPathTest.java | 4 +- .../schemaRegion/SchemaRegionManagementTest.java | 2 +- .../SchemaRegionSimpleRecoverTest.java | 2 +- .../schemaRegion/SchemaRegionTemplateTest.java | 2 +- .../schemaRegion/SchemaRegionTestUtil.java | 27 +- .../schemaRegion/SchemaStatisticsTest.java | 2 +- .../db/pipe/consensus/DeletionRecoverTest.java | 6 +- .../db/pipe/consensus/DeletionResourceTest.java | 12 +- .../pipe/event/PipeTabletInsertionEventTest.java | 91 +- .../pipe/event/PipeTsFileInsertionEventTest.java | 301 + .../pipe/event/TsFileInsertionEventParserTest.java | 47 +- .../tsfile/parser/util/ModsOperationUtilTest.java | 408 + .../db/pipe/pattern/IoTDBTreePatternTest.java | 36 + .../db/pipe/pattern/TreePatternCoverageTest.java | 133 + .../db/pipe/pattern/TreePatternPruningTest.java | 195 + .../receiver/PipeStatementTsStatusVisitorTest.java | 65 + .../pipe/sink/PipeDataNodeThriftRequestTest.java | 4 +- .../apache/iotdb/db/pipe/sink/PipeSinkTest.java | 102 + .../db/pipe/sink/PipeStatementEventSorterTest.java | 313 + .../PipeStatementTreePatternParseVisitorTest.java | 202 +- .../sink/util/TabletStatementConverterTest.java | 607 + .../db/pipe/source/IoTDBDataRegionSourceTest.java | 2 - .../PipePlanTreePatternParseVisitorTest.java | 7 +- .../db/pipe/source/PipeRealtimeExtractTest.java | 32 +- .../source/PipeTreeStatementToPlanVisitorTest.java | 87 + .../db/protocol/rest/GrafanaApiServiceTest.java | 450 - .../db/protocol/rest/IoTDBRestServiceTest.java | 918 - .../common/schematree/ClusterSchemaTreeTest.java | 2 +- .../execution/exchange/SharedTsBlockQueueTest.java | 82 +- .../fragment/FragmentInstanceExecutionTest.java | 243 +- .../execution/operator/CteScanOperatorTest.java | 246 + .../operator/DeviceViewIntoOperatorTest.java | 487 + .../operator/MergeTreeSortOperatorTest.java | 10 + .../operator/SortOperatorSortBranchTest.java | 207 + .../execution/operator/TransformOperatorTest.java | 142 + .../execution/operator/TreeIntoOperatorTest.java | 303 + .../operator/process/ValuesOperatorTest.java | 207 + .../process/window/RowNumberOperatorTest.java | 359 + .../process/window/TableWindowOperatorTest.java | 51 + .../process/window/TopKRankingOperatorTest.java | 455 + .../process/window/function/FunctionTestUtils.java | 8 +- .../schema/SchemaQueryScanOperatorTest.java | 3 +- .../source/relational/TableScanOperatorTest.java | 113 + .../predicate/TreePredicateConversionTest.java | 572 + .../plan/analyze/FakeSchemaFetcherImpl.java | 2 +- .../plan/parser/StatementGeneratorTest.java | 33 + .../plan/planner/FragmentInstanceSerdeTest.java | 6 +- .../distribution/AggregationTableScanTest.java | 177 + .../plan/planner/distribution/LastQueryTest.java | 60 + .../plan/planner/distribution/Util.java | 2 +- .../plan/planner/distribution/Util2.java | 2 +- .../logical/DataQueryLogicalPlannerTest.java | 11 +- .../logical/SchemaQueryLogicalPlannerTest.java | 6 +- .../plan/planner/node/load/LoadTsFileNodeTest.java | 2 +- ...NodeSerdeTest.java => SourceNodeSerdeTest.java} | 22 +- .../statement/sys/pipe/PipeStatementTest.java | 8 +- .../plan/relational/analyzer/AnalyzerTest.java | 53 +- .../plan/relational/analyzer/AuthTest.java | 10 +- .../analyzer/EvaluateEmptyIntersectTest.java | 48 + .../plan/relational/analyzer/ExceptTest.java | 132 + .../relational/analyzer/InsertIntoQueryTest.java | 7 + .../plan/relational/analyzer/IntersectTest.java | 121 + .../analyzer/LimitOffsetPushDownTest.java | 7 + .../plan/relational/analyzer/MergeExceptTest.java | 147 + .../relational/analyzer/MergeIntersectTest.java | 112 + .../analyzer/PushAggregationThroughUnionTest.java | 154 + .../analyzer/RemoveEmptyExceptBranchesTest.java | 101 + .../analyzer/RowPatternRecognitionTest.java | 4 +- .../plan/relational/analyzer/SortTest.java | 7 + .../plan/relational/analyzer/SubQueryTest.java | 7 + .../plan/relational/analyzer/TSBSMetadata.java | 27 +- .../relational/analyzer/TableFunctionTest.java | 7 +- .../plan/relational/analyzer/TestMetadata.java | 52 +- .../relational/analyzer/UnionOptimizeTest.java | 158 + .../fetcher/cache/TableDeviceSchemaCacheTest.java | 9 + .../relational/planner/CteMaterializerTest.java | 345 + .../plan/relational/planner/CteSubqueryTest.java | 167 + .../plan/relational/planner/PlanTester.java | 43 +- .../planner/UncorrelatedSubqueryTest.java | 261 +- .../planner/WindowFunctionOptimizationTest.java | 300 + .../planner/assertions/AliasMatcher.java | 8 + .../planner/assertions/ColumnReference.java | 23 +- .../planner/assertions/CteScanMatcher.java | 86 + .../planner/assertions/DeviceTableScanMatcher.java | 11 + .../planner/assertions/ExpressionVerifier.java | 14 + .../planner/assertions/PlanMatchPattern.java | 86 +- .../planner/assertions/RvalueMatcher.java | 8 + .../planner/assertions/TableScanMatcher.java | 17 + ...ScanMatcher.java => WindowFunctionMatcher.java} | 71 +- .../informationschema/CurrentQueriesTest.java | 184 + .../informationschema}/ShowQueriesTest.java | 8 +- .../predicate/TablePredicateConversionTest.java | 506 + .../relational/sql/AstMemoryEstimatorTest.java | 892 + .../sql/ast/SqlParserErrorHandlerTest.java | 76 + .../plan/statement/InsertStatementTest.java | 113 +- .../binary/hmac/HmacMd5ColumnTransformerTest.java | 420 + .../binary/hmac/HmacSha1ColumnTransformerTest.java | 420 + .../hmac/HmacSha256ColumnTransformerTest.java | 420 + .../hmac/HmacSha512ColumnTransformerTest.java | 356 + .../column/ternary/LpadColumnTransformerTest.java | 303 + .../column/ternary/RpadColumnTransformerTest.java | 303 + .../scalar/BlobLengthColumnTransformerTest.java | 148 + .../FromBigEndian32ColumnTransformerTest.java | 220 + .../FromBigEndian64ColumnTransformerTest.java | 242 + ...omIEEE754_32BigEndianColumnTransformerTest.java | 231 + ...omIEEE754_64BigEndianColumnTransformerTest.java | 231 + .../FromLittleEndian32ColumnTransformerTest.java | 221 + .../FromLittleEndian64ColumnTransformerTest.java | 243 + .../ToBigEndian32ColumnTransformerTest.java | 188 + .../ToBigEndian64ColumnTransformerTest.java | 188 + ...ToIEEE754_32BigEndianColumnTransformerTest.java | 179 + ...ToIEEE754_64BigEndianColumnTransformerTest.java | 159 + .../ToLittleEndian32ColumnTransformerTest.java | 189 + .../ToLittleEndian64ColumnTransformerTest.java | 189 + .../unary/scalar/ReverseColumnTransformerTest.java | 216 + .../FromBase32ColumnTransformerTest.java | 268 + .../FromBase64ColumnTransformerTest.java | 271 + .../FromBase64UrlColumnTransformerTest.java | 328 + .../ToBase32ColumnTransformerTest.java | 196 + .../ToBase64ColumnTransformerTest.java | 190 + .../ToBase64UrlColumnTransformerTest.java | 235 + .../scalar/hashing/Crc32ColumnTransformerTest.java | 200 + .../scalar/hashing/Md5ColumnTransformerTest.java | 225 + .../hashing/Murmur3ColumnTransformerTest.java | 224 + .../scalar/hashing/Sha1ColumnTransformerTest.java | 225 + .../hashing/Sha256ColumnTransformerTest.java | 229 + .../hashing/Sha512ColumnTransformerTest.java | 224 + .../SpookyHashV2_32ColumnTransformerTest.java | 183 + .../SpookyHashV2_64ColumnTransformerTest.java | 183 + .../hashing/XxHash64ColumnTransformerTest.java | 238 + .../hexEncoding/FromHexColumnTransformerTest.java | 239 + .../hexEncoding/ToHexColumnTransformerTest.java | 222 + .../DataNodeInternalRPCServiceImplTest.java | 59 +- .../iotdb/db/storageengine/StorageEngineTest.java | 4 +- .../storageengine/dataregion/DataRegionTest.java | 97 +- .../compaction/CompactionDataTypeAlterTest.java | 377 + ...ctionDataTypeNotMatchAlterableDataTypeTest.java | 221 + .../compaction/CompactionSchedulerTest.java | 35 + .../FastNonAlignedCrossCompactionTest.java | 5 + .../ReadPointNonAlignedCrossCompactionTest.java | 4 + .../inner/InnerSpaceCompactionExceptionTest.java | 16 + .../repair/RepairUnsortedFileSchedulerTest.java | 10 +- .../settle/SettleCompactionTaskTest.java | 32 + .../compaction/utils/CompactionTestFileWriter.java | 6 +- .../memtable/AlignedTVListIteratorTest.java | 57 + .../memtable/MemChunkDeserializeTest.java | 4 +- .../dataregion/memtable/PrimitiveMemTableTest.java | 122 +- .../dataregion/memtable/TsFileProcessorTest.java | 158 - .../memtable/WritableMemChunkRegionScanTest.java | 445 + .../reader/chunk/MemAlignedChunkLoaderTest.java | 2 +- .../read/reader/chunk/MemChunkLoaderTest.java | 12 +- .../dataregion/snapshot/IoTDBSnapshotTest.java | 80 +- .../wal/allocation/FirstCreateStrategyTest.java | 81 + .../wal/recover/file/TsFilePlanRedoerTest.java | 21 +- .../apache/iotdb/db/tools/DelayAnalyzerTest.java | 361 + .../org/apache/iotdb/db/utils/AnnotationTest.java | 59 + .../apache/iotdb/db/utils/EnvironmentUtils.java | 4 +- .../db/utils/SchemaRegionSnapshotParserTest.java | 2 +- .../org/apache/iotdb/db/utils/SchemaUtilsTest.java | 174 + .../apache/iotdb/db/utils/TSDataTypeTestUtils.java | 111 + .../db/utils/datastructure/AlignedTVListTest.java | 10 +- .../db/utils/datastructure/IntTVListTest.java | 11 +- .../datastructure/PrimitiveArrayManagerTest.java | 13 +- iotdb-core/metrics/core/pom.xml | 4 +- iotdb-core/metrics/interface/pom.xml | 8 +- .../iotdb/metrics/metricsets/jvm/JvmGcMetrics.java | 12 +- iotdb-core/metrics/pom.xml | 2 +- iotdb-core/node-commons/pom.xml | 44 +- .../resources/conf/iotdb-system.properties | 2 +- .../conf/iotdb-system.properties.template | 61 +- .../iotdb/commons/audit/AbstractAuditLogger.java | 89 +- .../commons/auth/authorizer/BasicAuthorizer.java | 7 +- .../iotdb/commons/auth/authorizer/IAuthorizer.java | 3 +- .../commons/auth/authorizer/OpenIdAuthorizer.java | 3 +- .../iotdb/commons/auth/entity/PrivilegeUnion.java | 2 +- .../iotdb/commons/auth/entity/TablePrivilege.java | 3 + .../iotdb/commons/binaryallocator/arena/Arena.java | 7 +- .../apache/iotdb/commons/client/ClientManager.java | 25 + .../iotdb/commons/client/ClientPoolFactory.java | 123 +- .../apache/iotdb/commons/client/ThriftClient.java | 3 +- .../iotdb/commons/client/ainode/AINodeClient.java | 369 - .../AsyncAINodeInternalServiceClient.java} | 25 +- .../async/AsyncPipeDataTransferServiceClient.java | 21 +- .../commons/client/sync/SyncAINodeClient.java | 153 + .../iotdb/commons/concurrent/ThreadName.java | 1 + .../apache/iotdb/commons/conf/CommonConfig.java | 430 +- .../iotdb/commons/conf/CommonDescriptor.java | 11 +- .../iotdb/commons/conf/ConfigurationFileUtils.java | 75 +- .../apache/iotdb/commons/conf/IoTDBConstant.java | 8 +- .../iotdb/commons/exception/MetadataException.java | 2 +- .../ObjectFileNotExist.java} | 18 +- .../pipe/PipeRuntimeSinkCriticalException.java | 2 +- ...imeSinkNonReportTimeConfigurableException.java} | 48 +- ...RuntimeSinkRetryTimesConfigurableException.java | 31 + .../iotdb/commons/externalservice/ServiceInfo.java | 179 + .../commons/file/SystemPropertiesHandler.java | 15 +- .../iotdb/commons/model/ModelInformation.java | 43 +- .../org/apache/iotdb/commons/model/ModelTable.java | 4 +- .../apache/iotdb/commons/path/MeasurementPath.java | 57 +- .../org/apache/iotdb/commons/path/PartialPath.java | 26 + .../apache/iotdb/commons/path/PathPatternNode.java | 7 + .../apache/iotdb/commons/path/PathPatternTree.java | 13 +- .../commons/pipe/agent/plugin/PipePluginAgent.java | 89 +- .../service/PipePluginExecutableManager.java | 9 + .../commons/pipe/agent/task/PipeTaskAgent.java | 48 + .../agent/task/execution/PipeSubtaskExecutor.java | 18 +- .../commons/pipe/agent/task/meta/PipeTaskMeta.java | 39 +- .../task/progress/interval/PipeCommitInterval.java | 4 +- .../task/subtask/PipeAbstractSinkSubtask.java | 94 +- .../agent/task/subtask/PipeReportableSubtask.java | 23 +- .../iotdb/commons/pipe/config/PipeConfig.java | 182 +- .../iotdb/commons/pipe/config/PipeDescriptor.java | 111 +- .../pipe/config/constant/PipeSinkConstant.java | 54 +- .../pipe/config/constant/PipeSourceConstant.java | 7 + .../pipe/config/constant/SystemConstant.java | 7 +- .../datastructure/pattern/IoTDBTreePattern.java | 104 +- .../pattern/IoTDBTreePatternOperations.java | 52 + .../datastructure/pattern/PrefixTreePattern.java | 75 +- .../datastructure/pattern/SingleTreePattern.java | 59 - .../pipe/datastructure/pattern/TreePattern.java | 911 +- .../pattern/UnionIoTDBTreePattern.java | 124 +- .../datastructure/pattern/UnionTreePattern.java | 22 +- .../pattern/WithExclusionIoTDBTreePattern.java | 216 + .../pattern/WithExclusionTreePattern.java | 122 + .../iotdb/commons/pipe/event/EnrichedEvent.java | 5 + .../commons/pipe/receiver/IoTDBFileReceiver.java | 17 +- .../pipe/receiver/PipeReceiverStatusHandler.java | 189 +- .../pipe/sink/client/IoTDBClientManager.java | 7 +- .../commons/pipe/sink/client/IoTDBSyncClient.java | 2 +- .../pipe/sink/client/IoTDBSyncClientManager.java | 13 +- .../pipe/sink/limiter/GlobalRPCRateLimiter.java | 2 +- .../common/PipeTransferHandshakeConstant.java | 1 + .../pipe/sink/protocol/IoTDBAirGapSink.java | 4 +- .../commons/pipe/sink/protocol/IoTDBSink.java | 15 +- .../pipe/sink/protocol/IoTDBSslSyncSink.java | 8 +- .../pipe/source/IoTDBNonDataRegionSource.java | 23 +- .../iotdb/commons/pipe/source/IoTDBSource.java | 21 +- .../iotdb/commons/schema/column/ColumnHeader.java | 14 +- .../schema/column/ColumnHeaderConstant.java | 43 +- .../iotdb/commons/schema/filter/SchemaFilter.java | 3 +- .../commons/schema/filter/impl/DataTypeFilter.java | 9 + .../schema/filter/impl/PathContainsFilter.java | 10 + .../commons/schema/filter/impl/TagFilter.java | 9 + .../commons/schema/filter/impl/TemplateFilter.java | 10 + .../commons/schema/filter/impl/ViewTypeFilter.java | 10 + .../multichildren/AbstractMultiChildrenFilter.java | 25 + .../filter/impl/multichildren/AndFilter.java | 9 + .../schema/filter/impl/multichildren/OrFilter.java | 9 + .../singlechild/AbstractSingleChildFilter.java | 16 + .../filter/impl/singlechild/AttributeFilter.java | 10 + .../schema/filter/impl/singlechild/NotFilter.java | 9 + .../schema/filter/impl/singlechild/TagFilter.java | 10 + .../filter/impl/values/ComparisonFilter.java | 10 + .../schema/filter/impl/values/InFilter.java | 8 + .../schema/filter/impl/values/LikeFilter.java | 11 + .../schema/filter/impl/values/PreciseFilter.java | 10 + .../table/AlterOrDropTableOperationType.java | 5 +- .../commons/schema/table/InformationSchema.java | 102 +- .../schema/table/InsertNodeMeasurementInfo.java | 244 + .../schema/table/NonCommittableTsTable.java} | 31 +- .../schema/table/TsFileTableSchemaUtil.java | 225 + .../apache/iotdb/commons/schema/table/TsTable.java | 285 +- .../schema/table/column/AttributeColumnSchema.java | 7 + .../schema/table/column/FieldColumnSchema.java | 15 +- .../schema/table/column/TagColumnSchema.java | 6 + .../schema/table/column/TimeColumnSchema.java | 6 + .../schema/table/column/TsTableColumnCategory.java | 4 + .../schema/table/column/TsTableColumnSchema.java | 12 + .../table/column/TsTableColumnSchemaUtil.java | 12 + .../iotdb/commons/schema}/template/Template.java | 2 +- .../schema/tree/AlterTimeSeriesOperationType.java} | 30 +- .../apache/iotdb/commons/schema/ttl/TTLCache.java | 29 + .../service/AbstractThriftServiceThread.java | 15 +- .../apache/iotdb/commons/service/ServiceType.java | 2 - .../iotdb/commons/service/metric/enums/Metric.java | 3 + .../subscription/config/SubscriptionConfig.java | 4 +- .../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 | 365 - .../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 | 36 + .../commons/udf/utils/UDFDataTypeTransformer.java | 7 + .../commons/utils/ErrorHandlingCommonUtils.java} | 17 +- .../org/apache/iotdb/commons/utils/FileUtils.java | 104 +- .../apache/iotdb/commons/utils/JVMCommonUtils.java | 7 +- .../apache/iotdb/commons/utils/MetadataUtils.java} | 15 +- .../org/apache/iotdb/commons/utils/RetryUtils.java | 59 +- .../apache/iotdb/commons/utils/SerializeUtils.java | 24 + .../apache/iotdb/commons/utils/WindowsOSUtils.java | 64 + .../binaryallocator/BinaryAllocatorTest.java | 10 +- .../pipe/datastructure/PipeCommitQueueTest.java | 2 + .../PipeReceiverStatusHandlerTest.java | 302 + .../commons/pipe/task/PipeSleepIntervalTest.java | 83 + .../schema/table/TsFileTableSchemaUtilTest.java | 744 + .../apache/iotdb/commons/utils/FileUtilsTest.java | 79 + .../iotdb/commons/utils/WindowsOSUtilsTest.java} | 34 +- iotdb-core/pom.xml | 2 +- iotdb-core/relational-grammar/pom.xml | 2 +- .../db/relational/grammar/sql/RelationalSql.g4 | 82 +- iotdb-doap.rdf | 48 + iotdb-protocol/pom.xml | 3 +- iotdb-protocol/thrift-ainode/pom.xml | 4 +- .../thrift-ainode/src/main/thrift/ainode.thrift | 38 +- iotdb-protocol/thrift-commons/pom.xml | 2 +- .../thrift-commons/src/main/thrift/common.thrift | 14 + iotdb-protocol/thrift-confignode/pom.xml | 4 +- .../src/main/thrift/confignode.thrift | 179 +- iotdb-protocol/thrift-consensus/pom.xml | 4 +- iotdb-protocol/thrift-datanode/pom.xml | 4 +- .../thrift-datanode/src/main/thrift/client.thrift | 38 +- .../src/main/thrift/datanode.thrift | 35 +- library-udf/pom.xml | 6 +- pom.xml | 88 +- scripts/conf/ainode-env.sh | 138 - scripts/conf/windows/ainode-env.bat | 129 - scripts/sbin/start-ainode.sh | 56 +- scripts/sbin/stop-ainode.sh | 2 +- scripts/sbin/windows/start-ainode.bat | 62 +- scripts/sbin/windows/start-cli.bat | 18 +- scripts/sbin/windows/start-confignode.bat | 28 - scripts/sbin/windows/start-datanode.bat | 48 - .../ops/{daemon-datanode.sh => daemon-ainode.sh} | 28 +- scripts/tools/ops/daemon-confignode.sh | 3 +- scripts/tools/ops/daemon-datanode.sh | 3 +- 2102 files changed, 138809 insertions(+), 28376 deletions(-) diff --cc pom.xml index 18896da00a5,91e2f933a5a..9c8737314e6 --- a/pom.xml +++ b/pom.xml @@@ -103,9 -105,8 +105,9 @@@ <jcip-annotations.version>1.0-1</jcip-annotations.version> <!-- This is the last version to support the javax namespace --> <jersey.version>2.40</jersey.version> + <oshi.version>6.4.0</oshi.version> <!-- This was the last version to support Java 8 --> - <jetty.version>9.4.57.v20241219</jetty.version> + <jetty.version>9.4.58.v20250814</jetty.version> <jjwt.version>0.12.7</jjwt.version> <jline.version>3.26.2</jline.version> <jna.version>5.14.0</jna.version>
