This is an automated email from the ASF dual-hosted git repository. lancelly pushed a change to branch support_exists_and_correlate in repository https://gitbox.apache.org/repos/asf/iotdb.git
from d994fbefcf0 remove todos add 5933818eec7 Delete the adjustment operation of TCP port (#14770) add 52da69813b0 Fixed the NPE of TableDeviceLastEntry add 1b0af7dfd25 Permission for Relation model add f2d24ffdc7d Introduce operator of window function. add 25128fcc1a7 Remove duplicate code in column transformer add 9c9b2393af3 Fix query error after insert an all null aligned tablet and flush (#14777) add 024b05cc4d8 Fixed the bug that the database is not totally separated in partition cache add 526f678f746 [RatisConsensus] Prevent misuse of addRemotePeer (#14779) add 43eb55ad927 Pipe: Introduce periodic verification for username and password on receiver side (#14764) add 02ff0d27c57 Pipe / Load: Enable validation skip for load tsFile (#14774) add cbd683ece36 Adapte table model in import/export tools (#14677) add a966f82d953 Fix duplicated time in result set bug add 69d9dae6e93 Fix problem when import tsfile fail (#14792) add e7d009cb725 Correct Block Queue Time metric add 270e0d3a224 Region operations for table model (#14794) add 063c8421ea0 Fix null measurement name issue in insertTablet (#14795) add 9d6b811cca0 Add some tsfile-related tools (#14766) add a49958c1f30 Correct binary column memory calculation (#14796) add 0a628cbf596 Bump version to 2.0.2-SNAPSHOT add 05003055930 Support authentication for query module add bbaa63bbc13 Add maintenance commands for table model add b166aa14f2c Insertion/deletion authentication add d90088336d3 Read of .meta file is not included in the compaction io metrics (#14772) add a1a10c1743a Fix setSystemStatusTableIT add 70f02780a8a Support authentication for maintain and udf management statement add 8b287ca9e16 Fix select time in TreeModel add c2625d07ec0 Try fix error code different in each data node problem add 46009936dcc Pipe IT: Refactor how IT is categorized to reduce overall runtime (#14719) add e160e19789e Added regions/pipes/pipe_plugins/topics/subscriptions to information_schema & Fixed the time precision of + add "user" column for queries table (#14680) add 1d93c99a9ca Implemented auth IT for load/pipe/subscription/database/table & Fixed the bug that partial pipe tree auth IT does not run & Fixed the tag data type of CompactionTableModelTestFileWriter (#14807) add 5c4f0191132 Pipe IT: Modify the Git Action failure log name to be consistent with the Job (#14810) add 2c0f7ec033b Pipe: Adapted pipe metadata sync for new permission (#14775) add d8e6c303fb6 Fix some issues. add 2eea334b93c fix auth parser error with grant all on root.** from non-root user. add e5dacc08fcf Add Greatest and Least Comparison functions add 27a3b944db5 [AINode] fix missing dependency in wheel file (#14818) add 69b01012ade fix_docker (#14781) add 9c54cfc4e26 feat: add generate-thrift-sources-csharp (#14824) add 29b9ead7d85 Bump net.minidev:json-smart from 2.5.0 to 2.5.2 add eed0a4687b5 Added metrics to DeviceSchemaCache's memory and entries num (#14826) add 7ac71fb2a33 Load: convert to insert tablet on region replica set changes (#14717) add a798d2f0dbc Subscription: fix nack tablet response & periodically report the state of prefetching queue & improve logs for subscription providers (#14822) add ac63e9aa79b Check time precision for negative timestamps (#14828) add c8ea40f18d8 Fixed the bug that internalCreate(Multi)TimeSeries may write empty device when measurements are all trimmed (#14827) add 4c65958e1d0 Update DualKeyCacheImpl.java (#14817) add 8d08153d928 Pipe: Default parameters adjustment for pipe threads and pipeStuckRestartMinIntervalMs (#14819) add af1db94f4b8 Pipe: avoid event accumulation in the stale sink pending queue & promptly clean up closed processor subtasks & close parser when releasing phantom reference of tsfile event (#14820) add 3580c34e369 update workflow (#14837) add 4d2ac447a88 Support 'set sql_dialect' in Tree and Table Model add 338e715210b Fix NPE of RelationalDeleteDataNode merge method (#14834) add b990b9e498b Enhance getLatestRegionRouteMap log for debugging #14830 add 0fa9fa1d3ab [IoTConsensusV2] Fix NPE when transfer tsfile mods #14840 add a0eab8f5eab Metric: Add pipe linked tsfile size and count metric (#14768) add 6233e53acd4 [remove confignode] Add Remove ConfigNode SQL (#14813) add b1e07c79f39 fix todos-check (#14851) add 515991dc9f7 Pipe: adjust default pipeRealTimeQueuePollHistoryThreshold to reduce retransmission upon frequent rebooting (#14846) add 563e42ac868 Pipe: fix the issue where the pipe still forwards insert events when the parameter source.mode.double-living is true. (#14839) add 3edb24fe96c Delete remove-confignode.sh and remove-datanode.sh add 9264b701a93 Do not print host and port when failed to connect through CLI (#14844) add 57ede481a84 Pipe: Fix the problem that the receiver constructs InsertStatement causing the MeasurementShcema to not be correctly set to null (NPE) (#14831) add 4bd2f259c50 IoTConsensus and IoTConsensusV2 no longer stores the peer list locally on the DataNode (#14814) add 379993ec38a Add SSL support to Python client (#14789) add 8e61e3072ab Remove JDBC sensitive information output (#14857) add 1deffc58907 Pipe: Fix the issue where the pipe still forwards insert events in the table model when forwarding-pipe-requests is false (#14861) add 330a683242d Pipe: Implement force forwarding feature where the Pipe sender can force the receiver to forward the received event (#14847) add 3cc339bd47a Pipe: Introduce timely flush options & Execute flush after pipe watchdog restarts & Log degrade reasons for debugging (#14865) add cb03ad80653 Subscription: fix consumer infinite pulling event & fully managed tsfile parsing process & increase the reference count for subscribed parsed raw tablet event & disrupt parsing requests through the introduction of randomness & disable prefetch by default (#14856) add 92bb0a19f0a Pipe IT: explicitly declare `setUp` method for test class to avoid `UNKNOWN-IT` test class name (#14874) add 2c4acfc1af8 Add query metrics AGGREGATION_FROM_RAW_DATA and AGGREGATION_FROM_STATISTICS for table model add f2c1a2a68b7 Pipe: Fixed the bug that delete timeSeries / logicalView cannot be transferred (#14867) add b4cec03c26f [remove datanode] Delete the SQL of removing multiple datanodes at the same time #14862 add 0cce0e277d6 Fix TableModelJDBCExample (#14878) add 692b6bf4d8a Pipe: Fixed the DataNode startup failure caused by Pipe plugin loading (#14816) add 33c9e3a1a54 fix table deletion with time predicate (#14870) add 5f259bacc63 Remove attribute columns after attributes are updated (#14721) add dc8418277ab Fix insert/load with timestamp of Long.MIN_VALUE and LONG.MAX_VALUE (#14491) add 9e973b751cf Fix IoTConsensus safe deleted index (#14883) add adba099046c Pipe: bind memory block for PipeTransferTsFileHandler and PipeInsertNodeTabletInsertionEvent & unify the memory threshold judgment for tablet and tsfile block & close data container when internally decrease reference count of PipeTsFileInsertionEvent (#14873) add 85f85cec61d Pipe: Optimize the data logic of distinguishing table model and tree model (#14803) add f8082c651aa Pipe: Reduce degrade log from PipeRealtimeDataRegionHybridExtractor (#14888) add 2964bd20079 Pipe: Fixed the bug that the create/delete database cannot be passed to the receiver & SchemaRegionSnapshot parsing failure & The historical table/databases cannot be transferred & The class cast exception at receiver (#14876) add 7883265abcc Fix the incorrect configuration of the JAVA_HOME environment variable in script." (#14893) add 4e0ecc24541 Add Date and Float data IT (#14892) add 4aadc09fb20 Fix IoTConsensus safe deleted index again (#14897) add 7b588c81b17 Pipe: fix threshold judgment for tablet and tsfile memory block & Subscription: close data container for current PipeTsFileInsertionEvent in batch (#14901) add 897e989261d Fixed the bug that procedure rollback may generate NPE && some of the rollback steps may not be / be extra executed (#14871) add 065a58d68bd Subscription: add methods to obtain the consumer identifier in the top-level interface (#14904) add 8760e10b796 Pipe: Avoid stuck in insertion process because failed to allocate memory (#14899) add 8e4fef3b8f0 Update dockerfile to use the latest ubuntu 24 (#14903) add 7615222e8fe Subscription: close memory block for previous tsfile response (#14909) add b8438dd0165 Add connection_time_out_in_ms for Python SDK (#14898) add 43ed88f4909 Allow to write time column only (#14703) add 9a93a0e29f1 Reject inserting invalid timestamp string (#14913) add 547e7f6f6b8 Initialize WALNode when DataRegion is created for iotv1 and iotv2 (#14918) add 85326097340 Memtable enhancement for query (#14591) add 481a79d3c14 Fix that failure of one row in relational InsertRows will fail other rows (#14912) add b498285c4f4 Pipe: Modify MaxAllowedPinnedMemTableCount to adapt to changes in the number of DRs & Modify the implementation of the poll method in PipeRealtimePriorityBlockingQueue to reduce commit queue backlog & Adjust the default thread count related to Pipe for better performance & Significantly reduce pipeMemoryAllocateRetryIntervalMs & Provide a switch for memory control of ConnectorReadFileBuffer (#14917) add 650bbcc25f7 [RTO/RPO] Unify retry logic on SessionConnection (#14894) add 61576c0a5bc Implemented JDBC for IoTDB based on tables add 083ae4858fa Fix IT names & Fix region operation related IT (#14905) add 4d965e9d6ec Don't log known error's exception thread stack add 6b5e5b00e4c [To Master] MQTT Extensions to the Table Model Using the Row Protocol (#14848) add babc2af50ee Replace ExportTsFile By SubscriptionTsFile (#14812) add ca8482a7bb1 Improve authority control of cluster management (#14924) add 69a4eb2897b Subscription: avoid null pointer exception when get current response due to concurrent operations (#14926) add 82624e21d5f Load: auto detect TsFile's model (tree/table) (#14751) add 4866f6d2cfa Add logs for PartitionTableAutoCleaner (#14934) add 57ce941d889 Load: Add mods file metrics count (#14930) add a864d9fabc4 Fix class name of RPCServiceMBean #14940 add bb8a5f74356 Pipe: Fix the protential resource leak issue of async client when async manager is closed (#14929) add 72dd41d62ed Pipe: Add memory control mechanism for TsFile batch mode in sinks (#14911) add 9733c7540cf Delete remove node logic in ServerCommandLine #14933 add ab2ab36fa7d Subscription: check if all topic messages have been consumed when client polling (#14937) add 5d38f0c251e Fix the missing deletion when concurrent deletion and insertion compaction (#14955) add dbe2d37c389 enhance wal compatibility (#14954) add de10ea78911 [AINode] Optimize the error information when dropping built-in model (#14943) add fa9711e1146 IoTConsensusV2: Use custom commitIndex to indicate synchronization progress instead of pipe's commitIndex (#14624) add 29cc71b599f Add timestamp suffix to vulnerability check report. (#14960) add fb2cb7a394b Fix state setting of AbstractOperatePipeProcedureV2 & Enhance state checking of StateMachineProcedure #14959 add 9e79d85b7a8 peformance regression of sequential inserting (#14951) add 95972550d8c Introduce flushing on specific regions & IoTConsensusV2: Flush old leader when leader transfer & Delay the execution of invalidateSchemaCache after leader change (#14910) add f6c3c5da617 Adapt to Mybatis generator (#14936) add 1e6513b1fc5 IoTConsensusV2: Multi-Dirs balance with sequence rolling strategy in receiver (#14962) add e1840d0ea7a [IoTConsensus] More accurate statistics on IoTConsensus memory management (#14965) add 56080ee2f58 Revert "Allow to write time column only (#14703)" (#14967) add b638a70a4cc Pipe: Reduce the frequency of printing logs when AirGapConnector connection fails (#14949) add a94ae439dde Fix the support of MQTT with java8 (#14968) add f1a224e56c1 Subscription: unify tablet push consumer builder return type (#14971) add ede623a27d8 Pipe: Implemented OPC DA Sink for local COM & Fixed the newest value of OPC UA Sink (#14964) add 2a77b7ab162 Pipe: Optimize the TsFile memory control mechanism of the disassembly table model (#14890) add af8e5222eff Merge branch 'master' into support_exists_and_correlate add f85b6ca527e merge master No new revisions were added by this update. Summary of changes: .github/workflows/cluster-it-1c1d.yml | 9 +- .github/workflows/cluster-it-1c1d1a.yml | 9 +- .github/workflows/cluster-it-1c3d.yml | 9 +- .github/workflows/compile-check.yml | 11 +- .github/workflows/daily-it.yml | 24 - .github/workflows/dependency-check.yml | 1 - .github/workflows/multi-language-client.yml | 1 - .../{pipe-it-2cluster.yml => pipe-it.yml} | 314 +- .github/workflows/sonar-codecov.yml | 1 - .github/workflows/table-cluster-it-1c1d.yml | 9 +- .github/workflows/table-cluster-it-1c3d.yml | 9 +- .github/workflows/todos-check.yml | 27 +- .github/workflows/unit-test.yml | 1 - .github/workflows/vulnerability-check.yml | 7 +- code-coverage/pom.xml | 2 +- dependencies.json | 1 + distribution/pom.xml | 12 +- docker/src/main/DockerCompose/do-docker-build.sh | 4 +- docker/src/main/DockerCompose/entrypoint.sh | 5 +- .../main/DockerCompose/replace-conf-from-env.sh | 33 +- docker/src/main/Dockerfile-1.0.0-confignode | 2 +- docker/src/main/Dockerfile-1.0.0-datanode | 2 +- docker/src/main/Dockerfile-1.0.0-standalone | 2 +- docker/src/main/Dockerfile-1c1d | 2 +- example/client-cpp-example/pom.xml | 2 +- example/jdbc/pom.xml | 2 +- .../org/apache/iotdb/TableModelJDBCExample.java | 4 +- example/mqtt-customize/pom.xml | 2 +- .../server/CustomizedJsonPayloadFormatter.java | 2 +- .../org/apache/iotdb/mqtt/server/MyMessage.java | 31 +- example/mqtt/pom.xml | 2 +- .../java/org/apache/iotdb/mqtt/MQTTClient.java | 39 +- example/pipe-count-point-processor/pom.xml | 2 +- .../java/org/apache/iotdb/CountPointProcessor.java | 3 +- 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 +- .../apache/iotdb/SubscriptionSessionExample.java | 2 +- .../TableModelSubscriptionSessionExample.java | 16 +- example/trigger/pom.xml | 2 +- example/udf/pom.xml | 2 +- integration-test/pom.xml | 78 +- .../iotdb/it/env/cluster/ClusterConstant.java | 1 + .../it/env/cluster/config/MppCommonConfig.java | 10 +- .../it/env/cluster/config/MppDataNodeConfig.java | 12 + .../env/cluster/config/MppSharedCommonConfig.java | 13 +- .../iotdb/it/env/cluster/env/AbstractEnv.java | 12 + .../iotdb/it/env/cluster/node/DataNodeWrapper.java | 11 + .../it/env/remote/config/RemoteCommonConfig.java | 7 +- .../it/env/remote/config/RemoteDataNodeConfig.java | 10 + .../iotdb/it/env/remote/env/RemoteServerEnv.java | 10 + ...va => MultiClusterIT2DualTableManualBasic.java} | 2 +- ...=> MultiClusterIT2DualTableManualEnhanced.java} | 2 +- ....java => MultiClusterIT2DualTreeAutoBasic.java} | 2 +- ...va => MultiClusterIT2DualTreeAutoEnhanced.java} | 2 +- ...del.java => MultiClusterIT2DualTreeManual.java} | 2 +- .../java/org/apache/iotdb/itbase/env/BaseEnv.java | 3 + .../org/apache/iotdb/itbase/env/CommonConfig.java | 4 +- .../apache/iotdb/itbase/env/DataNodeConfig.java | 4 + .../iotdb/itbase/runtime/ClusterTestStatement.java | 5 +- .../org/apache/iotdb/ainode/it/AINodeBasicIT.java | 2 + .../{AbstractScript.java => AbstractScriptIT.java} | 2 +- .../apache/iotdb/cli/it/StartClientScriptIT.java | 6 +- .../it/database/IoTDBDatabaseSetAndDeleteIT.java | 4 +- ....java => IoTDBAutoRegionGroupExtension2IT.java} | 4 +- ...st.java => IoTDBPartitionTableAutoCleanIT.java} | 2 +- ...IoTDBRegionOperationReliabilityITFramework.java | 72 - .../IoTDBRegionGroupExpandAndShrinkForIoTV1IT.java | 20 +- ...IoTDBRegionMigrateNormalITForIoTV2BatchIT.java} | 2 +- ...=> IoTDBRegionMigrateOtherForIoTV2BatchIT.java} | 2 +- ... IoTDBRegionMigrateNormalForIoTV2StreamIT.java} | 2 +- ...IoTDBRegionMigrateOtherITForIoTV2StreamIT.java} | 2 +- ...rCrashWhenRemoveRemotePeerForIoTV2BatchIT.java} | 2 +- ...RegionMigrateDataNodeCrashForIoTV2BatchIT.java} | 2 +- ...alCrashWhenDeleteLocalPeerForIoTV2BatchIT.java} | 2 +- ...lCrashWhenRemoveRemotePeerForIoTV2BatchIT.java} | 2 +- ...CrashWhenRemoveRemotePeerForIoTV2StreamIT.java} | 2 +- ...egionMigrateDataNodeCrashForIoTV2StreamIT.java} | 2 +- ...lCrashWhenDeleteLocalPeerForIoTV2StreamIT.java} | 2 +- ...CrashWhenRemoveRemotePeerForIoTV2StreamIT.java} | 2 +- ...oTDBRegionMigrateClusterCrashIoTV2BatchIT.java} | 2 +- ...BRegionMigrateConfigNodeCrashIoTV2BatchIT.java} | 2 +- ...TDBRegionMigrateClusterCrashIoTV2StreamIT.java} | 2 +- ...RegionMigrateConfigNodeCrashIoTV2StreamIT.java} | 2 +- .../IoTDBRemoveConfigNodeITFramework.java | 206 + .../IoTDBRemoveConfigNodeNormalIT.java} | 16 +- .../IoTDBRemoveDataNodeITFramework.java | 2 +- .../apache/iotdb/db/it/IoTDBDuplicateTimeIT.java | 5 +- .../apache/iotdb/db/it/IoTDBFloatPrecisionIT.java | 45 + .../apache/iotdb/db/it/IoTDBInsertWithQueryIT.java | 1 + .../org/apache/iotdb/db/it/IoTDBLoadTsFileIT.java | 73 + .../org/apache/iotdb/db/it/IoTDBRestartIT.java | 4 +- .../org/apache/iotdb/db/it/IoTDBSimpleQueryIT.java | 38 + .../org/apache/iotdb/db/it/auth/IoTDBAuthIT.java | 294 +- .../iotdb/db/it/auth/IoTDBClusterAuthorityIT.java | 71 +- .../it/auth/IoTDBClusterAuthorityRelationalIT.java | 513 +++ .../iotdb/db/it/auth/IoTDBRelationalAuthIT.java | 533 +++ .../iotdb/db/it/auth/IoTDBSystemPermissionIT.java | 4 +- .../iotdb/db/it/groupby/IoTDBGroupByUnseqIT.java | 2 +- .../apache/iotdb/db/it/query/IoTDBQueryDemoIT.java | 25 + .../org/apache/iotdb/db/it/utils/TestUtils.java | 227 +- .../it/{ => dual}/tablemodel/TableModelUtils.java | 2 +- .../AbstractPipeTableModelDualManualIT.java} | 4 +- .../tablemodel/manual/basic}/IoTDBPipeAlterIT.java | 17 +- .../manual/basic}/IoTDBPipeDataSinkIT.java | 118 +- .../manual/basic}/IoTDBPipeExtractorIT.java | 10 +- .../manual/basic}/IoTDBPipeIsolationIT.java | 17 +- .../manual/basic}/IoTDBPipeLifeCycleIT.java | 165 +- .../manual/basic}/IoTDBPipeProtocolIT.java | 11 +- .../manual/basic}/IoTDBPipeSwitchStatusIT.java | 18 +- .../manual/basic}/IoTDBPipeSyntaxIT.java | 17 +- .../manual/basic}/IoTDBPipeWithLoadIT.java | 10 +- .../manual/basic}/IoTDBTablePatternFormatIT.java | 17 +- .../manual/enhanced}/IoTDBPipeAutoConflictIT.java | 11 +- .../manual/enhanced}/IoTDBPipeAutoDropIT.java | 17 +- .../manual/enhanced}/IoTDBPipeClusterIT.java | 10 +- .../enhanced}/IoTDBPipeConnectorCompressionIT.java | 10 +- .../enhanced}/IoTDBPipeConnectorParallelIT.java | 18 +- .../manual/enhanced}/IoTDBPipeDoubleLivingIT.java | 20 +- .../manual/enhanced/IoTDBPipeIdempotentIT.java | 205 + .../manual/enhanced/IoTDBPipeMetaIT.java} | 95 +- .../manual/enhanced}/IoTDBPipeNullValueIT.java | 17 +- .../IoTDBPipeTypeConversionISessionIT.java | 26 +- .../enhanced}/IoTDBPipeTypeConversionIT.java | 25 +- .../auto/AbstractPipeDualTreeModelAutoIT.java} | 4 +- .../treemodel/auto/basic}/IoTDBPipeAlterIT.java | 16 +- .../auto/basic}/IoTDBPipeConnectorParallelIT.java | 17 +- .../treemodel/auto/basic}/IoTDBPipeDataSinkIT.java | 88 +- .../auto/basic}/IoTDBPipeExtractorIT.java | 9 +- .../auto/basic}/IoTDBPipeLifeCycleIT.java | 30 +- .../auto/basic}/IoTDBPipeProcessorIT.java | 10 +- .../treemodel/auto/basic}/IoTDBPipeProtocolIT.java | 10 +- .../auto/basic}/IoTDBPipeSwitchStatusIT.java | 17 +- .../treemodel/auto/basic}/IoTDBPipeSyntaxIT.java | 17 +- .../auto/basic}/IoTDBTreePatternFormatIT.java | 17 +- .../auto/enhanced}/IoTDBPipeAutoConflictIT.java | 10 +- .../auto/enhanced}/IoTDBPipeAutoDropIT.java | 16 +- .../auto/enhanced}/IoTDBPipeClusterIT.java | 11 +- .../IoTDBPipeConditionalOperationsIT.java | 16 +- .../enhanced}/IoTDBPipeConnectorCompressionIT.java | 9 +- .../auto/enhanced}/IoTDBPipeIdempotentIT.java | 117 +- .../auto/enhanced}/IoTDBPipeNullValueIT.java | 9 +- .../auto/enhanced}/IoTDBPipeWithLoadIT.java | 9 +- .../auto/enhanced}/PipeNowFunctionIT.java | 16 +- .../manual/AbstractPipeDualTreeModelManualIT.java} | 4 +- .../treemodel}/manual/IoTDBPipeInclusionIT.java | 8 +- .../manual/IoTDBPipeManualConflictIT.java | 8 +- .../manual/IoTDBPipeMetaHistoricalIT.java | 24 +- .../manual/IoTDBPipeMetaLeaderChangeIT.java | 8 +- .../treemodel}/manual/IoTDBPipeMetaRestartIT.java | 8 +- .../manual/IoTDBPipeMultiSchemaRegionIT.java | 8 +- .../treemodel}/manual/IoTDBPipePermissionIT.java | 8 +- .../treemodel}/manual/IoTDBPipeReqAutoSliceIT.java | 8 +- .../manual/IoTDBPipeTypeConversionISessionIT.java | 8 +- .../manual/IoTDBPipeTypeConversionIT.java | 8 +- .../iotdb/pipe/it/single/IoTDBPipeOPCUAIT.java | 2 +- .../it/db/it/IoTDBAuthenticationTableIT.java | 1001 +++++ .../relational/it/db/it/IoTDBDeletionTableIT.java | 140 +- .../relational/it/db/it/IoTDBInsertTableIT.java | 17 +- .../it/db/it/IoTDBLoadConfigurationTableIT.java | 85 + .../relational/it/db/it/IoTDBRestartTableIT.java | 3 - .../it/db/it/IoTDBSetSystemStatusTableIT.java | 104 + .../relational/it/mqtt/IoTDBMQTTServiceIT.java | 132 + .../query/old/query/IoTDBGreatestLeastTableIT.java | 305 ++ .../it/query/recent/IoTDBMaintainAuthIT.java | 289 ++ .../it/query/recent/IoTDBNullIdQueryIT.java | 33 + .../it/query/recent/IoTDBNullValueIT.java | 75 + .../it/query/recent/IoTDBQueryAuthIT.java | 320 ++ .../relational/it/schema/IoTDBDatabaseIT.java | 151 +- .../iotdb/relational/it/schema/IoTDBTableIT.java | 57 + .../it/session/IoTDBSessionRelationalIT.java | 234 ++ .../iotdb/session/it/IoTDBSessionInsertNullIT.java | 128 + .../iotdb/session/it/IoTDBSessionSimpleIT.java | 210 +- .../it/local/IoTDBSubscriptionBasicIT.java | 67 + .../regression/param/IoTDBTestParamTopicIT.java | 2 +- .../apache/iotdb/tools/it/ExportDataTestIT.java | 4 +- .../apache/iotdb/tools/it/ExportSchemaTestIT.java | 4 +- .../apache/iotdb/tools/it/ExportTsFileTestIT.java | 36 +- .../apache/iotdb/tools/it/ImportDataTestIT.java | 4 +- .../apache/iotdb/tools/it/ImportSchemaTestIT.java | 4 +- .../src/test/resources/logback-test.xml | 2 +- iotdb-api/external-api/pom.xml | 2 +- iotdb-api/pipe-api/pom.xml | 2 +- iotdb-api/pom.xml | 2 +- iotdb-api/trigger-api/pom.xml | 2 +- iotdb-api/udf-api/pom.xml | 2 +- iotdb-client/cli/pom.xml | 26 +- .../src/main/java/org/apache/iotdb/cli/Cli.java | 4 +- .../org/apache/iotdb/tool/common/Constants.java | 341 ++ .../iotdb/tool/common/ImportTsFileOperation.java | 59 + .../org/apache/iotdb/tool/common/OptionsUtil.java | 1027 +++++ .../apache/iotdb/tool/data/AbstractDataTool.java | 1019 ++--- .../apache/iotdb/tool/data/AbstractExportData.java | 70 + .../AbstractImportData.java} | 216 +- .../apache/iotdb/tool/data/AsyncImportData.java | 160 - .../org/apache/iotdb/tool/data/ExportData.java | 775 +--- .../apache/iotdb/tool/data/ExportDataTable.java | 341 ++ .../org/apache/iotdb/tool/data/ExportDataTree.java | 420 ++ .../org/apache/iotdb/tool/data/ImportData.java | 795 ++-- .../apache/iotdb/tool/data/ImportDataScanTool.java | 4 - .../apache/iotdb/tool/data/ImportDataTable.java | 392 ++ .../org/apache/iotdb/tool/data/ImportDataTree.java | 476 +++ .../org/apache/iotdb/tool/tsfile/ExportTsFile.java | 539 +-- .../org/apache/iotdb/tool/tsfile/ImportTsFile.java | 69 +- .../apache/iotdb/tool/tsfile/ImportTsFileBase.java | 9 +- .../iotdb/tool/tsfile/ImportTsFileLocally.java | 8 +- .../iotdb/tool/tsfile/ImportTsFileRemotely.java | 8 + .../subscription/AbstractSubscriptionTsFile.java | 74 + .../tool/tsfile/subscription/CommonParam.java | 212 + .../subscription/SubscriptionTableTsFile.java | 186 + .../subscription/SubscriptionTreeTsFile.java | 183 + .../iotdb/tool/ImportTsFileOperationTest.java | 49 + iotdb-client/client-cpp/pom.xml | 4 +- iotdb-client/client-py/iotdb/Session.py | 51 +- iotdb-client/client-py/iotdb/SessionPool.py | 12 + iotdb-client/client-py/iotdb/table_session.py | 9 + iotdb-client/client-py/iotdb/table_session_pool.py | 6 + iotdb-client/client-py/pom.xml | 6 +- iotdb-client/client-py/session_ssl_example.py | 85 + iotdb-client/isession/pom.xml | 8 +- iotdb-client/jdbc/pom.xml | 63 +- .../main/java/org/apache/iotdb/jdbc/Constant.java | 7 +- ...ata.java => IoTDBAbstractDatabaseMetadata.java} | 4330 +++++++++----------- .../org/apache/iotdb/jdbc/IoTDBConnection.java | 30 +- .../apache/iotdb/jdbc/IoTDBConnectionParams.java | 4 +- .../apache/iotdb/jdbc/IoTDBDataSourceFactory.java | 3 - .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 3555 ++-------------- .../org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java | 25 +- .../apache/iotdb/jdbc/IoTDBPreparedStatement.java | 31 +- .../java/org/apache/iotdb/jdbc/IoTDBStatement.java | 7 + .../IoTDBRelationalDatabaseMetadata.java | 447 ++ iotdb-client/pom.xml | 2 +- iotdb-client/service-rpc/pom.xml | 6 +- .../main/java/org/apache/iotdb/rpc/RpcUtils.java | 14 + .../iotdb/rpc/subscription/config/TopicConfig.java | 7 +- .../subscription/payload/poll/TabletsPayload.java | 4 +- .../java/org/apache/iotdb/rpc/RpcUtilsTest.java | 10 + iotdb-client/session/pom.xml | 10 +- .../java/org/apache/iotdb/session/Session.java | 25 +- .../apache/iotdb/session/SessionConnection.java | 1031 ++--- .../apache/iotdb/session/TableSessionBuilder.java | 4 +- .../org/apache/iotdb/session/pool/SessionPool.java | 5 +- .../iotdb/session/pool/TableSessionWrapper.java | 15 + .../consumer/ISubscriptionTablePullConsumer.java | 18 + .../consumer/ISubscriptionTablePushConsumer.java | 18 + .../consumer/ISubscriptionTreePullConsumer.java | 18 + .../consumer/ISubscriptionTreePushConsumer.java | 18 + .../base/AbstractSubscriptionConsumer.java | 28 +- .../base/AbstractSubscriptionProviders.java | 48 +- .../consumer/table/SubscriptionTableProvider.java | 18 +- .../table/SubscriptionTablePullConsumer.java | 34 +- .../table/SubscriptionTablePushConsumer.java | 36 +- .../SubscriptionTablePushConsumerBuilder.java | 3 +- .../consumer/tree/SubscriptionTreeProvider.java | 18 +- .../tree/SubscriptionTreePullConsumer.java | 34 +- .../tree/SubscriptionTreePushConsumer.java | 34 +- iotdb-core/ainode/pom.xml | 10 +- iotdb-core/ainode/pyproject.toml | 14 +- iotdb-core/ainode/resources/conf/ainode-env.sh | 2 +- iotdb-core/antlr/pom.xml | 2 +- .../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 6 + .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 23 +- .../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 | 24 + iotdb-core/confignode/pom.xml | 26 +- .../assembly/resources/sbin/remove-confignode.bat | 135 - .../assembly/resources/sbin/remove-confignode.sh | 69 - .../confignode/conf/ConfigNodeRemoveCheck.java | 5 +- .../consensus/request/ConfigPhysicalPlan.java | 34 +- .../consensus/request/ConfigPhysicalPlanType.java | 33 + .../request/ConfigPhysicalPlanVisitor.java | 221 +- .../request/read/auth/AuthorReadPlan.java | 143 - .../consensus/request/write/auth/AuthorPlan.java | 168 +- .../request/write/auth/AuthorRelationalPlan.java | 167 + .../auth/{AuthorPlan.java => AuthorTreePlan.java} | 176 +- .../pipe/payload/PipeDeleteLogicalViewPlan.java | 5 +- .../pipe/payload/PipeDeleteTimeSeriesPlan.java | 5 +- .../statemachine/ConfigRegionStateMachine.java | 7 +- .../iotdb/confignode/manager/ConfigManager.java | 30 +- .../apache/iotdb/confignode/manager/IManager.java | 9 +- .../iotdb/confignode/manager/ModelManager.java | 5 + .../confignode/manager/PermissionManager.java | 30 +- .../iotdb/confignode/manager/ProcedureManager.java | 36 +- .../manager/load/balancer/RouteBalancer.java | 152 +- .../iotdb/confignode/manager/node/NodeManager.java | 8 + .../client/IoTDBConfigNodeSyncClientManager.java | 8 +- .../protocol/IoTDBConfigRegionAirGapConnector.java | 6 + .../protocol/IoTDBConfigRegionConnector.java | 8 +- .../pipe/event/PipeConfigRegionSnapshotEvent.java | 17 +- .../extractor/ConfigRegionListeningFilter.java | 84 +- .../pipe/extractor/IoTDBConfigRegionExtractor.java | 23 +- ...ConfigPhysicalPlanTablePatternParseVisitor.java | 62 + ...peConfigPhysicalPlanTableScopeParseVisitor.java | 86 + ...eConfigPhysicalPlanTreePatternParseVisitor.java | 44 +- ...ipeConfigPhysicalPlanTreeScopeParseVisitor.java | 80 + .../receiver/protocol/IoTDBConfigNodeReceiver.java | 251 +- .../PipeConfigPhysicalPlanTSStatusVisitor.java | 207 +- .../iotdb/confignode/persistence/AuthorInfo.java | 593 +-- .../iotdb/confignode/persistence/ModelInfo.java | 2 +- .../persistence/executor/ConfigPlanExecutor.java | 40 +- .../partition/DatabasePartitionTable.java | 14 +- .../schema/CNPhysicalPlanGenerator.java | 163 +- .../persistence/schema/ClusterSchemaInfo.java | 6 +- ...otParser.java => ConfigNodeSnapshotParser.java} | 24 +- .../procedure/PartitionTableAutoCleaner.java | 3 + .../procedure/impl/StateMachineProcedure.java | 16 +- .../impl/pipe/AbstractOperatePipeProcedureV2.java | 2 + .../impl/schema/AlterLogicalViewProcedure.java | 4 +- .../impl/sync/AuthOperationProcedure.java | 6 +- .../iotdb/confignode/service/ConfigNode.java | 44 +- .../thrift/ConfigNodeRPCServiceProcessor.java | 98 +- .../request/ConfigPhysicalPlanSerDeTest.java | 45 +- ...ipeConfigPhysicalPlanScopeParseVisitorTest.java | 116 + ...igPhysicalPlanTablePatternParseVisitorTest.java | 25 + ...figPhysicalPlanTreePatternParseVisitorTest.java | 18 +- .../confignode/persistence/AuthorInfoTest.java | 917 ++--- .../persistence/CNPhysicalPlanGeneratorTest.java | 23 +- .../ConfigRegionListeningQueueTest.java | 4 +- .../pipe/receiver/PipeEnrichedProcedureTest.java | 4 +- .../impl/sync/AuthOperationProcedureTest.java | 39 +- iotdb-core/consensus/pom.xml | 14 +- .../org/apache/iotdb/consensus/common/Peer.java | 13 +- .../common/request/IConsensusRequest.java | 5 + .../common/request/IndexedConsensusRequest.java | 8 +- .../consensus/config/PipeConsensusConfig.java | 21 +- .../apache/iotdb/consensus/iot/IoTConsensus.java | 30 +- .../consensus/iot/IoTConsensusServerImpl.java | 258 +- .../consensus/iot/logdispatcher/LogDispatcher.java | 21 +- .../service/IoTConsensusRPCServiceProcessor.java | 2 +- .../apache/iotdb/consensus/pipe/PipeConsensus.java | 90 +- .../consensus/pipe/PipeConsensusPeerManager.java | 89 +- .../consensus/pipe/PipeConsensusServerImpl.java | 54 +- ...xManager.java => ReplicateProgressManager.java} | 8 +- .../pipe/metric/PipeConsensusSyncLagManager.java | 71 +- .../iotdb/consensus/ratis/RatisConsensus.java | 11 +- .../apache/iotdb/consensus/iot/ReplicateTest.java | 63 +- iotdb-core/datanode/pom.xml | 48 +- .../assembly/resources/sbin/remove-datanode.bat | 148 - .../src/assembly/resources/sbin/remove-datanode.sh | 91 - .../src/assembly/resources/sbin/start-datanode.bat | 2 +- .../org/apache/iotdb/db/auth/AuthorityChecker.java | 227 +- .../apache/iotdb/db/auth/BasicAuthorityCache.java | 8 +- .../iotdb/db/auth/ClusterAuthorityFetcher.java | 475 ++- .../apache/iotdb/db/auth/IAuthorityFetcher.java | 37 +- .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 56 +- .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 37 +- .../db/consensus/DataRegionConsensusImpl.java | 4 +- .../PipeDataRegionConnectorConstructor.java | 4 + .../db/pipe/agent/runtime/PipeAgentLauncher.java | 3 +- .../db/pipe/agent/task/PipeDataNodeTaskAgent.java | 63 +- .../task/builder/PipeDataNodeTaskBuilder.java | 12 +- .../agent/task/connection/PipeEventCollector.java | 11 +- .../agent/task/stage/PipeTaskProcessorStage.java | 9 +- .../PipeRealtimePriorityBlockingQueue.java | 10 +- .../subtask/processor/PipeProcessorSubtask.java | 5 +- .../processor/PipeProcessorSubtaskWorker.java | 11 +- .../client/IoTDBDataNodeAsyncClientManager.java | 18 +- .../client/IoTDBDataNodeSyncClientManager.java | 8 +- .../evolvable/batch/PipeTabletEventBatch.java | 37 +- .../evolvable/batch/PipeTabletEventPlainBatch.java | 41 +- .../batch/PipeTabletEventTsFileBatch.java | 11 +- .../airgap/IoTDBDataNodeAirGapConnector.java | 6 + .../connector/protocol/opcda/OpcDaConnector.java | 138 + .../pipe/connector/protocol/opcda/OpcDaHeader.java | 200 + .../protocol/opcda/OpcDaServerHandle.java | 390 ++ .../connector/protocol/opcua/OpcUaConnector.java | 50 +- .../connector/protocol/opcua/OpcUaNameSpace.java | 2 +- .../pipeconsensus/PipeConsensusAsyncConnector.java | 16 +- .../pipeconsensus/PipeConsensusSyncConnector.java | 9 +- .../PipeConsensusTabletInsertionEventHandler.java | 8 +- .../PipeConsensusTsFileInsertionEventHandler.java | 8 +- .../PipeConsensusTransferBatchReqBuilder.java | 5 +- .../async/IoTDBDataRegionAsyncConnector.java | 20 +- .../handler/PipeTransferTrackableHandler.java | 33 +- .../async/handler/PipeTransferTsFileHandler.java | 70 +- .../thrift/sync/IoTDBDataNodeSyncConnector.java | 8 +- ....java => ReplicateProgressDataNodeManager.java} | 36 +- .../deletion/DeletionResourceManager.java | 4 +- .../deletion/persist/PageCacheDeletionBuffer.java | 5 +- .../db/pipe/event/common/PipeInsertionEvent.java | 64 +- .../db/pipe/event/common/row/PipeRowCollector.java | 27 +- .../schema/PipeSchemaRegionSnapshotEvent.java | 7 +- .../tablet/PipeInsertNodeTabletInsertionEvent.java | 56 +- .../common/tablet/PipeRawTabletInsertionEvent.java | 26 +- .../common/tsfile/PipeTsFileInsertionEvent.java | 103 +- .../query/TsFileInsertionEventQueryParser.java | 70 +- .../scan/TsFileInsertionEventScanParser.java | 38 +- .../table/TsFileInsertionEventTableParser.java | 165 +- ...ileInsertionEventTableParserTabletIterator.java | 421 +- .../db/pipe/event/realtime/PipeRealtimeEvent.java | 6 + .../event/realtime/PipeRealtimeEventFactory.java | 81 +- ...oricalDataRegionTsFileAndDeletionExtractor.java | 27 +- .../realtime/PipeRealtimeDataRegionExtractor.java | 26 +- .../PipeRealtimeDataRegionHybridExtractor.java | 139 +- .../realtime/assigner/PipeDataRegionAssigner.java | 21 + .../listener/PipeInsertionDataNodeListener.java | 16 +- .../schemaregion/SchemaRegionListeningFilter.java | 8 +- .../iotdb/db/pipe/metric/PipeResourceMetrics.java | 34 + .../processor/aggregate/AggregateProcessor.java | 18 +- .../pipeconsensus/PipeConsensusProcessor.java | 43 +- .../twostage/plugin/TwoStageCountProcessor.java | 14 +- .../pipeconsensus/PipeConsensusReceiver.java | 349 +- .../protocol/thrift/IoTDBDataNodeReceiver.java | 64 +- .../visitor/PipePlanToStatementVisitor.java | 18 +- .../resource/memory/InsertNodeMemoryEstimator.java | 2 +- .../db/pipe/resource/memory/PipeMemoryManager.java | 137 +- .../pipe/resource/memory/PipeMemoryWeightUtil.java | 65 + .../resource/tsfile/PipeTsFileResourceManager.java | 15 + .../iotdb/db/protocol/client/ConfigNodeClient.java | 23 +- .../db/protocol/mqtt/JSONPayloadFormatter.java | 6 +- .../db/protocol/mqtt/LinePayloadFormatter.java | 252 ++ .../iotdb/db/protocol/mqtt/MPPPublishHandler.java | 239 +- .../org/apache/iotdb/db/protocol/mqtt/Message.java | 58 +- .../iotdb/db/protocol/mqtt/TableMessage.java | 144 + .../mqtt/{Message.java => TreeMessage.java} | 16 +- .../db/protocol/rest/impl/PingApiServiceImpl.java | 4 +- .../iotdb/db/protocol/session/SessionManager.java | 12 + .../protocol/thrift/impl/ClientRPCServiceImpl.java | 27 +- .../execution/exchange/SharedTsBlockQueue.java | 8 +- .../execution/exchange/sink/SinkChannel.java | 11 +- .../exchange/source/LocalSourceHandle.java | 4 +- .../execution/executor/RegionWriteExecutor.java | 33 +- .../fragment/FragmentInstanceContext.java | 87 +- .../fragment/FragmentInstanceManager.java | 2 + .../execution/fragment/QueryContext.java | 9 + .../execution/operator/AbstractOperator.java | 2 +- .../operator/process/AbstractSortOperator.java | 2 +- .../execution/operator/process/SortOperator.java | 2 +- .../operator/process/TableStreamSortOperator.java | 2 +- .../process/window/TableWindowOperator.java | 411 ++ .../process/window/function/WindowFunction.java | 33 +- .../aggregate/AggregationWindowFunction.java | 113 + .../function/aggregate/WindowAggregator.java} | 104 +- .../window/function/rank/CumeDistFunction.java} | 44 +- .../window/function/rank/DenseRankFunction.java} | 44 +- .../window/function/rank/NTileFunction.java | 62 + .../window/function/rank/PercentRankFunction.java | 63 + .../window/function/rank/RankFunction.java} | 49 +- .../window/function/rank/RankWindowFunction.java | 66 + .../window/function/rank/RowNumberFunction.java | 29 +- .../window/function/value/FirstValueFunction.java | 64 + .../process/window/function/value/LagFunction.java | 77 + .../window/function/value/LastValueFunction.java | 64 + .../window/function/value/LeadFunction.java | 79 + .../window/function/value/NthValueFunction.java | 81 + .../window/function/value/ValueWindowFunction.java | 52 + .../process/window/partition/Partition.java | 226 + .../window/partition/PartitionExecutor.java | 197 + .../process/window/partition/frame/Frame.java} | 19 +- .../process/window/partition/frame/FrameInfo.java | 145 + .../window/partition/frame/GroupsFrame.java | 238 ++ .../process/window/partition/frame/RangeFrame.java | 617 +++ .../process/window/partition/frame/RowsFrame.java | 108 + .../operator/process/window/utils/ColumnList.java | 141 + .../operator/process/window/utils/Range.java} | 26 +- .../process/window/utils/RowComparator.java | 231 ++ .../execution/operator/source/FileLoaderUtils.java | 4 +- .../InformationSchemaContentSupplierFactory.java | 340 +- .../relational/aggregation/AvgAccumulator.java | 2 +- .../relational/aggregation/TableAggregator.java | 49 +- .../grouped/HashAggregationOperator.java | 4 +- .../grouped/StreamingAggregationOperator.java | 9 +- .../grouped/StreamingHashAggregationOperator.java | 4 +- .../relational/ColumnTransformerBuilder.java | 249 +- .../execution/schedule/DriverScheduler.java | 8 - .../queryengine/metric/QueryPlanCostMetricSet.java | 68 +- .../iotdb/db/queryengine/plan/Coordinator.java | 25 +- .../db/queryengine/plan/analyze/AnalyzeUtils.java | 9 +- .../queryengine/plan/analyze/AnalyzeVisitor.java | 49 +- .../db/queryengine/plan/analyze/Analyzer.java | 3 +- .../queryengine/plan/analyze/TemplatedAnalyze.java | 3 +- .../analyze/cache/partition/PartitionCache.java | 10 +- .../schema/dualkeycache/IDualKeyCacheStats.java | 6 + .../cache/schema/dualkeycache/impl/CacheStats.java | 24 +- .../schema/dualkeycache/impl/DualKeyCacheImpl.java | 122 +- .../plan/analyze/load/LoadTsFileAnalyzer.java | 553 ++- .../analyze/load/LoadTsFileTableSchemaCache.java | 11 +- .../load/LoadTsFileToTableModelAnalyzer.java | 226 - .../load/LoadTsFileToTreeModelAnalyzer.java | 187 - .../analyze/load/LoadTsFileTreeSchemaCache.java | 7 +- .../load/TreeSchemaAutoCreatorAndVerifier.java | 6 +- .../analyze/schema/AutoCreateSchemaExecutor.java | 6 +- .../analyze/schema/ClusterSchemaFetchExecutor.java | 4 +- .../plan/analyze/schema/SchemaValidator.java | 14 +- .../plan/execution/IQueryExecution.java | 2 + .../queryengine/plan/execution/QueryExecution.java | 19 +- .../plan/execution/config/ConfigExecution.java | 9 +- .../execution/config/TableConfigTaskVisitor.java | 108 +- .../execution/config/TreeConfigTaskVisitor.java | 31 + .../config/executor/ClusterConfigTaskExecutor.java | 114 +- .../config/executor/IConfigTaskExecutor.java | 23 +- ...teRegionTask.java => RemoveConfigNodeTask.java} | 14 +- .../config/metadata/ShowPipePluginsTask.java | 4 +- .../config/metadata/region/ExtendRegionTask.java | 20 +- .../config/metadata/region/MigrateRegionTask.java | 21 +- .../metadata/region/ReconstructRegionTask.java | 25 +- .../config/metadata/region/RemoveRegionTask.java | 20 +- .../RelationalAuthorizerTask.java} | 23 +- .../SetSqlDialectTask.java} | 15 +- .../db/queryengine/plan/parser/ASTVisitor.java | 64 +- .../db/queryengine/plan/planner/IPlanner.java | 3 +- .../plan/planner/LogicalPlanVisitor.java | 4 +- .../queryengine/plan/planner/LogicalPlanner.java | 6 +- .../plan/planner/TableOperatorGenerator.java | 9 +- .../queryengine/plan/planner/TreeModelPlanner.java | 20 +- .../plan/node/load/LoadSingleTsFileNode.java | 12 +- .../plan/node/load/LoadTsFilePieceNode.java | 6 +- .../metadata/write/view/AlterLogicalViewNode.java | 2 +- .../plan/planner/plan/node/write/InsertNode.java | 1 + .../plan/node/write/RelationalDeleteDataNode.java | 4 +- .../plan/node/write/RelationalInsertRowNode.java | 5 + .../plan/relational/analyzer/Analyzer.java | 3 +- .../relational/analyzer/StatementAnalyzer.java | 38 +- .../relational/metadata/TableMetadataImpl.java | 20 + .../fetcher/cache/TableDeviceLastCache.java | 2 +- .../fetcher/cache/TableDeviceSchemaCache.java | 19 +- .../cache/TableDeviceSchemaCacheMetrics.java | 34 + .../plan/relational/planner/RelationPlanner.java | 3 +- .../relational/planner/TableLogicalPlanner.java | 16 +- .../plan/relational/planner/TableModelPlanner.java | 32 +- .../distribute/TableDistributedPlanner.java | 11 +- ...rrelatedGlobalAggregationWithoutProjection.java | 1 - .../DataNodeLocationSupplierFactory.java | 22 +- .../optimizations/PushPredicateIntoTableScan.java | 6 +- .../plan/relational/security/AccessControl.java | 18 + .../relational/security/AccessControlImpl.java | 197 + .../relational/security/AllowAllAccessControl.java | 12 + .../relational/security/ITableAuthChecker.java | 17 + .../relational/security/ITableAuthCheckerImpl.java | 169 + .../relational/security/TableModelPrivilege.java | 54 +- .../plan/relational/sql/ast/AstVisitor.java | 36 + .../plan/relational/sql/ast/ExtendRegion.java | 77 + .../plan/relational/sql/ast/InsertRows.java | 2 +- .../relational/sql/ast/LoadConfiguration.java} | 22 +- .../plan/relational/sql/ast/LoadTsFile.java | 21 +- .../plan/relational/sql/ast/MigrateRegion.java | 90 + .../plan/relational/sql/ast/ReconstructRegion.java | 76 + .../sql/ast/RelationalAuthorStatement.java | 247 ++ .../plan/relational/sql/ast/RemoveConfigNode.java | 72 + .../plan/relational/sql/ast/RemoveRegion.java | 77 + .../plan/relational/sql/ast/SetSqlDialect.java | 79 + .../plan/relational/sql/ast/SetSystemStatus.java} | 22 +- .../relational/sql/ast/WrappedInsertStatement.java | 78 +- .../plan/relational/sql/parser/AstBuilder.java | 384 +- .../plan/relational/sql/util/SqlFormatter.java | 223 + .../plan/relational/type/AuthorRType.java | 49 +- .../plan/scheduler/load/LoadTsFileScheduler.java | 47 +- .../statement/AuthorityInformationStatement.java | 2 +- .../plan/statement/StatementVisitor.java | 21 + .../plan/statement/crud/DeleteDataStatement.java | 3 +- .../plan/statement/crud/InsertBaseStatement.java | 52 +- .../crud/InsertMultiTabletsStatement.java | 11 + .../plan/statement/crud/InsertRowStatement.java | 7 + .../crud/InsertRowsOfOneDeviceStatement.java | 5 + .../plan/statement/crud/InsertRowsStatement.java | 11 + .../plan/statement/crud/InsertStatement.java | 2 +- .../plan/statement/crud/InsertTabletStatement.java | 10 + .../plan/statement/crud/LoadTsFileStatement.java | 18 +- .../plan/statement/crud/QueryStatement.java | 2 +- .../InternalBatchActivateTemplateStatement.java | 3 +- .../InternalCreateMultiTimeSeriesStatement.java | 2 +- .../InternalCreateTimeSeriesStatement.java | 2 +- .../metadata/AlterTimeSeriesStatement.java | 3 +- .../statement/metadata/CountDevicesStatement.java | 6 +- .../metadata/CountTimeSeriesStatement.java | 6 +- .../metadata/CountTimeSlotListStatement.java | 7 + .../metadata/CreateAlignedTimeSeriesStatement.java | 2 +- .../metadata/CreateContinuousQueryStatement.java | 2 +- .../metadata/CreateFunctionStatement.java | 2 +- .../metadata/CreateMultiTimeSeriesStatement.java | 2 +- .../metadata/CreateTimeSeriesStatement.java | 3 +- .../statement/metadata/CreateTriggerStatement.java | 2 +- .../metadata/DatabaseSchemaStatement.java | 2 +- .../metadata/DeleteDatabaseStatement.java | 2 +- .../metadata/DeleteTimeSeriesStatement.java | 3 +- .../metadata/DropContinuousQueryStatement.java | 2 +- .../statement/metadata/DropFunctionStatement.java | 2 +- .../statement/metadata/DropTriggerStatement.java | 2 +- .../statement/metadata/GetRegionIdStatement.java | 7 + .../metadata/GetSeriesSlotListStatement.java | 7 + .../metadata/GetTimeSlotListStatement.java | 7 + .../RemoveConfigNodeStatement.java} | 32 +- .../metadata/RemoveDataNodeStatement.java | 9 +- .../plan/statement/metadata/SetTTLStatement.java | 3 +- .../statement/metadata/ShowClusterIdStatement.java | 7 + .../statement/metadata/ShowClusterStatement.java | 9 +- .../metadata/ShowConfigNodesStatement.java | 4 +- .../metadata/ShowContinuousQueriesStatement.java | 2 +- .../statement/metadata/ShowDataNodesStatement.java | 4 +- .../statement/metadata/ShowDevicesStatement.java | 6 +- .../statement/metadata/ShowFunctionsStatement.java | 2 +- .../statement/metadata/ShowRegionStatement.java | 4 +- .../metadata/ShowTimeSeriesStatement.java | 6 +- .../statement/metadata/ShowTriggersStatement.java | 2 +- .../metadata/model/CreateModelStatement.java | 2 +- .../metadata/model/DropModelStatement.java | 2 +- .../metadata/model/ShowAINodesStatement.java | 7 + .../metadata/model/ShowModelsStatement.java | 2 +- .../metadata/pipe/AlterPipeStatement.java | 2 +- .../metadata/pipe/CreatePipePluginStatement.java | 2 +- .../metadata/pipe/CreatePipeStatement.java | 2 +- .../metadata/pipe/DropPipePluginStatement.java | 2 +- .../statement/metadata/pipe/DropPipeStatement.java | 2 +- .../metadata/pipe/ShowPipePluginsStatement.java | 2 +- .../metadata/pipe/ShowPipesStatement.java | 2 +- .../metadata/pipe/StartPipeStatement.java | 2 +- .../statement/metadata/pipe/StopPipeStatement.java | 2 +- .../metadata/region/ExtendRegionStatement.java | 9 +- .../metadata/region/MigrateRegionStatement.java | 9 +- .../region/ReconstructRegionStatement.java | 9 +- .../metadata/region/RemoveRegionStatement.java | 9 +- .../subscription/CreateTopicStatement.java | 2 +- .../metadata/subscription/DropTopicStatement.java | 2 +- .../subscription/ShowSubscriptionsStatement.java | 2 +- .../metadata/subscription/ShowTopicsStatement.java | 2 +- .../template/ActivateTemplateStatement.java | 3 +- .../template/BatchActivateTemplateStatement.java | 3 +- .../template/DeactivateTemplateStatement.java | 3 +- .../metadata/view/AlterLogicalViewStatement.java | 6 +- .../metadata/view/CreateLogicalViewStatement.java | 6 +- .../metadata/view/DeleteLogicalViewStatement.java | 3 +- .../metadata/view/RenameLogicalViewStatement.java | 2 +- .../plan/statement/sys/AuthorStatement.java | 56 +- .../plan/statement/sys/KillQueryStatement.java | 9 +- ...nStatement.java => SetSqlDialectStatement.java} | 38 +- .../ShowCurrentSqlDialectStatement.java} | 19 +- .../ShowCurrentUserStatement.java} | 19 +- .../plan/statement/sys/ShowQueriesStatement.java | 9 +- .../statement/sys/TestConnectionStatement.java | 3 +- .../AbstractGreatestLeastColumnTransformer.java | 109 + .../multi/BinaryGreatestColumnTransformer.java | 53 + .../column/multi/BinaryLeastColumnTransformer.java | 53 + .../multi/BooleanGreatestColumnTransformer.java | 52 + .../multi/BooleanLeastColumnTransformer.java | 49 + .../multi/DoubleGreatestColumnTransformer.java | 52 + .../column/multi/DoubleLeastColumnTransformer.java | 52 + .../multi/FloatGreatestColumnTransformer.java | 52 + .../column/multi/FloatLeastColumnTransformer.java | 52 + .../multi/Int32GreatestColumnTransformer.java | 52 + .../column/multi/Int32LeastColumnTransformer.java | 52 + .../multi/Int64GreatestColumnTransformer.java | 52 + .../column/multi/Int64LeastColumnTransformer.java | 52 + .../schemaregion/utils/ResourceByPathUtils.java | 177 +- .../java/org/apache/iotdb/db/service/DataNode.java | 66 +- .../iotdb/db/service/DataNodeShutdownHook.java | 22 +- .../{RPCService.java => ExternalRPCService.java} | 6 +- ...viceMBean.java => ExternalRPCServiceMBean.java} | 2 +- .../org/apache/iotdb/db/service/MQTTService.java | 2 + .../iotdb/db/service/metrics/WritingMetrics.java | 29 +- .../iotdb/db/storageengine/StorageEngine.java | 54 +- .../db/storageengine/dataregion/DataRegion.java | 30 +- .../performer/impl/FastCompactionPerformer.java | 4 +- .../impl/ReadChunkCompactionPerformer.java | 11 +- .../execute/utils/MultiTsFileDeviceIterator.java | 21 +- ...BatchedFastAlignedSeriesCompactionExecutor.java | 26 +- ...edReadChunkAlignedSeriesCompactionExecutor.java | 40 +- .../utils/AlignedSeriesBatchCompactionUtils.java | 28 +- .../fast/FastAlignedSeriesCompactionExecutor.java | 23 +- .../executor/fast/SeriesCompactionExecutor.java | 30 +- .../readchunk/AlignedSeriesCompactionExecutor.java | 4 +- .../ReadChunkAlignedSeriesCompactionExecutor.java | 37 +- .../readchunk/SingleSeriesCompactionExecutor.java | 30 +- .../utils/writer/AbstractCompactionWriter.java | 5 +- .../writer/AbstractCrossCompactionWriter.java | 7 +- .../writer/AbstractInnerCompactionWriter.java | 1 + .../utils/writer/FastCrossCompactionWriter.java | 16 +- .../utils/writer/FastInnerCompactionWriter.java | 16 +- .../writer/ReadPointCrossCompactionWriter.java | 1 + .../compaction/io/CompactionDiskTSMIterator.java | 42 +- .../compaction/io/CompactionTsFileInput.java | 122 +- .../compaction/io/CompactionTsFileReader.java | 60 +- .../compaction/io/CompactionTsFileWriter.java | 9 + .../compaction/repair/RepairDataFileScanUtil.java | 56 +- .../estimator/AbstractCompactionEstimator.java | 9 +- .../selector/impl/SettleSelectorImpl.java | 24 +- .../selector/utils/TsFileResourceCandidate.java | 13 +- .../dataregion/flush/MemTableFlushTask.java | 18 +- .../dataregion/memtable/AbstractMemTable.java | 203 +- .../memtable/AlignedReadOnlyMemChunk.java | 588 ++- .../memtable/AlignedWritableMemChunk.java | 774 +++- .../memtable/AlignedWritableMemChunkGroup.java | 36 +- .../dataregion/memtable/IMemTable.java | 10 +- .../dataregion/memtable/IWritableMemChunk.java | 56 +- .../memtable/IWritableMemChunkGroup.java | 11 +- .../dataregion/memtable/ReadOnlyMemChunk.java | 274 +- .../dataregion/memtable/TsFileProcessor.java | 113 +- .../dataregion/memtable/WritableMemChunk.java | 603 ++- .../dataregion/memtable/WritableMemChunkGroup.java | 52 +- .../dataregion/modification/ModificationFile.java | 16 +- .../filescan/impl/MemAlignedChunkHandleImpl.java | 21 +- .../read/reader/chunk/DiskAlignedChunkLoader.java | 5 +- .../read/reader/chunk/MemAlignedChunkReader.java | 259 +- .../read/reader/chunk/MemAlignedPageReader.java | 137 +- .../read/reader/chunk/MemChunkReader.java | 139 +- .../read/reader/chunk/MemPageReader.java | 129 +- .../reader/chunk/metadata/AlignedPageMetadata.java | 74 + .../metadata/DiskAlignedChunkMetadataLoader.java | 4 +- .../read/reader/chunk/metadata/PageMetadata.java | 90 + .../dataregion/tsfile/TsFileResource.java | 84 +- .../tsfile/timeindex/ArrayDeviceTimeIndex.java | 23 +- .../dataregion/tsfile/timeindex/FileTimeIndex.java | 9 +- .../dataregion/tsfile/timeindex/ITimeIndex.java | 5 +- .../utils/TsFileDeviceStartEndTimeIterator.java | 6 +- .../dataregion/utils/TsFileResourceUtils.java | 30 +- .../storageengine/dataregion/wal/io/WALReader.java | 2 +- .../wal/recover/file/TsFilePlanRedoer.java | 9 +- .../file/UnsealedTsFileRecoverPerformer.java | 10 +- .../db/storageengine/load/LoadTsFileManager.java | 5 +- .../load/active/ActiveLoadTsFileLoader.java | 3 +- .../load/config/LoadTsFileConfigurator.java | 28 +- ...leStatementDataTypeConvertExecutionVisitor.java | 4 + ...eeStatementDataTypeConvertExecutionVisitor.java | 4 + .../load/splitter/AlignedChunkData.java | 16 +- .../splitter/BatchedAlignedValueChunkData.java | 8 +- .../load/splitter/NonAlignedChunkData.java | 8 +- .../load/splitter/TsFileSplitter.java | 7 + .../broker/SubscriptionPrefetchingQueue.java | 14 +- .../broker/SubscriptionPrefetchingTabletQueue.java | 12 +- .../broker/SubscriptionPrefetchingTsFileQueue.java | 12 +- .../batch/SubscriptionPipeTabletEventBatch.java | 52 +- .../SubscriptionPipeTabletIterationSnapshot.java | 62 + .../event/cache/SubscriptionPollResponseCache.java | 11 + .../pipe/SubscriptionPipeTabletBatchEvents.java | 29 +- .../response/SubscriptionEventTabletResponse.java | 5 - .../response/SubscriptionEventTsFileResponse.java | 7 +- .../apache/iotdb/db/tools/IoTDBDataDirViewer.java | 6 +- .../iotdb/db/tools/TsFileResourcePrinter.java | 10 +- .../utils/TsFileRewriteOverPrecisedI64Scan.java | 223 + .../utils/TsFileRewriteSmallRangeI64Scan.java | 230 ++ .../iotdb/db/tools/utils/TsFileSequenceScan.java | 34 +- .../iotdb/db/tools/utils/TsFileStatisticScan.java | 266 ++ .../iotdb/db/tools/utils/TsFileValidationScan.java | 10 +- .../TsFileOverlapValidationAndRepairTool.java | 8 +- .../org/apache/iotdb/db/utils/DateTimeUtils.java | 4 +- .../apache/iotdb/db/utils/ErrorHandlingUtils.java | 6 +- .../java/org/apache/iotdb/db/utils/MathUtils.java | 24 +- .../apache/iotdb/db/utils/ModificationUtils.java | 26 +- .../iotdb/db/utils/TimestampPrecisionUtils.java | 20 +- .../iotdb/db/utils/constant/SqlConstant.java | 2 +- .../db/utils/datastructure/AlignedTVList.java | 457 ++- .../db/utils/datastructure/BackAlignedTVList.java | 66 +- .../db/utils/datastructure/BackBinaryTVList.java | 72 +- .../db/utils/datastructure/BackBooleanTVList.java | 71 +- .../db/utils/datastructure/BackDoubleTVList.java | 71 +- .../db/utils/datastructure/BackFloatTVList.java | 71 +- .../db/utils/datastructure/BackIntTVList.java | 72 +- .../db/utils/datastructure/BackLongTVList.java | 71 +- .../iotdb/db/utils/datastructure/BackwardSort.java | 66 +- .../iotdb/db/utils/datastructure/BinaryTVList.java | 152 +- .../db/utils/datastructure/BooleanTVList.java | 99 +- .../iotdb/db/utils/datastructure/DoubleTVList.java | 100 +- .../iotdb/db/utils/datastructure/FloatTVList.java | 100 +- .../iotdb/db/utils/datastructure/IntTVList.java | 99 +- .../iotdb/db/utils/datastructure/LongTVList.java | 99 +- .../MergeSortAlignedTVListIterator.java | 242 ++ .../datastructure/MergeSortTvListIterator.java | 162 + ...ickIntTVList.java => PageColumnAccessInfo.java} | 47 +- .../db/utils/datastructure/QuickAlignedTVList.java | 34 +- .../db/utils/datastructure/QuickBinaryTVList.java | 34 +- .../db/utils/datastructure/QuickBooleanTVList.java | 31 +- .../db/utils/datastructure/QuickDoubleTVList.java | 31 +- .../db/utils/datastructure/QuickFloatTVList.java | 31 +- .../db/utils/datastructure/QuickIntTVList.java | 37 +- .../db/utils/datastructure/QuickLongTVList.java | 31 +- .../iotdb/db/utils/datastructure/QuickSort.java | 28 +- .../iotdb/db/utils/datastructure/TVList.java | 417 +- .../db/utils/datastructure/TimAlignedTVList.java | 109 +- .../db/utils/datastructure/TimBinaryTVList.java | 113 +- .../db/utils/datastructure/TimBooleanTVList.java | 111 +- .../db/utils/datastructure/TimDoubleTVList.java | 111 +- .../db/utils/datastructure/TimFloatTVList.java | 112 +- .../iotdb/db/utils/datastructure/TimIntTVList.java | 112 +- .../db/utils/datastructure/TimLongTVList.java | 111 +- .../iotdb/db/utils/datastructure/TimSort.java | 105 +- ....apache.iotdb.db.protocol.mqtt.PayloadFormatter | 1 + .../iotdb/db/auth/AuthorizerManagerTest.java | 318 +- .../auth/authorizer/LocalFileAuthorizerTest.java | 226 +- .../db/auth/entity/DataBasePrivilegeTest.java | 75 + .../iotdb/db/auth/entity/PathPrivilegeTest.java | 42 +- .../org/apache/iotdb/db/auth/entity/RoleTest.java | 57 +- .../iotdb/db/auth/entity/TablePrivilegeTest.java | 67 + .../org/apache/iotdb/db/auth/entity/UserTest.java | 14 +- .../db/auth/role/LocalFileRoleAccessorTest.java | 87 +- .../db/auth/role/LocalFileRoleManagerTest.java | 162 +- .../db/auth/user/LocalFileUserAccessorTest.java | 119 +- .../db/auth/user/LocalFileUserManagerTest.java | 117 +- .../db/protocol/mqtt/JSONPayloadFormatterTest.java | 8 +- .../db/protocol/mqtt/LinePayloadFormatterTest.java | 91 + .../db/protocol/mqtt/PayloadFormatManagerTest.java | 2 +- .../db/protocol/rest/IoTDBRestServiceTest.java | 6 +- .../db/queryengine/execution/exchange/Utils.java | 3 + .../operator/MergeTreeSortOperatorTest.java | 6 + .../execution/operator/OperatorMemoryTest.java | 2 + .../process/window/TableWindowOperatorTest.java | 320 ++ .../window/TableWindowOperatorTestUtils.java | 131 + .../process/window/function/FunctionTestUtils.java | 113 + .../aggregate/AggregationWindowFunctionTest.java | 195 + .../window/function/rank/CumeDistFunctionTest.java | 72 + .../function/rank/DenseRankFunctionTest.java | 71 + .../window/function/rank/NTileFunctionTest.java | 128 + .../function/rank/PercentRankFunctionTest.java | 72 + .../window/function/rank/RankFunctionTest.java | 71 + .../function/rank/RowNumberFunctionTest.java | 70 + .../function/value/FirstValueFunctionTest.java | 120 + .../window/function/value/LagFunctionTest.java | 159 + .../function/value/LastValueFunctionTest.java | 120 + .../window/function/value/LeadFunctionTest.java | 159 + .../function/value/NthValueFunctionTest.java | 150 + .../window/partition/frame/FrameTestUtils.java | 139 + .../window/partition/frame/GroupsFrameTest.java | 359 ++ .../window/partition/frame/RangeFrameTest.java | 1127 +++++ .../window/partition/frame/RowsFrameTest.java | 359 ++ .../plan/parser/StatementGeneratorTest.java | 16 +- .../plan/relational/analyzer/AnalyzerTest.java | 7 +- .../plan/relational/analyzer/ShowQueriesTest.java | 7 +- .../relational/sql/parser/AuthorStatementTest.java | 351 ++ .../security/encrypt/MessageDigestEncryptTest.java | 8 +- .../storageengine/dataregion/DataRegionTest.java | 6 +- .../compaction/CompactionDataTypeNotMatchTest.java | 19 +- .../FastCompactionPerformerWithEmptyPageTest.java | 5 +- ...InconsistentCompressionTypeAndEncodingTest.java | 6 +- .../FastInnerCompactionPerformerTest.java | 140 +- .../ReadPointCompactionPerformerTest.java | 134 +- .../TsFileValidationCorrectnessTests.java | 14 +- ...eCompactionWithFastPerformerValidationTest.java | 14 +- ...actionWithReadPointPerformerValidationTest.java | 14 +- .../InsertionCrossSpaceCompactionRecoverTest.java | 4 +- .../InsertionCrossSpaceCompactionSelectorTest.java | 4 +- .../cross/RewriteCompactionFileSelectorTest.java | 6 +- .../repair/RepairUnsortedFileCompactionTest.java | 8 +- .../CompactionTableModelTestFileWriter.java | 2 +- .../compaction/utils/BatchCompactionUtilsTest.java | 39 +- .../compaction/utils/CompactionCheckerUtils.java | 11 +- .../memtable/MemChunkDeserializeTest.java | 332 ++ .../dataregion/memtable/PrimitiveMemTableTest.java | 41 +- .../dataregion/memtable/TsFileProcessorTest.java | 443 +- .../read/control/FileReaderManagerTest.java | 5 +- .../reader/chunk/AlignedMemPageReaderTest.java | 32 +- .../reader/chunk/MemAlignedChunkLoaderTest.java | 138 +- .../read/reader/chunk/MemChunkLoaderTest.java | 260 +- .../read/reader/chunk/MemPageReaderTest.java | 12 +- .../dataregion/tsfile/TsFileResourceTest.java | 12 +- .../wal/recover/WALRecoverManagerTest.java | 21 +- .../file/SealedTsFileRecoverPerformerTest.java | 33 +- .../wal/recover/file/TsFilePlanRedoerTest.java | 18 +- .../file/UnsealedTsFileRecoverPerformerTest.java | 21 +- .../apache/iotdb/db/utils/DateTimeUtilsTest.java | 14 + .../apache/iotdb/db/utils/EnvironmentUtils.java | 4 - .../db/utils/TimestampPrecisionUtilsTest.java | 10 + .../db/utils/datastructure/AlignedTVListTest.java | 20 +- .../db/utils/datastructure/BinaryTVListTest.java | 30 - .../datanode/src/test/resources/logback-test.xml | 2 +- iotdb-core/metrics/core/pom.xml | 4 +- iotdb-core/metrics/interface/pom.xml | 8 +- iotdb-core/metrics/pom.xml | 2 +- iotdb-core/node-commons/pom.xml | 24 +- .../conf/iotdb-system.properties.template | 46 +- .../src/assembly/resources/sbin/health_check.bat | 2 +- .../commons/auth/authorizer/BasicAuthorizer.java | 282 +- .../iotdb/commons/auth/authorizer/IAuthorizer.java | 146 +- .../commons/auth/authorizer/OpenIdAuthorizer.java | 15 +- .../commons/auth/entity/DatabasePrivilege.java | 250 ++ .../IEntityAccessor.java} | 42 +- .../iotdb/commons/auth/entity/ModelType.java | 8 +- .../iotdb/commons/auth/entity/PathPrivilege.java | 151 +- .../commons/auth/entity/PriPrivilegeType.java | 153 - .../commons/auth/entity/PrivilegeModelType.java | 10 +- .../iotdb/commons/auth/entity/PrivilegeType.java | 90 +- .../iotdb/commons/auth/entity/PrivilegeUnion.java | 151 + .../org/apache/iotdb/commons/auth/entity/Role.java | 566 ++- .../iotdb/commons/auth/entity/TablePrivilege.java | 166 + .../org/apache/iotdb/commons/auth/entity/User.java | 89 +- .../iotdb/commons/auth/role/BasicRoleManager.java | 267 +- .../iotdb/commons/auth/role/IEntityManager.java | 77 + .../iotdb/commons/auth/role/IRoleAccessor.java | 70 - .../iotdb/commons/auth/role/IRoleManager.java | 109 - .../commons/auth/role/LocalFileRoleAccessor.java | 288 +- .../commons/auth/role/LocalFileRoleManager.java | 6 +- .../iotdb/commons/auth/user/BasicUserManager.java | 260 +- .../iotdb/commons/auth/user/IUserManager.java | 162 - .../commons/auth/user/LocalFileUserAccessor.java | 414 +- .../commons/auth/user/LocalFileUserManager.java | 8 +- .../async/AsyncPipeDataTransferServiceClient.java | 14 + .../apache/iotdb/commons/conf/CommonConfig.java | 70 +- .../iotdb/commons/conf/CommonDescriptor.java | 49 +- .../apache/iotdb/commons/conf/IoTDBConstant.java | 1 + .../iotdb/commons/consensus/ConsensusGroupId.java | 7 +- .../commons/partition/DataPartitionTable.java | 10 +- .../commons/partition/SeriesPartitionTable.java | 20 +- .../agent/plugin/builtin/BuiltinPipePlugin.java | 5 + .../builtin/connector/opcda/OpcDaConnector.java} | 21 +- .../commons/pipe/agent/task/PipeTaskAgent.java | 52 +- .../task/connection/BlockingPendingQueue.java | 14 + .../iotdb/commons/pipe/config/PipeConfig.java | 31 +- .../config/constant/PipeConnectorConstant.java | 15 + .../pipe/connector/client/IoTDBClientManager.java | 10 +- .../connector/client/IoTDBSyncClientManager.java | 14 +- .../common/PipeTransferHandshakeConstant.java | 2 + .../connector/protocol/IoTDBAirGapConnector.java | 21 +- .../pipe/connector/protocol/IoTDBConnector.java | 20 +- .../connector/protocol/IoTDBSslSyncConnector.java | 8 +- .../options/PipeInclusionOptions.java | 15 +- .../iotdb/commons/pipe/event/EnrichedEvent.java | 17 +- .../commons/pipe/receiver/IoTDBFileReceiver.java | 19 +- .../schema/column/ColumnHeaderConstant.java | 35 +- .../commons/schema/table/InformationSchema.java | 109 + .../iotdb/commons/service/metric/enums/Metric.java | 2 + .../relational/TableBuiltinScalarFunction.java | 2 + .../org/apache/iotdb/commons/utils/AuthUtils.java | 299 +- .../org/apache/iotdb/commons/utils/IOUtils.java | 140 +- .../apache/iotdb/commons/utils/SerializeUtils.java | 21 + .../apache/iotdb/commons/utils/AuthUtilsTest.java | 72 +- iotdb-core/pom.xml | 2 +- iotdb-core/relational-grammar/pom.xml | 2 +- .../db/relational/grammar/sql/RelationalSql.g4 | 161 +- iotdb-protocol/openapi/pom.xml | 2 +- iotdb-protocol/pom.xml | 2 +- iotdb-protocol/thrift-ainode/pom.xml | 4 +- iotdb-protocol/thrift-commons/pom.xml | 2 +- .../thrift-commons/src/main/thrift/common.thrift | 1 + iotdb-protocol/thrift-confignode/pom.xml | 4 +- .../src/main/thrift/confignode.thrift | 63 +- iotdb-protocol/thrift-consensus/pom.xml | 4 +- .../src/main/thrift/pipeconsensus.thrift | 5 +- iotdb-protocol/thrift-datanode/pom.xml | 4 +- library-udf/pom.xml | 4 +- pom.xml | 29 +- 928 files changed, 46423 insertions(+), 21846 deletions(-) rename .github/workflows/{pipe-it-2cluster.yml => pipe-it.yml} (62%) copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/mqtt/Message.java => example/mqtt-customize/src/main/java/org/apache/iotdb/mqtt/server/MyMessage.java (68%) copy integration-test/src/main/java/org/apache/iotdb/itbase/category/{MultiClusterIT2AutoCreateSchema.java => MultiClusterIT2DualTableManualBasic.java} (94%) copy integration-test/src/main/java/org/apache/iotdb/itbase/category/{MultiClusterIT2AutoCreateSchema.java => MultiClusterIT2DualTableManualEnhanced.java} (93%) rename integration-test/src/main/java/org/apache/iotdb/itbase/category/{MultiClusterIT2ManualCreateSchema.java => MultiClusterIT2DualTreeAutoBasic.java} (94%) copy integration-test/src/main/java/org/apache/iotdb/itbase/category/{MultiClusterIT2AutoCreateSchema.java => MultiClusterIT2DualTreeAutoEnhanced.java} (94%) rename integration-test/src/main/java/org/apache/iotdb/itbase/category/{MultiClusterIT2TableModel.java => MultiClusterIT2DualTreeManual.java} (94%) rename integration-test/src/test/java/org/apache/iotdb/cli/it/{AbstractScript.java => AbstractScriptIT.java} (98%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/{IoTDBAutoRegionGroupExtensionIT2.java => IoTDBAutoRegionGroupExtension2IT.java} (98%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/{IoTDBPartitionTableAutoCleanTest.java => IoTDBPartitionTableAutoCleanIT.java} (99%) copy integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/commit/batch/{IoTDBRegionMigrateNormalITForIoTV2Batch.java => IoTDBRegionMigrateNormalITForIoTV2BatchIT.java} (96%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/commit/batch/{IoTDBRegionMigrateOtherITForIoTV2Batch.java => IoTDBRegionMigrateOtherForIoTV2BatchIT.java} (97%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/commit/stream/{IoTDBRegionMigrateNormalITForIoTV2Stream.java => IoTDBRegionMigrateNormalForIoTV2StreamIT.java} (97%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/commit/stream/{IoTDBRegionMigrateOtherITForIoTV2Stream.java => IoTDBRegionMigrateOtherITForIoTV2StreamIT.java} (97%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/daily/datanodecrash/iotv2/batch/{IoTDBRegionMigrateCoordinatorCrashWhenRemoveRemotePeerForIoTV2Batch.java => IoTDBRegionMigrateCoordinatorCrashWhenRemoveRemotePeerForIoTV2BatchIT.java} (99%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/daily/datanodecrash/iotv2/batch/{IoTDBRegionMigrateDataNodeCrashForIoTV2Batch.java => IoTDBRegionMigrateDataNodeCrashForIoTV2BatchIT.java} (98%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/daily/datanodecrash/iotv2/batch/{IoTDBRegionMigrateOriginalCrashWhenDeleteLocalPeerForIoTV2Batch.java => IoTDBRegionMigrateOriginalCrashWhenDeleteLocalPeerForIoTV2BatchIT.java} (99%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/daily/datanodecrash/iotv2/batch/{IoTDBRegionMigrateOriginalCrashWhenRemoveRemotePeerForIoTV2Batch.java => IoTDBRegionMigrateOriginalCrashWhenRemoveRemotePeerForIoTV2BatchIT.java} (99%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/daily/datanodecrash/iotv2/stream/{IoTDBRegionMigrateCoordinatorCrashWhenRemoveRemotePeerForIoTV2Stream.java => IoTDBRegionMigrateCoordinatorCrashWhenRemoveRemotePeerForIoTV2StreamIT.java} (99%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/daily/datanodecrash/iotv2/stream/{IoTDBRegionMigrateDataNodeCrashForIoTV2Stream.java => IoTDBRegionMigrateDataNodeCrashForIoTV2StreamIT.java} (98%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/daily/datanodecrash/iotv2/stream/{IoTDBRegionMigrateOriginalCrashWhenDeleteLocalPeerForIoTV2Stream.java => IoTDBRegionMigrateOriginalCrashWhenDeleteLocalPeerForIoTV2StreamIT.java} (99%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/daily/datanodecrash/iotv2/stream/{IoTDBRegionMigrateOriginalCrashWhenRemoveRemotePeerForIoTV2Stream.java => IoTDBRegionMigrateOriginalCrashWhenRemoveRemotePeerForIoTV2StreamIT.java} (99%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/daily/iotv2/batch/{IoTDBRegionMigrateClusterCrashIoTV2Batch.java => IoTDBRegionMigrateClusterCrashIoTV2BatchIT.java} (97%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/daily/iotv2/batch/{IoTDBRegionMigrateConfigNodeCrashIoTV2Batch.java => IoTDBRegionMigrateConfigNodeCrashIoTV2BatchIT.java} (98%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/daily/iotv2/stream/{IoTDBRegionMigrateClusterCrashIoTV2Stream.java => IoTDBRegionMigrateClusterCrashIoTV2StreamIT.java} (98%) rename integration-test/src/test/java/org/apache/iotdb/confignode/it/regionmigration/pass/daily/iotv2/stream/{IoTDBRegionMigrateConfigNodeCrashIoTV2Stream.java => IoTDBRegionMigrateConfigNodeCrashIoTV2StreamIT.java} (98%) create mode 100644 integration-test/src/test/java/org/apache/iotdb/confignode/it/removeconfignode/IoTDBRemoveConfigNodeITFramework.java rename integration-test/src/test/java/org/apache/iotdb/confignode/it/{regionmigration/pass/commit/batch/IoTDBRegionMigrateNormalITForIoTV2Batch.java => removeconfignode/IoTDBRemoveConfigNodeNormalIT.java} (64%) create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityRelationalIT.java create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBRelationalAuthIT.java rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{ => dual}/tablemodel/TableModelUtils.java (99%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel/AbstractPipeTableModelTestIT.java => dual/tablemodel/manual/AbstractPipeTableModelDualManualIT.java} (95%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/basic}/IoTDBPipeAlterIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/basic}/IoTDBPipeDataSinkIT.java (85%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/basic}/IoTDBPipeExtractorIT.java (99%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/basic}/IoTDBPipeIsolationIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/basic}/IoTDBPipeLifeCycleIT.java (82%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/basic}/IoTDBPipeProtocolIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/basic}/IoTDBPipeSwitchStatusIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/basic}/IoTDBPipeSyntaxIT.java (98%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/basic}/IoTDBPipeWithLoadIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/basic}/IoTDBTablePatternFormatIT.java (98%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/enhanced}/IoTDBPipeAutoConflictIT.java (96%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/enhanced}/IoTDBPipeAutoDropIT.java (93%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/enhanced}/IoTDBPipeClusterIT.java (98%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/enhanced}/IoTDBPipeConnectorCompressionIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/enhanced}/IoTDBPipeConnectorParallelIT.java (90%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/enhanced}/IoTDBPipeDoubleLivingIT.java (95%) create mode 100644 integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/tablemodel/manual/enhanced/IoTDBPipeIdempotentIT.java rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{manual/IoTDBPipeTableManualIT.java => dual/tablemodel/manual/enhanced/IoTDBPipeMetaIT.java} (76%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/enhanced}/IoTDBPipeNullValueIT.java (93%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/enhanced}/IoTDBPipeTypeConversionISessionIT.java (95%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{tablemodel => dual/tablemodel/manual/enhanced}/IoTDBPipeTypeConversionIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate/AbstractPipeDualAutoIT.java => dual/treemodel/auto/AbstractPipeDualTreeModelAutoIT.java} (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/basic}/IoTDBPipeAlterIT.java (98%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/basic}/IoTDBPipeConnectorParallelIT.java (90%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/basic}/IoTDBPipeDataSinkIT.java (85%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/basic}/IoTDBPipeExtractorIT.java (99%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/basic}/IoTDBPipeLifeCycleIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/basic}/IoTDBPipeProcessorIT.java (94%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/basic}/IoTDBPipeProtocolIT.java (98%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/basic}/IoTDBPipeSwitchStatusIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/basic}/IoTDBPipeSyntaxIT.java (98%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/basic}/IoTDBTreePatternFormatIT.java (94%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/enhanced}/IoTDBPipeAutoConflictIT.java (98%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/enhanced}/IoTDBPipeAutoDropIT.java (94%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/enhanced}/IoTDBPipeClusterIT.java (98%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/enhanced}/IoTDBPipeConditionalOperationsIT.java (96%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/enhanced}/IoTDBPipeConnectorCompressionIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/enhanced}/IoTDBPipeIdempotentIT.java (79%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/enhanced}/IoTDBPipeNullValueIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/enhanced}/IoTDBPipeWithLoadIT.java (93%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{autocreate => dual/treemodel/auto/enhanced}/PipeNowFunctionIT.java (96%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{manual/AbstractPipeDualManualIT.java => dual/treemodel/manual/AbstractPipeDualTreeModelManualIT.java} (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{ => dual/treemodel}/manual/IoTDBPipeInclusionIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{ => dual/treemodel}/manual/IoTDBPipeManualConflictIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{ => dual/treemodel}/manual/IoTDBPipeMetaHistoricalIT.java (95%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{ => dual/treemodel}/manual/IoTDBPipeMetaLeaderChangeIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{ => dual/treemodel}/manual/IoTDBPipeMetaRestartIT.java (96%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{ => dual/treemodel}/manual/IoTDBPipeMultiSchemaRegionIT.java (95%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{ => dual/treemodel}/manual/IoTDBPipePermissionIT.java (97%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{ => dual/treemodel}/manual/IoTDBPipeReqAutoSliceIT.java (98%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{ => dual/treemodel}/manual/IoTDBPipeTypeConversionISessionIT.java (99%) rename integration-test/src/test/java/org/apache/iotdb/pipe/it/{ => dual/treemodel}/manual/IoTDBPipeTypeConversionIT.java (98%) create mode 100644 integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBAuthenticationTableIT.java create mode 100644 integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBLoadConfigurationTableIT.java create mode 100644 integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBSetSystemStatusTableIT.java create mode 100644 integration-test/src/test/java/org/apache/iotdb/relational/it/mqtt/IoTDBMQTTServiceIT.java create mode 100644 integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/query/IoTDBGreatestLeastTableIT.java create mode 100644 integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/IoTDBMaintainAuthIT.java create mode 100644 integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/IoTDBNullValueIT.java create mode 100644 integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/IoTDBQueryAuthIT.java create mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/common/Constants.java create mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/common/ImportTsFileOperation.java create mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/common/OptionsUtil.java create mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/data/AbstractExportData.java copy iotdb-client/cli/src/main/java/org/apache/iotdb/tool/{tsfile/ImportTsFileBase.java => data/AbstractImportData.java} (55%) delete mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/data/AsyncImportData.java create mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/data/ExportDataTable.java create mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/data/ExportDataTree.java create mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/data/ImportDataTable.java create mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/data/ImportDataTree.java create mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/tsfile/subscription/AbstractSubscriptionTsFile.java create mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/tsfile/subscription/CommonParam.java create mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/tsfile/subscription/SubscriptionTableTsFile.java create mode 100644 iotdb-client/cli/src/main/java/org/apache/iotdb/tool/tsfile/subscription/SubscriptionTreeTsFile.java create mode 100644 iotdb-client/cli/src/test/java/org/apache/iotdb/tool/ImportTsFileOperationTest.java create mode 100644 iotdb-client/client-py/session_ssl_example.py copy iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/{IoTDBDatabaseMetadata.java => IoTDBAbstractDatabaseMetadata.java} (61%) create mode 100644 iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/relational/IoTDBRelationalDatabaseMetadata.java delete mode 100644 iotdb-core/confignode/src/assembly/resources/sbin/remove-confignode.bat delete mode 100755 iotdb-core/confignode/src/assembly/resources/sbin/remove-confignode.sh delete mode 100644 iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/read/auth/AuthorReadPlan.java create mode 100644 iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/auth/AuthorRelationalPlan.java copy iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/auth/{AuthorPlan.java => AuthorTreePlan.java} (54%) create mode 100644 iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/extractor/PipeConfigPhysicalPlanTableScopeParseVisitor.java create mode 100644 iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/extractor/PipeConfigPhysicalPlanTreeScopeParseVisitor.java rename iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/{ConfignodeSnapshotParser.java => ConfigNodeSnapshotParser.java} (91%) create mode 100644 iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/manager/pipe/extractor/PipeConfigPhysicalPlanScopeParseVisitorTest.java copy iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/consensuspipe/{ProgressIndexManager.java => ReplicateProgressManager.java} (81%) delete mode 100644 iotdb-core/datanode/src/assembly/resources/sbin/remove-datanode.bat delete mode 100755 iotdb-core/datanode/src/assembly/resources/sbin/remove-datanode.sh create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/opcda/OpcDaConnector.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/opcda/OpcDaHeader.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/opcda/OpcDaServerHandle.java rename iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/consensus/{ProgressIndexDataNodeManager.java => ReplicateProgressDataNodeManager.java} (78%) create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/mqtt/LinePayloadFormatter.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/mqtt/TableMessage.java copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/mqtt/{Message.java => TreeMessage.java} (87%) create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperator.java copy iotdb-client/session/src/main/java/org/apache/iotdb/session/util/CheckedSupplier.java => iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/WindowFunction.java (58%) create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/aggregate/AggregationWindowFunction.java copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/{source/relational/aggregation/TableAggregator.java => process/window/function/aggregate/WindowAggregator.java} (53%) copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/{plan/analyze/cache/schema/dualkeycache/IDualKeyCacheStats.java => execution/operator/process/window/function/rank/CumeDistFunction.java} (52%) copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/{plan/analyze/cache/schema/dualkeycache/IDualKeyCacheStats.java => execution/operator/process/window/function/rank/DenseRankFunction.java} (54%) create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/NTileFunction.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/PercentRankFunction.java copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/{plan/analyze/cache/schema/dualkeycache/IDualKeyCacheStats.java => execution/operator/process/window/function/rank/RankFunction.java} (51%) create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RankWindowFunction.java rename iotdb-client/session/src/main/java/org/apache/iotdb/session/util/CheckedSupplier.java => iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RowNumberFunction.java (58%) create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/FirstValueFunction.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LagFunction.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LastValueFunction.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LeadFunction.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/NthValueFunction.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/ValueWindowFunction.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/Partition.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/PartitionExecutor.java copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/{plan/relational/security/TableModelPrivilege.java => execution/operator/process/window/partition/frame/Frame.java} (68%) create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/FrameInfo.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/GroupsFrame.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RangeFrame.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RowsFrame.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/utils/ColumnList.java copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/{service/RPCServiceMBean.java => queryengine/execution/operator/process/window/utils/Range.java} (66%) create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/utils/RowComparator.java delete mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileToTableModelAnalyzer.java delete mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileToTreeModelAnalyzer.java copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/{region/MigrateRegionTask.java => RemoveConfigNodeTask.java} (78%) copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/{region/ExtendRegionTask.java => relational/RelationalAuthorizerTask.java} (67%) copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/{metadata/region/RemoveRegionTask.java => session/SetSqlDialectTask.java} (74%) create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/security/ITableAuthCheckerImpl.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExtendRegion.java copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/{service/RPCServiceMBean.java => queryengine/plan/relational/sql/ast/LoadConfiguration.java} (61%) create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/MigrateRegion.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ReconstructRegion.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RelationalAuthorStatement.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveConfigNode.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveRegion.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetSqlDialect.java copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/{service/RPCServiceMBean.java => queryengine/plan/relational/sql/ast/SetSystemStatus.java} (61%) copy integration-test/src/main/java/org/apache/iotdb/itbase/env/DataNodeConfig.java => iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/AuthorRType.java (56%) copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/{sys/TestConnectionStatement.java => metadata/RemoveConfigNodeStatement.java} (75%) copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/{TestConnectionStatement.java => SetSqlDialectStatement.java} (63%) copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/{metadata/ShowConfigNodesStatement.java => sys/ShowCurrentSqlDialectStatement.java} (76%) copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/{metadata/ShowConfigNodesStatement.java => sys/ShowCurrentUserStatement.java} (77%) create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/AbstractGreatestLeastColumnTransformer.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BinaryGreatestColumnTransformer.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BinaryLeastColumnTransformer.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BooleanGreatestColumnTransformer.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BooleanLeastColumnTransformer.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/DoubleGreatestColumnTransformer.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/DoubleLeastColumnTransformer.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/FloatGreatestColumnTransformer.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/FloatLeastColumnTransformer.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int32GreatestColumnTransformer.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int32LeastColumnTransformer.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int64GreatestColumnTransformer.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int64LeastColumnTransformer.java rename iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/{RPCService.java => ExternalRPCService.java} (95%) rename iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/{RPCServiceMBean.java => ExternalRPCServiceMBean.java} (96%) copy integration-test/src/main/java/org/apache/iotdb/it/env/remote/config/RemoteDataNodeConfig.java => iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/io/CompactionDiskTSMIterator.java (51%) create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/metadata/AlignedPageMetadata.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/metadata/PageMetadata.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/subscription/event/batch/SubscriptionPipeTabletIterationSnapshot.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/utils/TsFileRewriteOverPrecisedI64Scan.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/utils/TsFileRewriteSmallRangeI64Scan.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/utils/TsFileStatisticScan.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MergeSortAlignedTVListIterator.java create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MergeSortTvListIterator.java copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/{QuickIntTVList.java => PageColumnAccessInfo.java} (56%) create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/auth/entity/DataBasePrivilegeTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/auth/entity/TablePrivilegeTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/protocol/mqtt/LinePayloadFormatterTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperatorTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperatorTestUtils.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/FunctionTestUtils.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/aggregate/AggregationWindowFunctionTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/CumeDistFunctionTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/DenseRankFunctionTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/NTileFunctionTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/PercentRankFunctionTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RankFunctionTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RowNumberFunctionTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/FirstValueFunctionTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LagFunctionTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LastValueFunctionTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LeadFunctionTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/NthValueFunctionTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/FrameTestUtils.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/GroupsFrameTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RangeFrameTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RowsFrameTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AuthorStatementTest.java create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/MemChunkDeserializeTest.java create mode 100644 iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/entity/DatabasePrivilege.java rename iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/{user/IUserAccessor.java => entity/IEntityAccessor.java} (60%) copy integration-test/src/main/java/org/apache/iotdb/itbase/category/MultiClusterIT2AutoCreateSchema.java => iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/entity/ModelType.java (89%) delete mode 100644 iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/entity/PriPrivilegeType.java rename integration-test/src/main/java/org/apache/iotdb/itbase/category/MultiClusterIT2AutoCreateSchema.java => iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/entity/PrivilegeModelType.java (86%) create mode 100644 iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/entity/PrivilegeUnion.java create mode 100644 iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/entity/TablePrivilege.java create mode 100644 iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/role/IEntityManager.java delete mode 100644 iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/role/IRoleAccessor.java delete mode 100644 iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/role/IRoleManager.java delete mode 100644 iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/IUserManager.java rename iotdb-core/{consensus/src/main/java/org/apache/iotdb/consensus/pipe/consensuspipe/ProgressIndexManager.java => node-commons/src/main/java/org/apache/iotdb/commons/pipe/agent/plugin/builtin/connector/opcda/OpcDaConnector.java} (56%)