This is an automated email from the ASF dual-hosted git repository. lancelly pushed a commit to branch support_correlated_quantified_comparison in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 68e405f8161ccd73b6d6c32883034bf00b1517e0 Merge: c50cff459c4 eda42490462 Author: lancelly <[email protected]> AuthorDate: Mon May 12 15:59:29 2025 +0800 Merge branch 'master' into support_correlated_scalar_subquery .asf.yaml | 3 + .github/workflows/multi-language-client.yml | 14 +- .github/workflows/pipe-it.yml | 66 +- README.md | 2 +- README_ZH.md | 2 +- RELEASE_NOTES.md | 100 ++ code-coverage/pom.xml | 2 +- dependencies.json | 10 +- distribution/pom.xml | 12 +- distribution/src/assembly/ainode.xml | 6 + distribution/src/assembly/all.xml | 50 +- distribution/src/assembly/cli.xml | 17 +- distribution/src/assembly/confignode.xml | 41 +- distribution/src/assembly/datanode.xml | 45 +- .../DockerCompose/docker-compose-host-3c3d.yml | 2 + .../DockerCompose/docker-compose-standalone.yml | 4 +- .../main/DockerCompose/replace-conf-from-env.sh | 11 +- docker/src/main/Dockerfile-1c1d | 2 +- example/client-cpp-example/pom.xml | 2 +- example/jdbc/pom.xml | 2 +- example/mqtt-customize/pom.xml | 2 +- example/mqtt/pom.xml | 2 +- example/pipe-count-point-processor/pom.xml | 2 +- example/pipe-opc-ua-sink/pom.xml | 2 +- example/pom.xml | 2 +- example/rest-java-example/pom.xml | 2 +- example/schema/pom.xml | 2 +- example/session/pom.xml | 2 +- .../org/apache/iotdb/TableModelSessionExample.java | 15 +- .../apache/iotdb/TableModelSessionPoolExample.java | 2 +- .../TableModelSubscriptionSessionExample.java | 19 +- example/trigger/pom.xml | 2 +- example/udf/pom.xml | 2 +- .../iotdb/udf/table/ExcludeColumnExample.java | 117 ++ .../org/apache/iotdb/udf/table/RepeatExample.java | 136 ++ .../org/apache/iotdb/udf/table/SplitExample.java | 133 ++ integration-test/pom.xml | 88 +- integration-test/src/assembly/mpp-test.xml | 32 +- .../example/relational/MyErrorTableFunction.java | 127 ++ .../udf/example/relational/MyExcludeColumn.java | 98 ++ .../udf/example/relational/MyRepeatWithIndex.java | 113 ++ .../example/relational/MyRepeatWithoutIndex.java | 110 ++ .../udf/example/relational/MySelectColumn.java | 98 ++ .../db/query/udf/example/relational/MySplit.java | 117 ++ .../it/env/cluster/config/MppConfigNodeConfig.java | 12 + .../it/env/cluster/config/MppDataNodeConfig.java | 12 + .../iotdb/it/env/cluster/env/AbstractEnv.java | 13 +- .../env/remote/config/RemoteConfigNodeConfig.java | 10 + .../it/env/remote/config/RemoteDataNodeConfig.java | 10 + .../iotdb/it/env/remote/env/RemoteServerEnv.java | 13 +- .../iotdb/it/utils/TsFileTableGenerator.java | 7 +- ...usterIT2SubscriptionTableArchVerification.java} | 2 +- ...terIT2SubscriptionTableRegressionConsumer.java} | 2 +- ...ClusterIT2SubscriptionTableRegressionMisc.java} | 2 +- ...lusterIT2SubscriptionTreeArchVerification.java} | 2 +- ...sterIT2SubscriptionTreeRegressionConsumer.java} | 2 +- ...iClusterIT2SubscriptionTreeRegressionMisc.java} | 2 +- .../java/org/apache/iotdb/itbase/env/BaseEnv.java | 11 +- .../apache/iotdb/itbase/env/ConfigNodeConfig.java | 5 + .../apache/iotdb/itbase/env/DataNodeConfig.java | 4 + .../org/apache/iotdb/ainode/it/AINodeBasicIT.java | 15 +- .../apache/iotdb/cli/it/StartClientScriptIT.java | 4 +- .../it/cluster/IoTDBClusterNodeGetterIT.java | 2 +- .../partition/IoTDBPartitionTableAutoCleanIT.java | 102 +- .../org/apache/iotdb/db/it/IoTDBLoadTsFileIT.java | 141 +- .../org/apache/iotdb/db/it/IoTDBRestartIT.java | 1 - .../iotdb/db/it/aggregation/IoTDBCountIfIT.java | 13 + .../db/it/aligned/IoTDBPredicatePushDownIT.java | 9 + .../org/apache/iotdb/db/it/auth/IoTDBAuthIT.java | 17 +- .../it/auth/IoTDBClusterAuthorityRelationalIT.java | 1 - .../iotdb/db/it/auth/IoTDBRelationalAuthIT.java | 105 +- .../java/org/apache/iotdb/db/it/cq/IoTDBCQIT.java | 16 +- .../apache/iotdb/db/it/metric/IoTDBMetricIT.java | 92 +- .../it/schema/IoTDBDeleteAlignedTimeseriesIT.java | 42 + .../iotdb/db/it/schema/IoTDBExtendTemplateIT.java | 7 + .../org/apache/iotdb/db/it/utils/TestUtils.java | 22 +- .../pipe/it/dual/tablemodel/TableModelUtils.java | 119 +- .../tablemodel/manual/basic/IoTDBPipeAlterIT.java | 6 +- .../manual/basic/IoTDBPipeDataSinkIT.java | 6 + .../manual/basic/IoTDBPipeExtractorIT.java | 7 + .../manual/basic/IoTDBPipeLifeCycleIT.java | 64 +- .../manual/basic/IoTDBPipePermissionIT.java | 314 ++++ .../manual/basic/IoTDBPipeProtocolIT.java | 4 + .../manual/basic/IoTDBPipeSwitchStatusIT.java | 4 + .../tablemodel/manual/basic/IoTDBPipeSyntaxIT.java | 1 + .../manual/basic/IoTDBPipeWithLoadIT.java | 111 ++ .../manual/basic/IoTDBTablePatternFormatIT.java | 7 + .../manual/enhanced/IoTDBPipeAutoConflictIT.java | 4 + .../manual/enhanced/IoTDBPipeAutoDropIT.java | 2 + .../manual/enhanced/IoTDBPipeClusterIT.java | 13 + .../enhanced/IoTDBPipeConnectorCompressionIT.java | 12 +- .../enhanced/IoTDBPipeConnectorParallelIT.java | 2 + .../manual/enhanced/IoTDBPipeIdempotentIT.java | 67 +- .../manual/enhanced/IoTDBPipeMetaIT.java | 56 + .../manual/enhanced/IoTDBPipeNullValueIT.java | 1 + .../IoTDBPipeTypeConversionISessionIT.java | 18 +- .../treemodel/auto/basic/IoTDBPipeProcessorIT.java | 2 + .../manual/IoTDBPipeTypeConversionISessionIT.java | 5 +- .../iotdb/pipe/it/single/IoTDBPipeAggregateIT.java | 5 +- .../pipe/it/single/IoTDBPipePermissionIT.java | 200 +++ .../relational/it/db/it/IoTDBAsofJoinTableIT.java | 146 ++ .../it/db/it/IoTDBAuthenticationTableIT.java | 204 ++- .../it/db/it/IoTDBFlushQueryTableIT.java | 30 +- .../relational/it/db/it/IoTDBInsertTableIT.java | 81 +- .../db/it/IoTDBMultiTAGsWithAttributesTableIT.java | 620 +++++++- .../relational/it/db/it/IoTDBWindowTVFIT.java | 353 +++++ .../it/db/it/udf/IoTDBSQLFunctionManagementIT.java | 22 +- .../udf/IoTDBUserDefinedAggregateFunctionIT.java | 10 +- .../db/it/udf/IoTDBUserDefinedTableFunctionIT.java | 322 ++++ .../old/aligned/IoTDBPredicatePushDownTableIT.java | 13 + .../scalar/IoTDBFormatFunctionTableIT.java | 18 +- .../it/query/old/orderBy/IoTDBOrderByTableIT.java | 33 +- .../it/query/old/query/IoTDBArithmeticTableIT.java | 12 + .../query/old/query/IoTDBGreatestLeastTableIT.java | 8 +- .../it/query/recent/IoTDBColumnsMatchTableIT.java | 354 +++++ .../it/query/recent/IoTDBComplexQueryIT.java | 84 ++ .../it/query/recent/IoTDBDistinctTagIT.java | 257 ++++ .../it/query/recent/IoTDBMaintainAuthIT.java | 92 +- .../it/query/recent/IoTDBNullIdQueryIT.java | 12 + .../it/query/recent/IoTDBTableAggregationIT.java | 151 +- .../recent/IoTDBTableAggregationNonStreamIT.java | 56 + .../IoTDBCorrelatedExistsSubqueryIT.java | 24 +- .../relational/it/rest/it/IoTDBRestServiceIT.java | 14 +- .../relational/it/schema/IoTDBDatabaseIT.java | 216 ++- .../iotdb/relational/it/schema/IoTDBTableIT.java | 363 ++++- .../it/session/IoTDBSessionRelationalIT.java | 196 ++- .../pool/IoTDBInsertTableSessionPoolIT.java | 2 +- .../iotdb/session/it/IoTDBSessionInsertNullIT.java | 28 + .../iotdb/session/it/IoTDBSessionSimpleIT.java | 73 + .../iotdb/subscription/it/dual/tablemodel/.gitkeep | 1 + .../IoTDBSubscriptionConsumerGroupIT.java | 7 +- .../IoTDBSubscriptionTimePrecisionIT.java | 7 +- .../{ => treemodel}/IoTDBSubscriptionTopicIT.java | 79 +- .../it/local/IoTDBSubscriptionBasicIT.java | 67 - .../tablemodel/IoTDBSubscriptionPermissionIT.java | 386 +++++ .../subscription/it/triple/tablemodel/.gitkeep | 1 + .../IoTDBSubscriptionSharingIT.java | 13 +- .../AbstractSubscriptionTreeRegressionIT.java} | 6 +- .../IoTDBDefaultPullConsumerDataSetIT.java | 38 +- .../IoTDBDefaultTsfilePushConsumerIT.java | 10 +- .../IoTDBRootDatasetPushConsumerIT.java | 10 +- .../IoTDBRootPullConsumeTsfileIT.java | 10 +- ...merPullConsumerWith1TopicShareProcessMixIT.java | 10 +- .../param/IoTDBTestParamPullConsumerIT.java | 10 +- .../param/IoTDBTestParamPushConsumerIT.java | 10 +- .../param/IoTDBTestParamSubscriptionSessionIT.java | 10 +- .../regression/param/IoTDBTestParamTopicIT.java | 10 +- ...DBTestAutoCommitFalseDataSetPullConsumerIT.java | 10 +- ...TDBTestAutoCommitTrueDataSetPullConsumerIT.java | 11 +- .../format/IoTDBDBDataSetPullConsumerIT.java | 10 +- .../format/IoTDBDBTsfilePullConsumerIT.java | 10 +- .../IoTDBAllTsDatasetPullConsumerIT.java | 10 +- .../IoTDBAllTsTsfilePullConsumerIT.java | 10 +- .../IoTDBAllTsfilePullConsumerSnapshotIT.java | 10 +- .../IoTDBPathDeviceDataSetPullConsumerIT.java | 10 +- .../IoTDBPathDeviceTsfilePullConsumerIT.java | 10 +- .../IoTDBTimeTsDatasetPullConsumerIT.java | 10 +- .../IoTDBTimeTsTsfilePullConsumerIT.java | 10 +- .../IoTDBSnapshotDevicePullConsumerDataSetIT.java | 10 +- .../IoTDBSnapshotDevicePullConsumerTsfileIT.java | 10 +- ...DBConsumer2With1TopicShareProcessDataSetIT.java | 10 +- ...TDBConsumer2With1TopicShareProcessTsfileIT.java | 46 +- .../multi/IoTDBMultiGroupVsMultiConsumerIT.java | 10 +- .../IoTDBOneConsumerMultiTopicsDatasetIT.java | 10 +- .../multi/IoTDBOneConsumerMultiTopicsMixIT.java | 10 +- .../multi/IoTDBOneConsumerMultiTopicsTsfileIT.java | 10 +- .../pattern/IoTDBDBPatternPullConsumeTsfileIT.java | 10 +- .../IoTDBDBPatternPullConsumerDataSetIT.java | 10 +- .../IoTDBDefaultPatternPullConsumerDataSetIT.java | 10 +- .../IoTDBDevicePatternPullConsumeTsfileIT.java | 10 +- .../IoTDBDevicePatternPullConsumerDataSetIT.java | 10 +- ...DBMiddleMatch2PatternPullConsumerDataSetIT.java | 10 +- ...IoTDBMiddleMatchPatternPullConsumeTsfileIT.java | 11 +- ...TDBMiddleMatchPatternPullConsumerDataSetIT.java | 11 +- .../IoTDBRootPatternPullConsumeTsfileIT.java | 10 +- .../pattern/IoTDBTSPatternPullConsumeTsfileIT.java | 12 +- .../IoTDBTSPatternPullConsumerDataSetIT.java | 10 +- .../time/IoTDBAllPullConsumerDataSetIT.java | 10 +- .../time/IoTDBHistoryPullConsumerDataSetIT.java | 10 +- .../time/IoTDBRealTimePullConsumerDataSetIT.java | 10 +- ...oTDBTimeRangeAccuratePullConsumerDataSetIT.java | 11 +- .../time/IoTDBTimeRangePullConsumerDataSetIT.java | 10 +- .../format/IoTDBTestPushConsumeDataSetIT.java | 10 +- .../IoTDBTestPushConsumeNoTargetDirTsfileIT.java | 10 +- .../format/IoTDBTestPushConsumeTsfileIT.java | 10 +- .../IoTDBLooseAllTsDatasetPushConsumerIT.java | 10 +- ...TDBLooseAllTsDatasetPushConsumerSnapshotIT.java | 11 +- .../IoTDBLooseAllTsfilePushConsumerIT.java | 10 +- .../IoTDBPathLooseDeviceTsfilePushConsumerIT.java | 20 +- .../IoTDBPathLooseTsDatasetPushConsumerIT.java | 10 +- .../IoTDBPathLooseTsfilePushConsumerIT.java | 10 +- .../IoTDBPathTsLooseDatasetPushConsumerIT.java | 10 +- .../IoTDBTimeLooseTsDatasetPushConsumerIT.java | 10 +- .../IoTDBTimeLooseTsTsfilePushConsumerIT.java | 10 +- .../IoTDBTimeLooseTsfilePushConsumerIT.java | 20 +- .../IoTDBTimeTsLooseDatasetPushConsumerIT.java | 10 +- ...oTDBSnapshotTSPatternDatasetPushConsumerIT.java | 11 +- ...IoTDBSnapshotTSPatternTsfilePushConsumerIT.java | 11 +- ...DBConsumer2With1TopicShareProcessDataSetIT.java | 10 +- ...TDBConsumer2With1TopicShareProcessTsfileIT.java | 19 +- .../multi/IoTDBMultiGroupVsMultiConsumerIT.java | 10 +- .../IoTDBOneConsumerMultiTopicsDatasetIT.java | 10 +- .../multi/IoTDBOneConsumerMultiTopicsMixIT.java | 10 +- .../multi/IoTDBOneConsumerMultiTopicsTsfileIT.java | 10 +- .../IoTDBDBPatternDatasetPushConsumerIT.java | 10 +- .../IoTDBDBPatternTsfilePushConsumerIT.java | 10 +- .../IoTDBDefaultPatternTsfilePushConsumerIT.java | 10 +- .../IoTDBDevicePatternDatasetPushConsumerIT.java | 10 +- .../IoTDBDevicePatternTsfilePushConsumerIT.java | 10 +- .../IoTDBRootPatternDatasetPushConsumerIT.java | 10 +- .../IoTDBTSPatternDatasetPushConsumerIT.java | 10 +- .../IoTDBTSPatternTsfilePushConsumerIT.java | 14 +- .../IoTDBHistoryRootDatasetPushConsumerIT.java | 10 +- .../time/IoTDBHistoryRootTsFilePushConsumerIT.java | 10 +- .../time/IoTDBRealTimeDBDatasetPushConsumerIT.java | 10 +- .../time/IoTDBRealTimeDBTsfilePushConsumerIT.java | 18 +- ...DBTimeRangeAccurateDBDataSetPushConsumerIT.java | 10 +- .../IoTDBTimeRangeDBDataSetPushConsumerIT.java | 10 +- .../time/IoTDBTimeRangeDBTsfilePushConsumerIT.java | 32 +- .../topic/IoTDBDataSet1TopicConsumerSpecialIT.java | 10 +- .../regression/topic/IoTDBTestTopicNameIT.java | 10 +- .../regression/user/IoTDBOtherUserConsumerIT.java | 10 +- .../apache/iotdb/tools/it/ExportDataTestIT.java | 19 +- .../apache/iotdb/tools/it/ExportSchemaTestIT.java | 15 +- .../apache/iotdb/tools/it/ExportTsFileTestIT.java | 83 +- .../apache/iotdb/tools/it/ImportDataTestIT.java | 2 +- .../apache/iotdb/tools/it/ImportSchemaTestIT.java | 26 +- iotdb-api/external-api/pom.xml | 2 +- iotdb-api/pipe-api/pom.xml | 2 +- .../api/customizer/parameter/PipeParameters.java | 18 +- ...sensusRetryWithIncreasingIntervalException.java | 6 +- iotdb-api/pom.xml | 2 +- iotdb-api/trigger-api/pom.xml | 2 +- iotdb-api/udf-api/pom.xml | 2 +- ...Function.java => EmptyTableFunctionHandle.java} | 17 +- .../iotdb/udf/api/relational/TableFunction.java | 89 +- .../iotdb/udf/api/relational/access/Record.java | 2 + .../relational/table/MapTableFunctionHandle.java | 186 +++ .../relational/table/TableFunctionAnalysis.java | 130 ++ .../api/relational/table/TableFunctionHandle.java | 28 +- .../table/TableFunctionProcessorProvider.java | 43 + .../api/relational/table/argument/Argument.java | 44 +- .../relational/table/argument/DescribedSchema.java | 89 ++ .../relational/table/argument/ScalarArgument.java | 155 ++ .../table/argument/ScalarArgumentChecker.java | 23 +- .../relational/table/argument/TableArgument.java | 177 +++ .../processor/TableFunctionDataProcessor.java | 68 + .../processor/TableFunctionLeafProcessor.java | 27 +- .../specification/ParameterSpecification.java | 77 + .../ScalarParameterSpecification.java | 95 ++ .../specification/TableParameterSpecification.java | 98 ++ .../java/org/apache/iotdb/udf/api/type/Type.java | 38 + iotdb-client/cli/pom.xml | 22 +- iotdb-client/cli/src/assembly/cli.xml | 10 + .../src/assembly/resources/tools/load-tsfile.bat | 50 - .../src/assembly/resources/tools/load-tsfile.sh | 60 - .../java/org/apache/iotdb/cli/AbstractCli.java | 55 +- .../src/main/java/org/apache/iotdb/cli/Cli.java | 1 + .../org/apache/iotdb/cli/utils/JlineUtils.java | 16 + .../org/apache/iotdb/tool/common/Constants.java | 53 +- .../org/apache/iotdb/tool/common/OptionsUtil.java | 216 ++- .../apache/iotdb/tool/data/AbstractDataTool.java | 18 +- .../apache/iotdb/tool/data/AbstractImportData.java | 12 +- .../org/apache/iotdb/tool/data/ExportData.java | 16 +- .../apache/iotdb/tool/data/ExportDataTable.java | 192 +-- .../org/apache/iotdb/tool/data/ExportDataTree.java | 187 +-- .../org/apache/iotdb/tool/data/ImportData.java | 8 +- .../apache/iotdb/tool/data/ImportDataTable.java | 32 +- .../org/apache/iotdb/tool/data/ImportDataTree.java | 57 +- .../iotdb/tool/schema/AbstractExportSchema.java | 17 +- .../iotdb/tool/schema/AbstractImportSchema.java | 94 ++ .../iotdb/tool/schema/AbstractSchemaTool.java | 120 +- .../org/apache/iotdb/tool/schema/ExportSchema.java | 323 +--- .../iotdb/tool/schema/ExportSchemaTable.java | 293 ++++ .../apache/iotdb/tool/schema/ExportSchemaTree.java | 116 ++ .../org/apache/iotdb/tool/schema/ImportSchema.java | 613 +------- .../iotdb/tool/schema/ImportSchemaTable.java | 188 +++ .../{ImportSchema.java => ImportSchemaTree.java} | 417 ++---- .../org/apache/iotdb/tool/tsfile/ExportTsFile.java | 5 + .../iotdb/tool/tsfile/ImportTsFileRemotely.java | 6 +- .../subscription/AbstractSubscriptionTsFile.java | 1 + .../subscription/SubscriptionTableTsFile.java | 28 +- .../subscription/SubscriptionTreeTsFile.java | 29 +- iotdb-client/client-cpp/pom.xml | 28 +- .../client-cpp/src/main/AbstractSessionBuilder.h | 3 + iotdb-client/client-cpp/src/main/NodesSupplier.cpp | 221 +++ iotdb-client/client-cpp/src/main/NodesSupplier.h | 137 ++ iotdb-client/client-cpp/src/main/Session.cpp | 181 ++- iotdb-client/client-cpp/src/main/Session.h | 71 +- .../client-cpp/src/main/SessionConnection.cpp | 256 ++++ .../client-cpp/src/main/SessionConnection.h | 81 + .../client-cpp/src/main/ThriftConnection.cpp | 158 ++ .../client-cpp/src/main/ThriftConnection.h | 68 + iotdb-client/client-py/README.md | 4 +- iotdb-client/client-py/iotdb/Session.py | 342 ++--- iotdb-client/client-py/iotdb/SessionPool.py | 4 +- .../client-py/iotdb/template/MeasurementNode.py | 2 +- iotdb-client/client-py/iotdb/template/Template.py | 6 +- .../{TsFileConstant.py => tsfile_constant.py} | 0 .../tsfile/utils/{DateUtils.py => date_utils.py} | 0 .../iotdb/tsfile/utils/{Pair.py => pair.py} | 0 ...{ReadWriteIOUtils.py => read_write_io_utils.py} | 0 .../client-py/iotdb/tsfile/utils/tsblock_serde.py | 266 ++++ iotdb-client/client-py/iotdb/utils/Field.py | 35 +- .../client-py/iotdb/utils/IoTDBRpcDataSet.py | 463 ------ iotdb-client/client-py/iotdb/utils/NumpyTablet.py | 2 +- .../client-py/iotdb/utils/SessionDataSet.py | 67 +- iotdb-client/client-py/iotdb/utils/Tablet.py | 2 +- .../{IoTDBConnectionException.py => exception.py} | 20 + .../client-py/iotdb/utils/iotdb_rpc_dataset.py | 406 +++++ iotdb-client/client-py/iotdb/utils/rpc_utils.py | 110 ++ iotdb-client/client-py/pom.xml | 19 +- iotdb-client/client-py/requirements.txt | 1 + iotdb-client/client-py/resources/pyproject.toml | 8 +- .../session_aligned_timeseries_example.py | 4 +- iotdb-client/client-py/session_example.py | 4 +- iotdb-client/client-py/session_pool_example.py | 2 +- iotdb-client/client-py/session_ssl_example.py | 4 +- .../client-py/table_model_session_example.py | 4 +- .../integration/tablet_performance_comparison.py | 4 +- .../tests/integration/test_new_data_types.py | 12 +- .../tests/integration/test_tablemodel_query.py | 476 ++++++ iotdb-client/isession/pom.xml | 8 +- .../org/apache/iotdb/isession/SessionDataSet.java | 18 + iotdb-client/jdbc/pom.xml | 8 +- .../iotdb/jdbc/IoTDBAbstractDatabaseMetadata.java | 108 +- .../org/apache/iotdb/jdbc/IoTDBConnection.java | 39 +- .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 85 +- .../java/org/apache/iotdb/jdbc/IoTDBStatement.java | 136 +- .../IoTDBRelationalDatabaseMetadata.java | 296 +++- iotdb-client/pom.xml | 2 +- iotdb-client/service-rpc/pom.xml | 6 +- .../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java | 17 +- .../java/org/apache/iotdb/rpc/TSStatusCode.java | 4 + .../rpc/subscription/annotation/TableModel.java | 18 +- .../rpc/subscription/config/ConsumerConfig.java | 8 + .../subscription/payload/poll/ErrorPayload.java | 4 + .../subscription/payload/poll/FileSealPayload.java | 27 +- .../subscription/payload/poll/TabletsPayload.java | 41 +- .../response/PipeSubscribeHeartbeatResp.java | 48 +- iotdb-client/session/pom.xml | 10 +- .../java/org/apache/iotdb/session/Session.java | 4 + .../apache/iotdb/session/SessionConnection.java | 148 +- .../iotdb/session/pool/TableSessionWrapper.java | 28 +- .../SubscriptionSessionConnection.java | 32 - .../base/AbstractSubscriptionConsumer.java | 68 +- .../base/AbstractSubscriptionConsumerBuilder.java | 20 - .../base/AbstractSubscriptionProvider.java | 13 +- .../base/AbstractSubscriptionProviders.java | 6 +- .../SubscriptionTablePullConsumerBuilder.java | 3 +- .../SubscriptionTablePushConsumerBuilder.java | 3 +- .../tree/SubscriptionTreePullConsumerBuilder.java | 3 +- .../tree/SubscriptionTreePushConsumerBuilder.java | 3 +- .../payload/SubscriptionFileHandler.java | 7 - .../subscription/payload/SubscriptionMessage.java | 29 +- .../payload/SubscriptionMessageHandler.java | 7 +- .../payload/SubscriptionSessionDataSet.java | 96 +- .../SubscriptionSessionDataSetsHandler.java | 56 +- .../payload/SubscriptionTsFileHandler.java | 14 +- .../iotdb/session/SessionCacheLeaderTest.java | 2 +- iotdb-core/ainode/.gitignore | 4 +- iotdb-core/ainode/ainode.xml | 27 + .../ainode/model => ainode/TimerXL}/__init__.py | 2 +- .../ainode/ainode/TimerXL/layers/Attn_Bias.py | 95 ++ .../ainode/TimerXL/layers/Attn_Projection.py | 123 ++ iotdb-core/ainode/ainode/TimerXL/layers/Embed.py | 261 ++++ .../ainode/TimerXL/layers/SelfAttention_Family.py | 167 +++ .../ainode/TimerXL/layers/Transformer_EncDec.py | 328 +++++ .../model => ainode/TimerXL/layers}/__init__.py | 2 +- .../model => ainode/TimerXL/models}/__init__.py | 2 +- .../ainode/TimerXL/models/configuration_timer.py | 60 + .../ainode/ainode/TimerXL/models/timer_xl.py | 395 +++++ iotdb-core/ainode/{iotdb => ainode}/__init__.py | 0 .../{iotdb/ainode => ainode/core}/__init__.py | 0 .../ainode/{iotdb/ainode => ainode/core}/client.py | 42 +- .../ainode/{iotdb/ainode => ainode/core}/config.py | 22 +- .../{iotdb/ainode => ainode/core}/constant.py | 18 + .../{iotdb/ainode => ainode/core}/exception.py | 2 +- .../{iotdb/ainode => ainode/core}/handler.py | 22 +- .../ainode/{iotdb/ainode => ainode/core}/log.py | 4 +- .../ainode => ainode/core}/manager/__init__.py | 0 .../core}/manager/cluster_manager.py | 4 +- .../core}/manager/inference_manager.py | 147 +- .../core}/manager/model_manager.py | 16 +- .../ainode => ainode/core}/model/__init__.py | 0 .../core}/model/built_in_model_factory.py | 92 +- .../ainode => ainode/core}/model/model_factory.py | 10 +- .../ainode => ainode/core}/model/model_storage.py | 15 +- .../ainode/{iotdb/ainode => ainode/core}/script.py | 16 +- .../{iotdb/ainode => ainode/core}/service.py | 8 +- .../{iotdb/ainode => ainode/core}/util/__init__.py | 0 iotdb-core/ainode/ainode/core/util/activation.py | 51 + .../ainode => ainode/core}/util/decorator.py | 0 .../ainode/ainode/core/util/huggingface_cache.py | 202 +++ .../{iotdb/ainode => ainode/core}/util/lock.py | 0 iotdb-core/ainode/ainode/core/util/masking.py | 81 + .../{iotdb/ainode => ainode/core}/util/serde.py | 6 +- .../{iotdb/ainode => ainode/core}/util/status.py | 6 +- iotdb-core/ainode/poetry.lock | 149 +- iotdb-core/ainode/pom.xml | 18 +- iotdb-core/ainode/pyproject.toml | 24 +- iotdb-core/antlr/pom.xml | 2 +- .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 69 + .../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 | 24 + iotdb-core/confignode/pom.xml | 30 +- iotdb-core/confignode/src/assembly/confignode.xml | 28 +- .../confignode/client/CnToCnNodeRequestType.java | 2 +- .../client/async/CnToDnAsyncRequestType.java | 3 + .../CnToDnInternalServiceAsyncRequestManager.java | 18 + .../rpc/DataNodeAsyncRequestRPCHandler.java | 21 + .../rpc/TreeDeviceViewFieldDetectionHandler.java} | 56 +- .../client/sync/SyncConfigNodeClientPool.java | 6 +- .../iotdb/confignode/conf/ConfigNodeConfig.java | 58 +- .../confignode/conf/ConfigNodeDescriptor.java | 30 + .../consensus/request/ConfigPhysicalPlan.java | 76 +- .../consensus/request/ConfigPhysicalPlanType.java | 17 +- .../request/ConfigPhysicalPlanVisitor.java | 91 +- .../request/read/database/GetDatabasePlan.java | 9 +- .../request/write/model/UpdateModelInfoPlan.java | 4 + ...blePlan.java => PipeCreateTableOrViewPlan.java} | 10 +- .../write/pipe/payload/PipeDeleteDevicesPlan.java | 44 +- .../request/write/table/AbstractTablePlan.java | 15 +- .../request/write/table/AddTableColumnPlan.java | 15 +- .../write/table/CommitDeleteColumnPlan.java | 14 +- .../request/write/table/CommitDeleteTablePlan.java | 11 +- .../request/write/table/PreDeleteColumnPlan.java | 14 +- .../request/write/table/PreDeleteTablePlan.java | 11 +- .../request/write/table/RenameTableColumnPlan.java | 15 +- ...meTableColumnPlan.java => RenameTablePlan.java} | 26 +- ...iesPlan.java => SetTableColumnCommentPlan.java} | 28 +- ...ropertiesPlan.java => SetTableCommentPlan.java} | 31 +- .../write/table/SetTablePropertiesPlan.java | 14 +- .../AddTableViewColumnPlan.java} | 20 +- .../CommitDeleteViewColumnPlan.java} | 13 +- .../CommitDeleteViewPlan.java} | 15 +- .../PreCreateTableViewPlan.java} | 33 +- .../PreDeleteViewColumnPlan.java} | 13 +- .../PreDeleteViewPlan.java} | 15 +- .../RenameViewColumnPlan.java} | 15 +- .../RenameViewPlan.java} | 15 +- .../SetViewCommentPlan.java} | 14 +- .../SetViewPropertiesPlan.java} | 15 +- .../iotdb/confignode/manager/ClusterManager.java | 12 +- .../iotdb/confignode/manager/ConfigManager.java | 158 +- .../apache/iotdb/confignode/manager/IManager.java | 3 + .../iotdb/confignode/manager/ModelManager.java | 51 +- .../confignode/manager/PermissionManager.java | 6 + .../iotdb/confignode/manager/ProcedureManager.java | 218 ++- .../iotdb/confignode/manager/TTLManager.java | 9 +- .../iotdb/confignode/manager/load/LoadManager.java | 10 +- .../manager/load/balancer/PartitionBalancer.java | 8 +- .../region/GreedyCopySetRegionGroupAllocator.java | 356 ++++- .../region/GreedyRegionGroupAllocator.java | 13 + .../balancer/region/IRegionGroupAllocator.java | 21 + .../PartiteGraphPlacementRegionGroupAllocator.java | 13 + .../manager/load/cache/AbstractLoadCache.java | 26 +- .../manager/load/cache/IFailureDetector.java} | 31 +- .../confignode/manager/load/cache/LoadCache.java | 29 +- .../manager/load/cache/detector/FixedDetector.java | 58 + .../load/cache/detector/PhiAccrualDetector.java | 192 +++ .../load/cache/node/AINodeHeartbeatCache.java | 42 +- .../load/cache/node/ConfigNodeHeartbeatCache.java | 30 +- .../load/cache/node/DataNodeHeartbeatCache.java | 40 +- .../manager/load/cache/region/RegionCache.java | 37 +- .../load/cache/region/RegionGroupCache.java | 15 +- .../manager/load/service/EventService.java | 11 +- .../manager/load/service/HeartbeatService.java | 20 + .../manager/load/service/StatisticsService.java | 4 +- .../manager/load/service/TopologyService.java | 319 ++++ .../load/subscriber/IClusterStatusSubscriber.java | 6 +- .../load/subscriber/NodeStatisticsChangeEvent.java | 3 +- .../iotdb/confignode/manager/node/NodeManager.java | 70 +- .../manager/partition/PartitionManager.java | 67 +- .../pipe/agent/task/PipeConfigNodeSubtask.java | 2 +- .../pipe/agent/task/PipeConfigNodeTaskAgent.java | 4 +- .../runtime/PipeLeaderChangeHandler.java | 12 - .../runtime/PipeRuntimeCoordinator.java | 12 - .../pipe/event/PipeConfigRegionSnapshotEvent.java | 16 +- .../pipe/event/PipeConfigRegionWritePlanEvent.java | 26 +- .../extractor/ConfigRegionListeningFilter.java | 22 +- .../pipe/extractor/ConfigRegionListeningQueue.java | 26 +- .../pipe/extractor/IoTDBConfigRegionExtractor.java | 113 +- ...ConfigPhysicalPlanTablePatternParseVisitor.java | 79 +- ...nfigPhysicalPlanTablePrivilegeParseVisitor.java | 389 +++++ ...eConfigPhysicalPlanTreePatternParseVisitor.java | 2 +- .../manager/pipe/metric/PipeConfigNodeMetrics.java | 9 + .../PipeConfigNodeRemainingTimeMetrics.java | 2 +- .../PipeConfigNodeRemainingTimeOperator.java | 2 +- .../PipeConfigNodeResourceMetrics.java | 2 +- .../{ => overview}/PipeProcedureMetrics.java | 2 +- .../metric/{ => overview}/PipeTaskInfoMetrics.java | 2 +- .../PipeTemporaryMetaInCoordinatorMetrics.java | 2 +- .../PipeConfigNodeReceiverMetrics.java | 2 +- .../PipeConfigRegionConnectorMetrics.java | 2 +- .../PipeConfigNodeListenerMetrics.java | 2 +- .../PipeConfigRegionExtractorMetrics.java | 2 +- .../receiver/protocol/IoTDBConfigNodeReceiver.java | 356 ++++- .../PipeConfigPhysicalPlanTSStatusVisitor.java | 54 +- .../resource/PipeConfigNodeResourceManager.java | 1 + .../PipeConfigNodeSnapshotResourceManager.java | 2 +- .../manager/schema/ClusterSchemaManager.java | 273 +++- .../iotdb/confignode/persistence/AuthorInfo.java | 4 + .../iotdb/confignode/persistence/TTLInfo.java | 2 +- .../persistence/executor/ConfigPlanExecutor.java | 31 +- .../confignode/persistence/node/NodeInfo.java | 7 + .../confignode/persistence/pipe/PipeInfo.java | 2 +- .../persistence/pipe/PipePluginInfo.java | 51 +- .../schema/CNPhysicalPlanGenerator.java | 4 +- .../persistence/schema/ClusterSchemaInfo.java | 332 +++-- .../confignode/persistence/schema/ConfigMTree.java | 134 +- .../schema/TreeDeviceViewFieldDetector.java | 254 ++++ .../schema/mnode/info/ConfigTableInfo.java | 6 + .../procedure/PartitionTableAutoCleaner.java | 21 +- .../procedure/TimeoutExecutorThread.java | 2 +- .../procedure/env/ConfigNodeProcedureEnv.java | 85 +- .../procedure/env/RegionMaintainHandler.java | 8 - .../procedure/env/RemoveDataNodeHandler.java | 186 +++ .../procedure/impl/StateMachineProcedure.java | 11 +- .../impl/node/RemoveConfigNodeProcedure.java | 8 +- .../impl/node/RemoveDataNodesProcedure.java | 6 +- .../impl/pipe/AbstractOperatePipeProcedureV2.java | 2 +- .../impl/pipe/task/AlterPipeProcedureV2.java | 67 +- .../impl/pipe/task/CreatePipeProcedureV2.java | 97 ++ .../impl/region/CreateRegionGroupsProcedure.java | 35 +- .../region/NotifyRegionMigrationProcedure.java | 137 ++ .../impl/region/ReconstructRegionProcedure.java | 33 - .../impl/region/RegionMigrateProcedure.java | 43 +- .../impl/schema/DeleteDatabaseProcedure.java | 4 +- .../impl/schema/UnsetTemplateProcedure.java | 100 +- .../table/AbstractAlterOrDropTableProcedure.java | 5 +- .../impl/schema/table/AddTableColumnProcedure.java | 27 +- .../impl/schema/table/CreateTableProcedure.java | 22 +- .../impl/schema/table/DeleteDevicesProcedure.java | 2 +- .../schema/table/DropTableColumnProcedure.java | 33 +- .../impl/schema/table/DropTableProcedure.java | 30 +- .../schema/table/RenameTableColumnProcedure.java | 45 +- ...umnProcedure.java => RenameTableProcedure.java} | 120 +- .../schema/table/SetTablePropertiesProcedure.java | 24 +- .../schema/table/view/AddViewColumnProcedure.java | 98 ++ .../table/view/CreateTableViewProcedure.java | 191 +++ .../schema/table/view/DropViewColumnProcedure.java | 55 + .../impl/schema/table/view/DropViewProcedure.java} | 29 +- .../table/view/RenameViewColumnProcedure.java | 56 + .../schema/table/view/RenameViewProcedure.java | 55 + .../table/view/SetViewPropertiesProcedure.java | 56 + .../consumer/CreateConsumerProcedure.java | 4 +- .../subscription/CreateSubscriptionProcedure.java | 21 +- ...eState.java => NotifyRegionMigrationState.java} | 6 +- .../procedure/state/RemoveConfigNodeState.java | 2 +- .../state/schema/RenameTableColumnState.java | 3 +- ...TableColumnState.java => RenameTableState.java} | 5 +- .../procedure/store/ProcedureFactory.java | 80 + .../confignode/procedure/store/ProcedureType.java | 19 + .../thrift/ConfigNodeRPCServiceProcessor.java | 119 +- .../request/ConfigPhysicalPlanSerDeTest.java | 235 ++- .../GreedyCopySetRemoveNodeReplicaSelectTest.java | 342 +++++ .../manager/load/cache/RegionGroupCacheTest.java | 19 +- .../manager/load/cache/detector/DetectorTest.java | 180 +++ ...igPhysicalPlanTablePatternParseVisitorTest.java | 110 +- ...figPhysicalPlanTreePatternParseVisitorTest.java | 2 +- .../persistence/schema/ClusterSchemaInfoTest.java | 5 +- .../pipe/receiver/PipeEnrichedProcedureTest.java | 204 +++ .../schema/table/CreateTableViewProcedureTest.java | 75 + .../schema/table/RenameTableProcedureTest.java | 52 + .../table/view/AddViewColumnProcedureTest.java | 62 + .../table/view/CreateTableViewProcedureTest.java | 76 + .../table/view/DropViewColumnProcedureTest.java | 53 + .../schema/table/view/DropViewProcedureTest.java | 52 + .../table/view/RenameViewColumnProcedureTest.java | 53 + .../schema/table/view/RenameViewProcedureTest.java | 52 + .../table/view/SetViewPropertiesProcedureTest.java | 64 + iotdb-core/consensus/pom.xml | 14 +- .../iotdb/consensus/config/IoTConsensusConfig.java | 30 +- .../consensus/config/PipeConsensusConfig.java | 28 - .../apache/iotdb/consensus/iot/IoTConsensus.java | 8 +- .../consensus/iot/IoTConsensusServerImpl.java | 44 +- .../consensus/iot/client/DispatchLogHandler.java | 27 +- .../logdispatcher/IoTConsensusMemoryManager.java | 50 +- .../apache/iotdb/consensus/pipe/PipeConsensus.java | 86 +- .../consensus/pipe/PipeConsensusServerImpl.java | 4 +- .../pipe/consensuspipe/ConsensusPipeManager.java | 8 +- .../pipe/consensuspipe/ConsensusPipeReceiver.java | 3 +- .../pipe/metric/PipeConsensusSyncLagManager.java | 6 +- .../apache/iotdb/consensus/iot/StabilityTest.java | 49 +- iotdb-core/datanode/pom.xml | 42 +- iotdb-core/datanode/src/assembly/server.xml | 44 +- .../ArithmeticBinaryColumnTransformer.ftl | 11 + .../org/apache/iotdb/db/auth/AuthorityChecker.java | 11 +- .../apache/iotdb/db/conf/DataNodeMemoryConfig.java | 692 +++++++++ .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 432 +----- .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 403 ++--- .../db/consensus/DataRegionConsensusImpl.java | 15 +- .../schemaregion/SchemaExecutionVisitor.java | 15 + .../iotdb/db/exception/ainode/ModelException.java | 11 +- .../db/exception/runtime/IntoProcessException.java | 17 +- .../agent/runtime/PipeDataNodeRuntimeAgent.java | 6 + .../runtime/PipeSchemaRegionListenerManager.java | 2 +- .../db/pipe/agent/task/PipeDataNodeTaskAgent.java | 128 +- .../agent/task/builder/PipeDataNodeBuilder.java | 4 +- .../task/builder/PipeDataNodeTaskBuilder.java | 51 +- .../pipe/agent/task/connection/EnrichedDeque.java | 2 +- .../agent/task/connection/PipeEventCollector.java | 49 +- .../agent/task/stage/PipeTaskProcessorStage.java | 7 +- .../subtask/connector/PipeConnectorSubtask.java | 46 +- .../connector/PipeConnectorSubtaskManager.java | 3 +- .../PipeRealtimePriorityBlockingQueue.java | 64 +- .../subtask/processor/PipeProcessorSubtask.java | 22 +- .../client/IoTDBDataNodeAsyncClientManager.java | 6 +- .../IoTDBDataNodeCacheLeaderClientManager.java | 14 +- .../evolvable/batch/PipeTabletEventBatch.java | 12 +- .../evolvable/batch/PipeTabletEventPlainBatch.java | 4 - .../batch/PipeTabletEventTsFileBatch.java | 18 +- .../batch/PipeTransferBatchReqBuilder.java | 65 +- .../request/PipeTransferSchemaSnapshotSealReq.java | 5 +- .../airgap/IoTDBDataRegionAirGapConnector.java | 10 + .../connector/protocol/opcda/OpcDaConnector.java | 8 +- .../protocol/opcda/OpcDaServerHandle.java | 9 +- .../connector/protocol/opcua/OpcUaNameSpace.java | 21 +- .../pipeconsensus/PipeConsensusAsyncConnector.java | 5 +- .../pipeconsensus/PipeConsensusSyncConnector.java | 8 +- .../PipeConsensusTsFileInsertionEventHandler.java | 27 +- .../PipeConsensusTransferBatchReqBuilder.java | 20 +- .../async/IoTDBDataRegionAsyncConnector.java | 266 ++-- .../PipeTransferTabletBatchEventHandler.java | 7 +- .../async/handler/PipeTransferTsFileHandler.java | 84 +- .../thrift/sync/IoTDBDataRegionSyncConnector.java | 14 + .../thrift/sync/IoTDBSchemaRegionConnector.java | 8 +- .../protocol/writeback/WriteBackConnector.java | 96 +- ...ilder.java => PipeTableModelTsFileBuilder.java} | 159 +- .../builder/PipeTableModelTsFileBuilderV2.java | 259 ++++ .../util/builder/PipeTreeModelTsFileBuilder.java | 68 +- .../util/builder/PipeTreeModelTsFileBuilderV2.java | 198 +++ .../connector/util/builder/PipeTsFileBuilder.java | 24 +- .../sorter/PipeTableModelTabletEventSorter.java | 12 +- .../consensus/ConsensusPipeDataNodeDispatcher.java | 3 - .../ReplicateProgressDataNodeManager.java | 3 +- .../pipe/consensus/deletion/DeletionResource.java | 6 + .../deletion/DeletionResourceManager.java | 15 + .../deletion/persist/PageCacheDeletionBuffer.java | 45 +- .../db/pipe/event/UserDefinedEnrichedEvent.java | 14 +- .../db/pipe/event/common/PipeInsertionEvent.java | 17 +- .../common/deletion/PipeDeleteDataNodeEvent.java | 31 +- .../event/common/heartbeat/PipeHeartbeatEvent.java | 19 +- .../schema/PipeSchemaRegionSnapshotEvent.java | 20 +- .../schema/PipeSchemaRegionWritePlanEvent.java | 18 +- .../tablet/PipeInsertNodeTabletInsertionEvent.java | 136 +- .../common/tablet/PipeRawTabletInsertionEvent.java | 57 +- .../tablet/parser/TabletInsertionEventParser.java | 34 +- .../event/common/terminate/PipeTerminateEvent.java | 64 +- .../common/tsfile/PipeTsFileInsertionEvent.java | 134 +- .../tsfile/parser/TsFileInsertionEventParser.java | 23 + .../parser/TsFileInsertionEventParserProvider.java | 81 +- .../query/TsFileInsertionEventQueryParser.java | 19 +- .../scan/TsFileInsertionEventScanParser.java | 26 +- .../table/TsFileInsertionEventTableParser.java | 38 +- ...ileInsertionEventTableParserTabletIterator.java | 169 ++- .../db/pipe/event/realtime/PipeRealtimeEvent.java | 28 +- .../event/realtime/PipeRealtimeEventFactory.java | 27 +- .../dataregion/IoTDBDataRegionExtractor.java | 8 +- ...oricalDataRegionTsFileAndDeletionExtractor.java | 49 +- .../realtime/PipeRealtimeDataRegionExtractor.java | 22 +- .../PipeRealtimeDataRegionHybridExtractor.java | 26 +- .../realtime/assigner/PipeDataRegionAssigner.java | 21 +- .../dataregion/realtime/epoch/TsFileEpoch.java | 2 +- .../realtime/epoch/TsFileEpochManager.java | 8 +- .../listener/PipeInsertionDataNodeListener.java | 14 +- .../matcher/CachedSchemaPatternMatcher.java | 40 +- .../realtime/matcher/PipeDataRegionMatcher.java | 3 + .../schemaregion/IoTDBSchemaRegionExtractor.java | 82 +- .../PipePlanTablePrivilegeParseVisitor.java | 81 + .../schemaregion/PipeStatementToPlanVisitor.java | 48 + .../schemaregion/SchemaRegionListeningFilter.java | 15 + .../iotdb/db/pipe/metric/PipeDataNodeMetrics.java | 15 + .../PipeDataNodeRemainingEventAndTimeMetrics.java | 2 +- .../PipeDataNodeRemainingEventAndTimeOperator.java | 2 +- .../{ => overview}/PipeHeartbeatEventMetrics.java | 2 +- .../metric/{ => overview}/PipeResourceMetrics.java | 4 +- .../overview/PipeTsFileToTabletsMetrics.java | 170 +++ .../PipeWALInsertNodeCacheMetrics.java | 2 +- .../{ => processor}/PipeProcessorMetrics.java | 2 +- .../PipeDataNodeReceiverMetrics.java | 2 +- .../PipeSchemaRegionConnectorMetrics.java | 2 +- .../PipeSchemaRegionExtractorMetrics.java | 2 +- .../PipeSchemaRegionListenerMetrics.java | 2 +- .../{ => sink}/PipeDataRegionConnectorMetrics.java | 118 +- .../metric/{ => source}/PipeAssignerMetrics.java | 2 +- .../{ => source}/PipeDataRegionEventCounter.java | 2 +- .../PipeDataRegionExtractorMetrics.java | 2 +- .../standardstatistics/MaxValueOperator.java | 54 + .../standardstatistics/MinValueOperator.java | 54 + .../sametype/numeric/AbsoluteMaxOperator.java | 16 +- .../{AbsoluteMaxOperator.java => MaxOperator.java} | 32 +- .../{AbsoluteMaxOperator.java => MinOperator.java} | 36 +- .../StandardStatisticsOperatorProcessor.java | 10 +- .../pipe/processor/twostage/combiner/Combiner.java | 5 +- .../pipeconsensus/PipeConsensusReceiver.java | 568 ++++--- .../pipeconsensus/PipeConsensusReceiverAgent.java | 73 +- .../protocol/thrift/IoTDBDataNodeReceiver.java | 184 +-- .../visitor/PipePlanToStatementVisitor.java | 4 +- .../visitor/PipeStatementExceptionVisitor.java | 5 + ...leStatementDataTypeConvertExecutionVisitor.java | 1 + .../resource/memory/InsertNodeMemoryEstimator.java | 323 +--- .../db/pipe/resource/memory/PipeMemoryBlock.java | 2 +- .../db/pipe/resource/memory/PipeMemoryManager.java | 184 +-- .../pipe/resource/memory/PipeMemoryWeightUtil.java | 3 +- .../pipe/resource/tsfile/PipeTsFileResource.java | 20 +- .../resource/tsfile/PipeTsFileResourceManager.java | 4 +- .../iotdb/db/protocol/client/ConfigNodeClient.java | 25 +- .../db/protocol/client/DataNodeInternalClient.java | 8 +- .../client/dn/AsyncTSStatusRPCHandler.java | 25 +- .../client/dn/DataNodeAsyncRequestRPCHandler.java | 20 +- .../client/dn/DataNodeIntraHeartbeatManager.java | 59 + .../iotdb/db/protocol/mqtt/MPPPublishHandler.java | 45 +- .../rest/table/v1/handler/ExceptionHandler.java | 4 + .../table/v1/handler/ExecuteStatementHandler.java | 25 +- .../table/v1/handler/RequestValidationHandler.java | 8 - .../v1/handler/StatementConstructionHandler.java | 6 +- .../rest/table/v1/impl/RestApiServiceImpl.java | 11 +- .../protocol/rest/v1/handler/ExceptionHandler.java | 4 + .../rest/v1/handler/ExecuteStatementHandler.java | 2 + .../rest/v1/handler/QueryDataSetHandler.java | 2 + .../protocol/rest/v1/impl/RestApiServiceImpl.java | 46 +- .../protocol/rest/v2/handler/ExceptionHandler.java | 4 + .../rest/v2/handler/ExecuteStatementHandler.java | 2 + .../rest/v2/handler/QueryDataSetHandler.java | 2 + .../protocol/rest/v2/impl/RestApiServiceImpl.java | 46 +- .../iotdb/db/protocol/session/IClientSession.java | 6 + .../protocol/thrift/impl/ClientRPCServiceImpl.java | 240 +-- .../impl/DataNodeInternalRPCServiceImpl.java | 226 ++- .../common/header/DatasetHeaderFactory.java | 8 + .../execution/aggregation/UDAFAccumulator.java | 2 +- .../db/queryengine/execution/driver/Driver.java | 15 +- .../execution/exchange/SharedTsBlockQueue.java | 13 +- .../execution/exchange/sink/ISinkChannel.java | 2 + .../execution/exchange/sink/LocalSinkChannel.java | 21 +- .../execution/exchange/sink/ShuffleSinkHandle.java | 5 +- .../execution/exchange/sink/SinkChannel.java | 5 +- .../exchange/source/LocalSourceHandle.java | 12 +- .../execution/exchange/source/SourceHandle.java | 2 +- .../execution/executor/RegionReadExecutor.java | 17 +- .../execution/executor/RegionWriteExecutor.java | 112 +- .../fragment/FragmentInstanceContext.java | 112 +- .../fragment/FragmentInstanceExecution.java | 18 +- .../fragment/FragmentInstanceManager.java | 24 +- .../execution/fragment/QueryStatistics.java | 10 + .../execution/memory/LocalMemoryManager.java | 5 +- .../queryengine/execution/memory/MemoryPool.java | 42 +- .../execution/operator/AbstractOperator.java | 5 +- .../operator/process/AbstractIntoOperator.java | 6 +- .../operator/process/AssignUniqueIdOperator.java | 2 +- .../operator/process/CollectOperator.java | 7 + .../operator/process/EnforceSingleRowOperator.java | 2 +- .../operator/process/FilterAndProjectOperator.java | 15 + .../execution/operator/process/LimitOperator.java | 6 + .../execution/operator/process/OffsetOperator.java | 6 + .../operator/process/TransformOperator.java | 2 +- .../operator/process/ai/InferenceOperator.java | 42 +- .../process/function/PartitionRecognizer.java | 207 +++ .../function/TableFunctionLeafOperator.java | 111 ++ .../process/function/TableFunctionOperator.java | 293 ++++ .../process/function/partition/PartitionCache.java | 112 ++ .../process/function/partition/PartitionState.java | 62 + .../operator/process/function/partition/Slice.java | 204 +++ .../process/join/LeftOuterTimeJoinOperator.java | 15 +- .../join/SimpleNestedLoopCrossJoinOperator.java | 2 +- .../join/TableLeftOuterTimeJoinOperator.java | 55 + .../AscLongTypeIgnoreEqualJoinKeyComparator.java | 95 ++ .../DescLongTypeIgnoreEqualJoinKeyComparator.java | 95 ++ .../merge/comparator/JoinKeyComparatorFactory.java | 20 + .../process/window/TableWindowOperator.java | 2 +- .../operator/schema/SchemaQueryScanOperator.java | 12 +- .../schema/source/DeviceAttributeUpdater.java | 17 +- .../schema/source/DeviceBlackListConstructor.java | 18 +- .../schema/source/DevicePredicateFilter.java | 11 +- .../schema/source/DevicePredicateHandler.java | 33 +- .../operator/schema/source/DeviceUpdater.java | 13 +- .../operator/schema/source/ISchemaSource.java | 5 + .../schema/source/SchemaSourceFactory.java | 16 +- .../schema/source/TableDeviceFetchSource.java | 21 + .../schema/source/TableDeviceQuerySource.java | 209 ++- .../operator/sink/ShuffleHelperOperator.java | 2 +- .../relational/AbstractAggTableScanOperator.java | 28 +- .../AbstractDefaultAggTableScanOperator.java | 2 +- .../relational/AbstractMergeSortJoinOperator.java | 4 +- .../relational/AbstractTableScanOperator.java | 56 +- .../relational/AsofMergeSortInnerJoinOperator.java | 237 +++ .../relational/DeviceIteratorScanOperator.java | 233 +++ .../InformationSchemaContentSupplierFactory.java | 357 ++++- .../relational/LastQueryAggTableScanOperator.java | 18 +- .../MeasurementToTableViewAdaptorUtils.java | 103 ++ .../TreeToTableViewAdaptorOperator.java} | 104 +- .../relational/aggregation/AccumulatorFactory.java | 7 +- .../ApproxCountDistinctAccumulator.java | 265 ++++ .../relational/aggregation/AvgAccumulator.java | 8 +- .../relational/aggregation/CountAccumulator.java | 4 +- .../aggregation/CountAllAccumulator.java | 4 +- .../relational/aggregation/ExtremeAccumulator.java | 2 +- .../relational/aggregation/FirstAccumulator.java | 12 +- .../relational/aggregation/FirstByAccumulator.java | 17 +- .../source/relational/aggregation/HyperLogLog.java | 246 ++++ .../aggregation/HyperLogLogStateFactory.java | 88 ++ .../relational/aggregation/LastAccumulator.java | 12 +- .../relational/aggregation/LastByAccumulator.java | 17 +- .../relational/aggregation/MaxAccumulator.java | 12 +- .../relational/aggregation/MinAccumulator.java | 12 +- .../relational/aggregation/SumAccumulator.java | 8 +- .../relational/aggregation/TableAggregator.java | 9 +- .../aggregation/TableMaxMinByBaseAccumulator.java | 9 +- .../aggregation/TableVarianceAccumulator.java | 4 +- .../aggregation/grouped/GroupedAggregator.java | 4 +- .../GroupedApproxCountDistinctAccumulator.java | 314 ++++ .../aggregation/grouped/GroupedAvgAccumulator.java | 8 +- .../grouped/GroupedExtremeAccumulator.java | 17 +- .../grouped/GroupedFirstAccumulator.java | 32 +- .../grouped/GroupedFirstByAccumulator.java | 24 +- .../grouped/GroupedLastAccumulator.java | 42 +- .../grouped/GroupedLastByAccumulator.java | 26 +- .../aggregation/grouped/GroupedMaxAccumulator.java | 16 +- .../grouped/GroupedMaxMinByBaseAccumulator.java | 34 +- .../aggregation/grouped/GroupedMinAccumulator.java | 16 +- .../grouped/GroupedModeAccumulator.java | 6 +- .../aggregation/grouped/GroupedSumAccumulator.java | 5 +- .../grouped/GroupedVarianceAccumulator.java | 4 +- .../grouped/StreamingAggregationOperator.java | 32 +- .../grouped/StreamingHashAggregationOperator.java | 35 +- .../aggregation/grouped/array/BinaryBigArray.java | 4 - .../grouped/array/HyperLogLogBigArray.java | 84 ++ .../aggregation/grouped/array/MapBigArray.java | 4 - .../aggregation/grouped/array/ObjectBigArray.java | 12 +- .../aggregation/grouped/hash/HashStrategy.java | 2 +- .../relational/ColumnTransformerBuilder.java | 4 +- .../execution/schedule/AbstractDriverThread.java | 27 +- .../execution/schedule/DriverScheduler.java | 8 +- .../metric/SeriesScanCostMetricSet.java | 40 +- .../iotdb/db/queryengine/plan/ClusterTopology.java | 179 +++ .../iotdb/db/queryengine/plan/Coordinator.java | 20 +- .../db/queryengine/plan/analyze/AnalyzeUtils.java | 2 - .../queryengine/plan/analyze/AnalyzeVisitor.java | 55 +- .../plan/analyze/ClusterPartitionFetcher.java | 80 +- .../db/queryengine/plan/analyze/IModelFetcher.java | 4 + .../db/queryengine/plan/analyze/ModelFetcher.java | 26 + .../analyze/cache/partition/PartitionCache.java | 324 ++-- .../cache/schema/DataNodeDevicePathCache.java | 23 +- .../analyze/cache/schema/DataNodeTTLCache.java | 2 +- .../cache/schema/dualkeycache/IDualKeyCache.java | 28 +- .../dualkeycache/impl/CacheEntryGroupImpl.java | 57 +- .../cache/schema/dualkeycache/impl/CacheStats.java | 47 +- .../schema/dualkeycache/impl/DualKeyCacheImpl.java | 525 +++---- .../schema/dualkeycache/impl/ICacheEntryGroup.java | 13 +- .../plan/analyze/load/LoadTsFileAnalyzer.java | 363 +++-- .../analyze/load/LoadTsFileTableSchemaCache.java | 108 +- .../analyze/load/LoadTsFileTreeSchemaCache.java | 10 +- .../load/TreeSchemaAutoCreatorAndVerifier.java | 7 +- .../analyze/lock/DataNodeSchemaLockManager.java | 1 + .../plan/analyze/lock/SchemaLockType.java | 15 +- .../analyze/schema/AutoCreateSchemaExecutor.java | 34 +- .../analyze/schema/ClusterSchemaFetchExecutor.java | 21 +- .../plan/analyze/schema/ClusterSchemaFetcher.java | 7 +- .../plan/analyze/schema/SchemaValidator.java | 2 +- .../plan/analyze/schema/TemplateSchemaFetcher.java | 11 +- .../queryengine/plan/execution/QueryExecution.java | 9 +- .../plan/execution/config/ConfigExecution.java | 29 +- .../execution/config/TableConfigTaskVisitor.java | 423 +++++- .../execution/config/TreeConfigTaskVisitor.java | 73 +- .../config/executor/ClusterConfigTaskExecutor.java | 373 ++++- .../config/executor/IConfigTaskExecutor.java | 74 +- .../config/metadata/CreatePipePluginTask.java | 2 + .../config/metadata/ShowFunctionsTask.java | 16 +- .../metadata/{model => ai}/CreateModelTask.java | 2 +- .../config/metadata/ai/CreateTrainingTask.java | 108 ++ .../metadata/{model => ai}/DropModelTask.java | 2 +- .../metadata/{model => ai}/ShowModelsTask.java | 10 +- .../relational/AbstractAlterOrDropTableTask.java | 5 +- .../relational/AlterTableAddColumnTask.java | 7 +- ...nTask.java => AlterTableCommentColumnTask.java} | 15 +- ...leTask.java => AlterTableCommentTableTask.java} | 20 +- .../relational/AlterTableDropColumnTask.java | 7 +- .../relational/AlterTableRenameColumnTask.java | 7 +- .../relational/AlterTableRenameTableTask.java | 7 +- .../relational/AlterTableSetPropertiesTask.java | 7 +- .../metadata/relational/CreateTableTask.java | 6 +- ...DropTableTask.java => CreateTableViewTask.java} | 13 +- .../relational/DescribeTableDetailsTask.java | 12 +- .../metadata/relational/DescribeTableTask.java | 2 +- .../config/metadata/relational/DropTableTask.java | 7 +- .../metadata/relational/ShowCreateTableTask.java | 149 ++ .../metadata/relational/ShowCreateViewTask.java | 146 ++ .../metadata/relational/ShowTablesDetailsTask.java | 17 + .../execution/config/sys/pipe/AlterPipeTask.java | 3 +- .../execution/config/sys/pipe/ShowPipeTask.java | 2 +- .../expression/binary/CompareBinaryExpression.java | 24 + .../plan/expression/multi/FunctionExpression.java | 2 +- .../predicate/ConvertPredicateToFilterVisitor.java | 4 +- .../ConvertPredicateToTimeFilterVisitor.java | 3 +- .../db/queryengine/plan/parser/ASTVisitor.java | 204 ++- .../plan/parser/StatementGenerator.java | 6 +- .../plan/planner/LocalExecutionPlanContext.java | 3 +- .../plan/planner/LocalExecutionPlanner.java | 137 +- .../plan/planner/LogicalPlanBuilder.java | 1 + .../plan/planner/LogicalPlanVisitor.java | 2 +- .../plan/planner/OperatorTreeGenerator.java | 1 + .../plan/planner/TableOperatorGenerator.java | 808 ++++++++-- .../queryengine/plan/planner/TreeModelPlanner.java | 2 - .../SimpleFragmentParallelPlanner.java | 121 +- .../distribution/WriteFragmentParallelPlanner.java | 10 +- .../ReplicaSetUnreachableException.java} | 21 +- .../exceptions/RootFIPlacementException.java} | 25 +- .../plan/AbstractFragmentParallelPlanner.java | 168 +++ .../plan/planner/plan/FragmentInstance.java | 2 +- .../plan/planner/plan/PlanFragment.java | 22 +- .../plan/planner/plan/node/PlanGraphPrinter.java | 62 +- .../plan/planner/plan/node/PlanNodeType.java | 13 +- .../plan/planner/plan/node/PlanVisitor.java | 15 + .../plan/node/metadata/write/MeasurementGroup.java | 25 +- .../metadata/write/view/AlterLogicalViewNode.java | 2 +- .../plan/node/process/AI/InferenceNode.java | 18 +- .../plan/planner/plan/node/write/InsertNode.java | 3 +- .../planner/plan/node/write/InsertTabletNode.java | 6 +- .../plan/node/write/RelationalInsertRowNode.java | 5 - .../node/write/RelationalInsertTabletNode.java | 14 +- .../plan/parameter/AggregationDescriptor.java | 2 +- .../plan/relational/analyzer/Analysis.java | 27 +- .../relational/analyzer/ExpressionAnalyzer.java | 8 +- .../relational/analyzer/ExpressionTreeUtils.java | 2 +- .../relational/analyzer/StatementAnalyzer.java | 1553 +++++++++++++++++++- .../analyzer/StatementAnalyzerFactory.java | 4 + .../predicate/ConvertPredicateToFilterVisitor.java | 2 +- .../ConvertSchemaPredicateToFilterVisitor.java | 4 +- .../analyzer/tablefunction/ArgumentAnalysis.java} | 32 +- .../analyzer/tablefunction/ArgumentsAnalysis.java | 52 + .../tablefunction/TableArgumentAnalysis.java | 152 ++ .../TableFunctionInvocationAnalysis.java | 83 ++ .../plan/relational/function/FunctionId.java | 2 + .../function/TableBuiltinTableFunction.java | 88 ++ .../function/tvf/ForecastTableFunction.java | 642 ++++++++ .../relational/metadata/AlignedDeviceEntry.java | 20 +- .../plan/relational/metadata/ColumnSchema.java | 17 +- .../plan/relational/metadata/DeviceEntry.java | 28 +- .../plan/relational/metadata/Metadata.java | 6 +- ...DeviceEntry.java => NonAlignedDeviceEntry.java} | 24 +- .../plan/relational/metadata/ResolvedFunction.java | 1 - .../relational/metadata/TableMetadataImpl.java | 77 +- .../plan/relational/metadata/TableSchema.java | 60 +- .../relational/metadata/TreeDeviceViewSchema.java | 26 +- .../fetcher/DeviceInCacheFilterVisitor.java | 17 +- .../metadata/fetcher/SchemaPredicateUtil.java | 30 +- .../metadata/fetcher/TableDeviceSchemaFetcher.java | 307 ++-- .../fetcher/TableDeviceSchemaValidator.java | 6 +- .../fetcher/TableHeaderSchemaValidator.java | 75 +- .../fetcher/cache/TableAttributeSchema.java | 6 +- .../fetcher/cache/TableDeviceLastCache.java | 5 +- .../fetcher/cache/TableDeviceSchemaCache.java | 43 +- .../planner/DataOrganizationSpecification.java | 106 ++ .../plan/relational/planner/QueryPlanner.java | 20 + .../plan/relational/planner/RelationPlanner.java | 297 +++- .../plan/relational/planner/SymbolAllocator.java | 4 + .../relational/planner/TableLogicalPlanner.java | 73 +- .../plan/relational/planner/TableModelPlanner.java | 9 - .../planner/distribute/AddExchangeNodes.java | 36 +- .../distribute/TableDistributedPlanGenerator.java | 436 +++++- .../distribute/TableDistributedPlanner.java | 12 +- .../distribute/TableModelQueryFragmentPlanner.java | 170 +-- .../TableModelTypeProviderExtractor.java | 7 + .../plan/relational/planner/ir/IrUtils.java | 20 +- .../rule/ImplementTableFunctionSource.java | 135 ++ .../iterative/rule/PruneExplainAnalyzeColumns.java | 49 + .../iterative/rule/PruneJoinChildrenColumns.java | 10 + .../planner/iterative/rule/PruneJoinColumns.java | 1 + .../rule/PruneTableFunctionProcessorColumns.java | 88 ++ .../PruneTableFunctionProcessorSourceColumns.java | 98 ++ .../iterative/rule/SimplifyCountOverConstant.java | 145 ++ .../rule/SingleDistinctAggregationToGroupBy.java | 3 +- ...orrelatedDistinctAggregationWithProjection.java | 1 + ...elatedDistinctAggregationWithoutProjection.java | 1 + ...mCorrelatedGlobalAggregationWithProjection.java | 1 + ...rrelatedGlobalAggregationWithoutProjection.java | 1 + ...CorrelatedGroupedAggregationWithProjection.java | 1 + ...relatedGroupedAggregationWithoutProjection.java | 1 + .../rule/TransformCorrelatedJoinToJoin.java | 1 + .../TransformFilteringSemiJoinToInnerJoin.java | 1 + .../rule/TransformUncorrelatedSubqueryToJoin.java | 1 + .../planner/node/AggregationTableScanNode.java | 11 +- .../planner/node/DeviceTableScanNode.java | 3 +- .../plan/relational/planner/node/ExchangeNode.java | 6 +- .../planner/node/ExplainAnalyzeNode.java | 20 +- .../plan/relational/planner/node/GroupNode.java | 104 ++ .../plan/relational/planner/node/JoinNode.java | 161 +- .../plan/relational/planner/node/OutputNode.java | 2 + .../plan/relational/planner/node/Patterns.java | 17 +- .../relational/planner/node/TableFunctionNode.java | 371 +++++ .../planner/node/TableFunctionProcessorNode.java | 295 ++++ .../planner/node/TreeDeviceViewScanNode.java | 4 + .../node/schema/AbstractTableDeviceQueryNode.java | 82 +- .../schema/TableDeviceAttributeUpdateNode.java | 52 +- .../node/schema/TableDeviceQueryCountNode.java | 12 +- .../node/schema/TableDeviceQueryScanNode.java | 27 +- .../DataNodeLocationSupplierFactory.java | 5 + .../optimizations/LogicalOptimizeFactory.java | 16 +- .../planner/optimizations/ParallelizeGrouping.java | 266 ++++ .../PushLimitOffsetIntoTableScan.java | 17 + .../optimizations/PushPredicateIntoTableScan.java | 79 +- .../planner/optimizations/SymbolMapper.java | 7 + .../TransformAggregationToStreamable.java | 55 +- ...mQuantifiedComparisonApplyToCorrelatedJoin.java | 13 +- .../optimizations/TransformSortToStreamSort.java | 6 + .../optimizations/UnaliasSymbolReferences.java | 146 +- .../relational/planner/optimizations/Util.java | 2 +- .../plan/relational/security/AccessControl.java | 18 +- .../relational/security/AccessControlImpl.java | 87 +- .../relational/security/AllowAllAccessControl.java | 13 +- .../relational/security/ITableAuthChecker.java | 3 + .../relational/security/ITableAuthCheckerImpl.java | 18 + .../relational/security/TableModelPrivilege.java | 5 - .../sql/ast/AbstractQueryDeviceWithCache.java | 50 +- .../relational/sql/ast/AbstractTraverseDevice.java | 52 +- .../plan/relational/sql/ast/AddColumn.java | 28 +- .../plan/relational/sql/ast/AsofJoinOn.java | 163 ++ .../plan/relational/sql/ast/AstVisitor.java | 45 + .../plan/relational/sql/ast/ColumnDefinition.java | 39 +- .../sql/ast/{DescribeTable.java => Columns.java} | 54 +- .../plan/relational/sql/ast/CreateTable.java | 12 +- .../plan/relational/sql/ast/CreateTableView.java | 95 ++ .../plan/relational/sql/ast/CreateTraining.java | 156 ++ .../sql/ast/DefaultTraversalVisitor.java | 17 +- .../plan/relational/sql/ast/DeleteDevice.java | 38 +- .../plan/relational/sql/ast/DescribeTable.java | 27 +- .../plan/relational/sql/ast/DropColumn.java | 15 +- .../plan/relational/sql/ast/DropTable.java | 17 +- .../plan/relational/sql/ast/Expression.java | 3 + .../plan/relational/sql/ast/JoinOn.java | 11 +- .../plan/relational/sql/ast/LoadTsFile.java | 91 +- .../plan/relational/sql/ast/RenameColumn.java | 19 +- .../plan/relational/sql/ast/RenameTable.java | 29 +- .../queryengine/plan/relational/sql/ast/Row.java | 33 + .../ast/{DropColumn.java => SetColumnComment.java} | 26 +- .../plan/relational/sql/ast/SetProperties.java | 15 +- .../{DescribeTable.java => SetTableComment.java} | 71 +- .../plan/relational/sql/ast/ShowDevice.java | 32 +- .../sql/ast/{JoinOn.java => ShowModels.java} | 50 +- .../relational/sql/ast/ShowQueriesStatement.java | 27 +- .../plan/relational/sql/ast/ShowRegions.java | 43 +- .../plan/relational/sql/ast/SingleColumn.java | 21 + .../relational/sql/ast/TableExpressionType.java | 3 +- .../relational/sql/ast/TableFunctionArgument.java | 92 ++ .../sql/ast/TableFunctionInvocation.java | 92 ++ .../sql/ast/TableFunctionTableArgument.java | 119 ++ .../queryengine/plan/relational/sql/ast/Trim.java | 2 +- .../relational/sql/ast/ViewFieldDefinition.java | 68 + .../plan/relational/sql/parser/AstBuilder.java | 602 +++++++- .../plan/relational/sql/rewrite/ShowRewrite.java | 26 +- .../sql/rewrite/StatementRewriteFactory.java | 6 +- .../plan/relational/sql/util/AstUtil.java | 22 + .../relational/sql/util/ExpressionFormatter.java | 6 + .../relational/sql/util/ReservedIdentifiers.java | 4 +- .../plan/relational/sql/util/SqlFormatter.java | 174 ++- .../plan/scheduler/AsyncPlanNodeSender.java | 21 +- .../plan/scheduler/AsyncSendPlanNodeHandler.java | 2 +- .../plan/scheduler/ClusterScheduler.java | 5 - .../FailedFragmentInstanceWithStatus.java} | 24 +- .../scheduler/FragmentInstanceDispatcherImpl.java | 297 ++-- .../scheduler/load/LoadTsFileDispatcherImpl.java | 11 +- .../plan/scheduler/load/LoadTsFileScheduler.java | 118 +- .../plan/statement/StatementVisitor.java | 5 + .../plan/statement/crud/DeleteDataStatement.java | 3 +- .../plan/statement/crud/InsertBaseStatement.java | 48 +- .../crud/InsertMultiTabletsStatement.java | 16 + .../plan/statement/crud/InsertRowStatement.java | 13 + .../crud/InsertRowsOfOneDeviceStatement.java | 16 + .../plan/statement/crud/InsertRowsStatement.java | 16 + .../plan/statement/crud/InsertStatement.java | 2 +- .../plan/statement/crud/InsertTabletStatement.java | 18 + .../plan/statement/crud/LoadTsFileStatement.java | 90 +- .../plan/statement/crud/QueryStatement.java | 9 + .../InternalBatchActivateTemplateStatement.java | 3 +- .../InternalCreateMultiTimeSeriesStatement.java | 2 +- .../InternalCreateTimeSeriesStatement.java | 2 +- .../metadata/AlterTimeSeriesStatement.java | 3 +- .../metadata/CreateAlignedTimeSeriesStatement.java | 2 +- .../metadata/CreateMultiTimeSeriesStatement.java | 2 +- .../metadata/CreateTimeSeriesStatement.java | 3 +- .../metadata/DeleteTimeSeriesStatement.java | 3 +- .../plan/statement/metadata/SetTTLStatement.java | 3 +- .../statement/metadata/ShowRegionStatement.java | 29 +- .../metadata/model/CreateTrainingStatement.java | 140 ++ .../metadata/pipe/AlterPipeStatement.java | 9 + .../metadata/pipe/CreatePipePluginStatement.java | 10 + .../template/ActivateTemplateStatement.java | 3 +- .../template/BatchActivateTemplateStatement.java | 3 +- .../template/DeactivateTemplateStatement.java | 3 +- .../metadata/view/AlterLogicalViewStatement.java | 6 +- .../metadata/view/CreateLogicalViewStatement.java | 6 +- .../metadata/view/CreateTableViewStatement.java} | 24 +- .../metadata/view/DeleteLogicalViewStatement.java | 3 +- .../metadata/view/RenameLogicalViewStatement.java | 2 +- .../db/queryengine/plan/udf}/TableUDFUtils.java | 3 +- .../db/queryengine/plan/udf}/TreeUDFUtils.java | 3 +- .../plan/udf}/UDFManagementService.java | 10 +- .../dag/column/leaf/ConstantColumnTransformer.java | 2 +- .../multi/BooleanGreatestColumnTransformer.java | 2 +- .../multi/BooleanLeastColumnTransformer.java | 2 +- .../unary/scalar/FormatColumnTransformer.java | 4 +- .../dag/udf/UDAFInformationInferrer.java | 2 +- .../transformation/dag/udf/UDTFExecutor.java | 2 +- .../dag/udf/UDTFInformationInferrer.java | 2 +- .../apache/iotdb/db/schemaengine/SchemaEngine.java | 4 +- .../metric/SchemaEngineCachedMetric.java | 5 +- .../rescon/ISchemaRegionStatistics.java | 2 + .../rescon/MemSchemaEngineStatistics.java | 41 +- .../rescon/MemSchemaRegionStatistics.java | 16 + .../attribute/DeviceAttributeStore.java | 48 +- .../attribute/IDeviceAttributeStore.java | 16 +- .../update/DeviceAttributeCacheUpdater.java | 2 +- .../GeneralRegionAttributeSecurityService.java | 169 +-- .../attribute/update/UpdateDetailContainer.java | 2 +- .../schemaregion/impl/SchemaRegionMemoryImpl.java | 81 +- .../mtree/impl/mem/MTreeBelowSGMemoryImpl.java | 2 +- .../ReleaseFlushStrategySizeBasedImpl.java | 6 +- .../read/resp/info/impl/ShowDevicesResult.java | 18 +- .../read/resp/info/impl/TimeseriesSchemaInfo.java | 10 +- .../schemaengine/schemaregion/tag/TagManager.java | 20 +- .../schemaregion/utils/ResourceByPathUtils.java | 12 +- .../utils/filter/DeviceFilterVisitor.java | 4 +- .../db/schemaengine/table/DataNodeTableCache.java | 46 +- .../table/DataNodeTreeViewSchemaUtils.java | 53 + .../schemaengine/table/InformationSchemaUtils.java | 12 + .../template/TemplateInternalRPCUpdateType.java | 4 +- .../java/org/apache/iotdb/db/service/DataNode.java | 2 +- .../iotdb/db/service/RegionMigrateService.java | 67 + .../db/service/metrics/CompactionMetrics.java | 2 +- .../iotdb/db/service/metrics/FileMetrics.java | 10 + .../iotdb/db/service/metrics/WritingMetrics.java | 40 +- .../db/service/metrics/file/ModsFileMetrics.java | 4 +- .../metrics/memory/ConsensusMemoryMetrics.java | 50 +- .../metrics/memory/GlobalMemoryMetrics.java | 82 +- .../metrics/memory/OffHeapMemoryMetrics.java | 102 ++ .../metrics/memory/QueryEngineMemoryMetrics.java | 281 ++-- .../metrics/memory/SchemaEngineMemoryMetrics.java | 159 +- .../metrics/memory/StorageEngineMemoryMetrics.java | 467 ++++-- .../metrics/memory/StreamEngineMemoryMetrics.java | 50 +- .../iotdb/db/storageengine/StorageEngine.java | 2 + .../db/storageengine/buffer/BloomFilterCache.java | 27 +- .../iotdb/db/storageengine/buffer/ChunkCache.java | 27 +- .../buffer/TimeSeriesMetadataCache.java | 50 +- .../db/storageengine/dataregion/DataRegion.java | 122 +- .../storageengine/dataregion/DataRegionInfo.java | 6 +- .../dataregion/VirtualDataRegion.java | 2 +- .../performer/ICrossCompactionPerformer.java | 6 + ...rformer.java => IInnerCompactionPerformer.java} | 11 +- .../execute/performer/ISeqCompactionPerformer.java | 2 +- .../performer/IUnseqCompactionPerformer.java | 2 +- .../performer/impl/FastCompactionPerformer.java | 15 + .../impl/ReadChunkCompactionPerformer.java | 8 + .../impl/ReadPointCompactionPerformer.java | 8 + .../execute/task/AbstractCompactionTask.java | 13 + .../execute/task/CrossSpaceCompactionTask.java | 2 +- .../execute/task/InnerSpaceCompactionTask.java | 20 +- .../task/InsertionCrossSpaceCompactionTask.java | 10 +- .../task/RepairUnsortedFileCompactionTask.java | 2 +- .../execute/utils/CompactionPathUtils.java | 20 +- .../execute/utils/CompactionTableSchema.java | 2 +- .../compaction/execute/utils/CompactionUtils.java | 12 +- .../execute/utils/MultiTsFileDeviceIterator.java | 15 +- .../fast/FastAlignedSeriesCompactionExecutor.java | 8 +- .../FastNonAlignedSeriesCompactionExecutor.java | 5 +- .../executor/fast/SeriesCompactionExecutor.java | 7 +- .../ReadChunkAlignedSeriesCompactionExecutor.java | 5 +- .../writer/AbstractCrossCompactionWriter.java | 25 +- .../utils/writer/FastCrossCompactionWriter.java | 12 + .../compaction/io/CompactionTsFileWriter.java | 2 +- .../compaction/repair/RepairDataFileScanUtil.java | 6 +- .../compaction/schedule/CompactionScheduler.java | 16 +- .../estimator/AbstractCompactionEstimator.java | 124 +- .../estimator/AbstractCrossSpaceEstimator.java | 6 +- .../estimator/AbstractInnerSpaceEstimator.java | 5 +- .../estimator/CompactionEstimateUtils.java | 91 +- .../selector/estimator/CompactionTaskInfo.java | 6 - ...taInfo.java => CompactionTaskMetadataInfo.java} | 12 +- .../FastCompactionInnerCompactionEstimator.java | 44 +- .../FastCrossSpaceCompactionEstimator.java | 29 +- .../compaction/selector/estimator/FileInfo.java | 39 +- .../ReadChunkInnerCompactionEstimator.java | 25 +- .../RepairUnsortedFileCompactionEstimator.java | 21 +- .../impl/NewSizeTieredCompactionSelector.java | 76 +- .../impl/RewriteCrossSpaceCompactionSelector.java | 2 +- .../selector/impl/SettleSelectorImpl.java | 106 +- .../dataregion/flush/MemTableFlushTask.java | 25 +- .../dataregion/memtable/AbstractMemTable.java | 14 +- .../memtable/AbstractWritableMemChunk.java | 219 +++ .../memtable/AlignedReadOnlyMemChunk.java | 408 ++--- .../memtable/AlignedWritableMemChunk.java | 355 ++--- .../memtable/AlignedWritableMemChunkGroup.java | 5 - .../dataregion/memtable/IMemTable.java | 2 - .../dataregion/memtable/IWritableMemChunk.java | 34 +- .../memtable/IWritableMemChunkGroup.java | 2 - .../dataregion/memtable/ReadOnlyMemChunk.java | 175 ++- .../dataregion/memtable/TsFileProcessor.java | 105 +- .../dataregion/memtable/WritableMemChunk.java | 434 ++---- .../dataregion/memtable/WritableMemChunkGroup.java | 8 - .../dataregion/modification/TreeDeletionEntry.java | 6 +- .../read/reader/chunk/MemAlignedChunkReader.java | 226 +-- .../read/reader/chunk/MemAlignedPageReader.java | 22 +- .../read/reader/chunk/MemChunkReader.java | 111 +- .../read/reader/chunk/MemPageReader.java | 23 +- .../dataregion/tsfile/TsFileResource.java | 78 +- .../dataregion/tsfile/TsFileResourceBlockType.java | 3 + .../tsfile/timeindex/ArrayDeviceTimeIndex.java | 15 +- .../dataregion/tsfile/timeindex/FileTimeIndex.java | 2 +- .../storageengine/dataregion/wal/WALManager.java | 5 +- .../dataregion/wal/buffer/IWALBuffer.java | 10 + .../dataregion/wal/buffer/WALBuffer.java | 22 +- .../dataregion/wal/io/WALInputStream.java | 2 + .../storageengine/dataregion/wal/node/WALNode.java | 8 +- .../wal/recover/file/TsFilePlanRedoer.java | 27 +- .../wal/utils/MemoryControlledWALEntryQueue.java | 23 +- .../dataregion/wal/utils/WALEntryHandler.java | 12 +- .../dataregion/wal/utils/WALEntryPosition.java | 4 +- .../dataregion/wal/utils/WALInsertNodeCache.java | 22 +- .../load/active/ActiveLoadTsFileLoader.java | 102 +- .../load/config/LoadTsFileConfigurator.java | 34 + ...ertedInsertTabletStatementExceptionVisitor.java | 5 + ...vertedInsertTabletStatementTSStatusVisitor.java | 7 + ...leStatementDataTypeConvertExecutionVisitor.java | 16 +- ...eeStatementDataTypeConvertExecutionVisitor.java | 200 ++- .../storageengine/load/disk/ILoadDiskSelector.java | 66 + .../InheritSystemMultiDisksStrategySelector.java | 58 + .../db/storageengine/load/disk/MinIOSelector.java | 112 ++ .../memory/LoadTsFileDataCacheMemoryBlock.java | 4 +- ...MemoryBlock.java => LoadTsFileMemoryBlock.java} | 15 +- .../load/memory/LoadTsFileMemoryManager.java | 38 +- .../load/metrics/LoadTsFileCostMetricsSet.java | 43 +- .../load/metrics/LoadTsFileMemMetricSet.java | 6 +- .../db/storageengine/rescon/disk/TierManager.java | 2 +- .../rescon/memory/PrimitiveArrayManager.java | 23 +- .../db/storageengine/rescon/memory/SystemInfo.java | 187 +-- .../rescon/memory/TimePartitionManager.java | 31 +- .../rescon/memory/TsFileResourceManager.java | 40 +- .../agent/SubscriptionBrokerAgent.java | 29 +- .../broker/SubscriptionBlockingPendingQueue.java | 4 + .../db/subscription/broker/SubscriptionBroker.java | 44 +- .../broker/SubscriptionPrefetchingQueue.java | 60 +- .../broker/SubscriptionPrefetchingQueueStates.java | 2 +- .../broker/SubscriptionPrefetchingTabletQueue.java | 10 + .../broker/SubscriptionPrefetchingTsFileQueue.java | 13 + .../TsFileDeduplicationBlockingPendingQueue.java | 10 + .../db/subscription/event/SubscriptionEvent.java | 4 +- .../batch/SubscriptionPipeTabletEventBatch.java | 71 +- .../SubscriptionPipeTabletIterationSnapshot.java | 48 +- .../batch/SubscriptionPipeTsFileEventBatch.java | 10 +- .../event/cache/SubscriptionPollResponseCache.java | 4 +- .../pipe/SubscriptionPipeTsFileBatchEvents.java | 16 +- .../response/SubscriptionEventTabletResponse.java | 20 +- .../response/SubscriptionEventTsFileResponse.java | 9 +- .../receiver/SubscriptionReceiverV1.java | 76 +- .../SubscriptionDataNodeResourceManager.java} | 37 +- .../resource/log/SubscriptionLogManager.java} | 26 +- .../resource/log/SubscriptionLogStatus.java | 82 ++ .../SubscriptionConnectorSubtaskManager.java | 2 +- .../db/tools/schema/SRStatementGenerator.java | 33 +- .../org/apache/iotdb/db/utils/DateTimeUtils.java | 35 +- .../iotdb/db/utils/EncodingInferenceUtils.java | 1 + .../apache/iotdb/db/utils/ErrorHandlingUtils.java | 12 +- .../apache/iotdb/db/utils/ModificationUtils.java | 23 +- .../iotdb/db/utils/constant/SqlConstant.java | 2 + .../db/utils/datastructure/AlignedTVList.java | 663 +++++++-- .../db/utils/datastructure/BatchEncodeInfo.java | 60 + .../iotdb/db/utils/datastructure/BinaryTVList.java | 4 +- .../db/utils/datastructure/BooleanTVList.java | 4 +- .../iotdb/db/utils/datastructure/DoubleTVList.java | 4 +- .../datastructure/FixedPriorityBlockingQueue.java | 2 +- .../iotdb/db/utils/datastructure/FloatTVList.java | 4 +- .../iotdb/db/utils/datastructure/IntTVList.java | 4 +- .../iotdb/db/utils/datastructure/LongTVList.java | 4 +- .../datastructure/MemPointIterator.java} | 18 +- .../datastructure/MemPointIteratorFactory.java | 455 ++++++ .../MergeSortAlignedTVListIterator.java | 242 --- .../MergeSortMultiAlignedTVListIterator.java | 266 ++++ .../MergeSortMultiTVListIterator.java | 151 ++ .../datastructure/MergeSortTvListIterator.java | 162 -- .../datastructure/MultiAlignedTVListIterator.java | 238 +++ .../utils/datastructure/MultiTVListIterator.java | 177 +++ .../OrderedMultiAlignedTVListIterator.java | 133 ++ .../datastructure/OrderedMultiTVListIterator.java | 78 + .../iotdb/db/utils/datastructure/TVList.java | 346 ++++- .../cache/dualkeycache/DualKeyCacheTest.java | 171 --- .../SchemaRegionSimpleRecoverTest.java | 4 +- .../schemaRegion/SchemaRegionTableDeviceTest.java | 27 +- .../schemaRegion/SchemaRegionTestUtil.java | 7 +- .../pipe/connector/PipeTabletEventSorterTest.java | 21 +- .../db/pipe/consensus/DeletionResourceTest.java | 45 +- .../pipe/event/TsFileInsertionEventParserTest.java | 5 +- .../db/pipe/extractor/PipeRealtimeExtractTest.java | 5 + .../pattern/CachedSchemaPatternMatcherTest.java | 53 +- .../execution/exchange/LocalSinkChannelTest.java | 7 +- .../exchange/MPPDataExchangeManagerTest.java | 7 +- .../execution/exchange/SharedTsBlockQueueTest.java | 4 +- .../execution/exchange/ShuffleSinkHandleTest.java | 4 +- .../execution/exchange/SinkChannelTest.java | 7 +- .../execution/exchange/SourceHandleTest.java | 15 +- .../execution/memory/MemoryPoolTest.java | 6 +- .../operator/DeviceIteratorScanOperatorTest.java | 228 +++ ...nAlignedTreeDeviceViewScanOperatorTreeTest.java | 650 ++++++++ .../execution/operator/OperatorMemoryTest.java | 2 - .../TreeToTableViewAdaptorOperatorTest.java | 237 +++ .../process/tvf/TableFunctionOperatorTest.java | 304 ++++ .../plan/analyze/cache/PartitionCacheTest.java | 5 +- .../db/queryengine/plan/function/Exclude.java | 98 ++ .../iotdb/db/queryengine/plan/function/Repeat.java | 118 ++ .../iotdb/db/queryengine/plan/function/Split.java | 117 ++ .../plan/parser/StatementGeneratorTest.java | 11 +- .../analyzer/AggregationCornerCaseTest.java | 502 +++++++ .../plan/relational/analyzer/AggregationTest.java | 350 ++--- .../plan/relational/analyzer/AnalyzerTest.java | 160 +- .../analyzer/AsofInnerJoinOperatorTest.java | 665 +++++++++ .../plan/relational/analyzer/AsofJoinTest.java | 282 ++++ .../plan/relational/analyzer/AuthTest.java | 4 +- .../plan/relational/analyzer/DistinctTest.java | 48 +- .../relational/analyzer/ExplainAnalyzeTest.java | 43 + .../plan/relational/analyzer/JoinTest.java | 109 +- .../analyzer/LimitOffsetPushDownTest.java | 185 +-- .../analyzer/MockTableModelDataPartition.java | 63 +- .../plan/relational/analyzer/SortTest.java | 290 ++-- .../plan/relational/analyzer/SubQueryTest.java | 44 +- .../plan/relational/analyzer/TSBSMetadata.java | 77 +- .../relational/analyzer/TableFunctionTest.java | 335 +++++ .../{TestMatadata.java => TestMetadata.java} | 154 +- .../plan/relational/analyzer/TestUtils.java | 28 +- .../plan/relational/analyzer/TreeViewTest.java | 76 +- .../fetcher/cache/TableDeviceSchemaCacheTest.java | 21 +- .../plan/relational/planner/ExampleTest.java | 34 +- .../plan/relational/planner/PlanTester.java | 21 +- .../relational/planner/PredicateUtilsTest.java | 4 +- .../planner/UncorrelatedSubqueryTest.java | 164 +-- .../planner/assertions/AsofJoinClauseProvider.java | 55 + .../planner/assertions/ExchangeNodeMatcher.java | 8 +- .../relational/planner/assertions/JoinMatcher.java | 32 +- .../relational/planner/assertions/PlanAssert.java | 6 +- .../planner/assertions/PlanMatchPattern.java | 48 +- .../planner/assertions/PlanMatchingVisitor.java | 12 +- .../planner/assertions/SpecificationProvider.java | 79 + .../assertions/TableFunctionProcessorMatcher.java | 147 ++ .../relational/sql/parser/AuthorStatementTest.java | 5 - .../org/apache/iotdb/db/script/EnvScriptIT.java | 12 +- .../compaction/AbstractCompactionTest.java | 4 +- .../compaction/CompactionWithMinTimestampTest.java | 136 ++ .../compaction/CompactionWorkerTest.java | 16 +- .../FastCrossCompactionPerformerTest.java | 83 +- .../compaction/ReadChunkInnerCompactionTest.java | 70 + .../cross/CrossSpaceCompactionSelectorTest.java | 5 +- ...eCrossSpaceCompactionWithFastPerformerTest.java | 14 +- ...sSpaceCompactionWithReadPointPerformerTest.java | 12 - ...atchedAlignedSeriesReadChunkCompactionTest.java | 2 +- .../InnerSeqCompactionWithFastPerformerTest.java | 7 +- ...nerSeqCompactionWithReadChunkPerformerTest.java | 7 +- .../settle/SettleCompactionSelectorTest.java | 20 +- .../CompactionTableModelTestFileWriter.java | 16 +- .../CompactionTableSchemaCollectorTest.java | 2 +- .../compaction/utils/CompactionClearUtils.java | 2 +- .../utils/CompactionTaskMemCostEstimatorTest.java | 87 +- .../compaction/utils/CompactionTaskQueueTest.java | 13 +- .../dataregion/memtable/PrimitiveMemTableTest.java | 88 ++ .../dataregion/memtable/TsFileProcessorTest.java | 28 +- .../reader/chunk/AlignedMemPageReaderTest.java | 8 +- .../reader/chunk/MemAlignedChunkLoaderTest.java | 15 +- .../read/reader/chunk/MemChunkLoaderTest.java | 65 +- .../read/reader/chunk/MemPageReaderTest.java | 4 +- .../wal/compression/WALCompressionTest.java | 45 +- .../wal/recover/file/TsFilePlanRedoerTest.java | 69 + .../rescon/memory/ResourceManagerTest.java | 85 +- .../rescon/memory/TimePartitionManagerTest.java | 8 +- .../apache/iotdb/db/utils/EnvironmentUtils.java | 7 +- .../datastructure/PrimitiveArrayManagerTest.java | 8 +- iotdb-core/metrics/core/pom.xml | 4 +- iotdb-core/metrics/interface/pom.xml | 13 +- .../apache/iotdb/metrics/config/MetricConfig.java | 38 + .../metrics/config/MetricConfigDescriptor.java | 19 + .../reporter/prometheus/PrometheusReporter.java | 62 +- .../apache/iotdb/metrics/utils/FileStoreUtils.java | 2 +- iotdb-core/metrics/pom.xml | 2 +- iotdb-core/node-commons/pom.xml | 24 +- .../conf/iotdb-system.properties.template | 75 +- .../commons/auth/authorizer/BasicAuthorizer.java | 35 +- .../iotdb/commons/auth/authorizer/IAuthorizer.java | 10 +- .../iotdb/commons/auth/entity/PrivilegeType.java | 2 +- .../org/apache/iotdb/commons/auth/entity/Role.java | 4 + .../iotdb/commons/auth/user/BasicUserManager.java | 12 +- .../iotdb/commons/client/ClientPoolFactory.java | 1 + .../iotdb/commons/client/ainode/AINodeClient.java | 40 + .../container/PipeConsensusClientMgrContainer.java | 20 +- .../client/request/AsyncRequestManager.java | 10 +- .../DataNodeIntraHeartbeatRequestManager.java | 44 + .../client/request/TestConnectionUtils.java | 3 +- .../iotdb/commons/concurrent/ThreadName.java | 19 +- .../iotdb/commons/concurrent/WrappedRunnable.java | 4 +- .../apache/iotdb/commons/conf/CommonConfig.java | 632 +++++++- .../iotdb/commons/conf/CommonDescriptor.java | 449 +----- .../consensus/index/impl/HybridProgressIndex.java | 4 +- .../exception/QuerySchemaFetchFailedException.java | 19 +- .../commons/memory/AtomicLongMemoryBlock.java | 152 ++ .../apache/iotdb/commons/memory/IMemoryBlock.java | 135 ++ .../iotdb/commons/memory/MemoryBlockType.java} | 12 +- .../apache/iotdb/commons/memory/MemoryConfig.java | 28 +- .../iotdb/commons/memory/MemoryException.java} | 50 +- .../apache/iotdb/commons/memory/MemoryManager.java | 523 +++++++ .../iotdb/commons/model/ModelInformation.java | 20 + .../apache/iotdb/commons/model/ModelStatus.java | 1 + .../iotdb/commons/partition/ExecutorType.java | 8 +- .../iotdb/commons/partition/QueryExecutor.java | 8 +- .../iotdb/commons/partition/StorageExecutor.java | 10 +- .../iotdb/commons/path/ExtendedPartialPath.java | 14 +- .../apache/iotdb/commons/path/MeasurementPath.java | 4 + .../org/apache/iotdb/commons/path/PartialPath.java | 8 +- .../apache/iotdb/commons/path/PathPatternTree.java | 34 +- .../iotdb/commons/path/fa/nfa/SimpleNFA.java | 5 +- .../agent/plugin/builtin/BuiltinPipePlugin.java | 1 - .../commons/pipe/agent/task/PipeTaskAgent.java | 17 +- .../task/connection/BlockingPendingQueue.java | 17 +- .../agent/task/execution/PipeSubtaskScheduler.java | 15 +- .../pipe/agent/task/meta/PipeStaticMeta.java | 4 + .../agent/task/progress/PipeEventCommitter.java | 28 +- .../task/subtask/PipeAbstractConnectorSubtask.java | 4 +- .../agent/task/subtask/PipeReportableSubtask.java | 13 +- .../iotdb/commons/pipe/config/PipeConfig.java | 78 +- .../config/PipeDescriptor.java} | 763 ++++------ .../config/constant/PipeConnectorConstant.java | 7 + .../config/constant/PipeExtractorConstant.java | 12 + .../env/PipeTaskConnectorRuntimeEnvironment.java | 12 +- .../pipe/connector/protocol/IoTDBConnector.java | 65 +- .../options/PipeInclusionOptions.java | 117 +- .../pipe/datastructure/pattern/TablePattern.java | 2 + .../queue/ConcurrentIterableLinkedQueue.java | 30 + .../iotdb/commons/pipe/event/EnrichedEvent.java | 28 + .../commons/pipe/event/PipeSnapshotEvent.java | 4 + .../commons/pipe/event/PipeWritePlanEvent.java | 4 + .../commons/pipe/event/ProgressReportEvent.java | 25 +- .../commons/pipe/extractor/IoTDBExtractor.java | 63 +- .../extractor/IoTDBNonDataRegionExtractor.java | 74 +- .../commons/pipe/receiver/IoTDBFileReceiver.java | 47 +- .../pipe/receiver/PipeReceiverStatusHandler.java | 8 + .../schema/column/ColumnHeaderConstant.java | 37 +- .../iotdb/commons/schema/filter/SchemaFilter.java | 9 +- .../commons/schema/filter/SchemaFilterType.java | 4 +- .../commons/schema/filter/SchemaFilterVisitor.java | 8 +- .../schema/filter/impl/DeviceFilterUtil.java | 29 +- .../filter/impl/StringValueFilterVisitor.java | 4 +- .../filter/impl/singlechild/AttributeFilter.java | 4 +- .../singlechild/{IdFilter.java => TagFilter.java} | 16 +- .../table/AlterOrDropTableOperationType.java | 8 +- .../commons/schema/table/InformationSchema.java | 75 + .../commons/schema/table/TableNodeStatus.java | 14 + .../iotdb/commons/schema/table/TableType.java | 21 +- .../iotdb/commons/schema/table/TreeViewSchema.java | 97 ++ .../apache/iotdb/commons/schema/table/TsTable.java | 79 +- .../schema/table/column/FieldColumnSchema.java | 7 +- .../schema/table/column/TsTableColumnCategory.java | 22 +- .../schema/table/column/TsTableColumnSchema.java | 4 - .../apache/iotdb/commons/schema/ttl/TTLCache.java | 23 +- .../commons/schema/view/LogicalViewSchema.java | 13 +- .../multi/FunctionViewExpression.java | 14 + .../viewExpression/unary/LikeViewExpression.java | 84 +- .../AbstractPeriodicalServiceWithAdvance.java | 93 ++ .../service/AbstractThriftServiceThread.java | 20 +- .../apache/iotdb/commons/service/ServiceType.java | 1 + .../iotdb/commons/service/ThriftServiceThread.java | 2 - .../iotdb/commons/service/metric/enums/Metric.java | 12 + .../subscription/config/SubscriptionConfig.java | 33 + .../meta/consumer/ConsumerGroupMeta.java | 49 + .../subscription/meta/consumer/ConsumerMeta.java | 12 + .../commons/subscription/meta/topic/TopicMeta.java | 6 +- .../iotdb/commons/udf/access/RecordIterator.java | 141 +- .../TableBuiltinAggregationFunction.java | 2 + .../relational/tvf/CapacityTableFunction.java | 132 ++ .../relational/tvf/CumulateTableFunction.java | 176 +++ .../builtin/relational/tvf/HOPTableFunction.java | 170 +++ .../relational/tvf/SessionTableFunction.java | 155 ++ .../relational/tvf/TumbleTableFunction.java | 154 ++ .../relational/tvf/VariationTableFunction.java | 159 ++ .../udf/builtin/relational/tvf/WindowTVFUtils.java | 55 + .../org/apache/iotdb/commons/utils/FileUtils.java | 139 +- .../apache/iotdb/commons/utils/JVMCommonUtils.java | 2 +- .../org/apache/iotdb/commons/utils/RetryUtils.java | 8 + .../apache/iotdb/commons/utils/StatusUtils.java | 8 +- .../iotdb/commons/utils/TimePartitionUtils.java | 7 +- .../iotdb/commons/memory/MemoryBlockTest.java | 67 + .../iotdb/commons/memory/MemoryManagerTest.java | 171 +++ .../ConcurrentIterableLinkedQueueTest.java | 1 + .../schema/LikeViewExpreesionSerDeTest.java | 48 + .../commons/schema/SchemaFilterSerDeTest.java | 8 +- iotdb-core/pom.xml | 2 +- iotdb-core/relational-grammar/pom.xml | 2 +- .../db/relational/grammar/sql/RelationalSql.g4 | 174 ++- .../grammar/sql/RelationalSqlKeywords.java | 8 +- iotdb-doap.rdf | 16 + iotdb-protocol/openapi/pom.xml | 2 +- iotdb-protocol/pom.xml | 2 +- iotdb-protocol/thrift-ainode/pom.xml | 4 +- .../thrift-ainode/src/main/thrift/ainode.thrift | 30 + iotdb-protocol/thrift-commons/pom.xml | 2 +- .../thrift-commons/src/main/thrift/common.thrift | 4 +- iotdb-protocol/thrift-confignode/pom.xml | 4 +- .../src/main/thrift/confignode.thrift | 57 +- iotdb-protocol/thrift-consensus/pom.xml | 4 +- .../src/main/thrift/pipeconsensus.thrift | 3 +- iotdb-protocol/thrift-datanode/pom.xml | 4 +- .../src/main/thrift/datanode.thrift | 38 + library-udf/pom.xml | 4 +- library-udf/src/assembly/tools/register-UDF.bat | 110 +- pom.xml | 19 +- .../resources => scripts}/conf/ainode-env.sh | 0 .../resources => scripts}/conf/confignode-env.sh | 21 +- .../resources => scripts}/conf/datanode-env.sh | 27 +- .../sbin => scripts/conf}/iotdb-common.sh | 0 .../conf => scripts/conf/windows}/ainode-env.bat | 11 +- .../conf/windows}/confignode-env.bat | 16 +- .../conf => scripts/conf/windows}/datanode-env.bat | 16 +- .../sbin => scripts/sbin/cluster}/start-all.sh | 2 +- .../sbin => scripts/sbin/cluster}/stop-all.sh | 2 +- .../resources => scripts}/sbin/start-ainode.sh | 17 +- .../resources => scripts}/sbin/start-cli.sh | 4 - .../resources => scripts}/sbin/start-confignode.sh | 2 +- .../resources => scripts}/sbin/start-datanode.sh | 2 +- .../resources => scripts}/sbin/start-standalone.sh | 0 .../resources => scripts}/sbin/stop-ainode.sh | 0 .../resources => scripts}/sbin/stop-confignode.sh | 6 +- .../resources => scripts}/sbin/stop-datanode.sh | 6 +- .../resources => scripts}/sbin/stop-standalone.sh | 0 .../sbin => scripts/sbin/windows}/start-ainode.bat | 12 +- .../sbin/windows/start-cli-table.bat | 7 +- .../sbin => scripts/sbin/windows}/start-cli.bat | 5 +- .../sbin/windows}/start-confignode.bat | 10 +- .../sbin/windows}/start-datanode.bat | 16 +- .../sbin/windows}/start-standalone.bat | 12 +- .../sbin => scripts/sbin/windows}/stop-ainode.bat | 8 +- .../sbin/windows}/stop-confignode.bat | 38 +- .../sbin/windows}/stop-datanode.bat | 36 +- .../sbin/windows}/stop-standalone.bat | 10 +- .../resources => scripts}/tools/export-data.sh | 0 .../resources => scripts}/tools/export-tsfile.sh | 0 .../resources => scripts}/tools/import-data.sh | 0 .../tools => scripts/tools/ops}/backup.sh | 2 +- .../tools => scripts/tools/ops}/collect-info.sh | 2 +- .../tools/ops}/daemon-confignode.sh | 2 +- .../sbin => scripts/tools/ops}/daemon-datanode.sh | 2 +- .../sbin => scripts/tools/ops}/destroy-all.sh | 18 +- .../tools/ops}/destroy-confignode.sh | 2 +- .../sbin => scripts/tools/ops}/destroy-datanode.sh | 2 +- .../sbin => scripts/tools/ops}/health_check.sh | 4 +- .../sbin => scripts/tools/ops}/remove-ainode.sh | 23 +- .../tools/schema}/export-schema.sh | 2 +- .../tools/schema}/import-schema.sh | 2 +- .../tools/schema/print-pb-tree-file.sh | 2 +- .../tools/schema/print-schema-log.sh | 2 +- .../check-overlap-sequence-files-and-repair.sh | 2 +- .../tools/tsfile/overlap-statistic-tool.sh | 2 +- .../tools/tsfile/print-iotdb-data-dir.sh | 2 +- .../tools/tsfile/print-tsfile-resource-files.sh | 2 +- .../tools/tsfile/print-tsfile.sh | 2 +- .../tools/tsfile/settle-tsfile.sh | 0 .../tools/tsfile/split-tsfile-tool.sh | 2 +- .../tools/tsfile/validate-tsfile.sh | 2 +- .../tools/windows}/export-data.bat | 2 +- .../tools/windows}/export-tsfile.bat | 4 +- .../tools/windows}/import-data.bat | 2 +- .../tools => scripts/tools/windows/ops}/backup.bat | 13 +- .../tools/windows/ops}/collect-info.bat | 8 +- .../tools/windows/ops}/destroy-all.bat | 8 +- .../tools/windows/ops}/destroy-confignode.bat | 4 +- .../tools/windows/ops}/destroy-datanode.bat | 4 +- .../tools/windows/ops}/health_check.bat | 47 +- .../tools/windows/ops}/remove-ainode.bat | 20 +- .../tools/windows/schema}/export-schema.bat | 2 +- .../tools/windows/schema}/import-schema.bat | 2 +- .../tools/windows}/schema/print-pb-tree-file.bat | 2 +- .../tools/windows}/schema/print-schema-log.bat | 2 +- .../check-overlap-sequence-files-and-repair.bat | 2 +- .../windows}/tsfile/overlap-statistic-tool.bat | 2 +- .../tools/windows}/tsfile/print-iotdb-data-dir.bat | 2 +- .../tsfile/print-tsfile-resource-files.bat | 2 +- .../tools/windows}/tsfile/print-tsfile.bat | 2 +- .../tools/windows}/tsfile/settle-tsfile.bat | 2 +- .../tools/windows}/tsfile/split-tsfile-tool.bat | 2 +- .../tools/windows}/tsfile/validate-tsfile.bat | 2 +- 1581 files changed, 64425 insertions(+), 18300 deletions(-) diff --cc iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/relational/ColumnTransformerBuilder.java index 3d072ed0c40,472899e1d0c..d0b7e35e94c --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/relational/ColumnTransformerBuilder.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/relational/ColumnTransformerBuilder.java @@@ -71,8 -70,8 +70,9 @@@ import org.apache.iotdb.db.queryengine. import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.queryengine.plan.relational.type.TypeNotFoundException; + import org.apache.iotdb.db.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.db.queryengine.transformation.dag.column.FailFunctionColumnTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.column.TableCaseWhenThenColumnTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.ArithmeticColumnTransformerApi; import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareEqualToColumnTransformer; diff --cc iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java index faff5c7ec01,369522254dd..742f980e2e8 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java @@@ -539,11 -551,9 +552,11 @@@ public class TableMetadataImpl implemen throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) - + " must have at least two arguments, and first argument must be char type."); + + " must have at least two arguments, and first argument pattern must be TEXT or STRING type."); } return STRING; + } else if (FAIL_FUNCTION_NAME.equalsIgnoreCase(functionName)) { + return UNKNOWN; } else if (TableBuiltinScalarFunction.GREATEST.getFunctionName().equalsIgnoreCase(functionName) || TableBuiltinScalarFunction.LEAST.getFunctionName().equalsIgnoreCase(functionName)) { if (argumentTypes.size() < 2 || !areAllTypesSameAndComparable(argumentTypes)) {
