This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch ty/AllowRetry in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit acaf1b74317a2999bfd507659c7a9b69679bc290 Merge: ab20502d87e 4a3c1d3e331 Author: JackieTien97 <[email protected]> AuthorDate: Tue Aug 13 09:43:26 2024 +0800 Merge remote-tracking branch 'origin/master' into ty/AllowRetry LICENSE | 59 +- .../org/apache/iotdb/TableModelJDBCExample.java | 108 + .../java/org/apache/iotdb/CountPointProcessor.java | 2 +- .../iotdb/AlignedTimeseriesSessionExample.java | 13 +- .../org/apache/iotdb/DataMigrationExample.java | 6 +- .../iotdb/HybridTimeseriesSessionExample.java | 3 +- .../org/apache/iotdb/SessionConcurrentExample.java | 3 +- .../main/java/org/apache/iotdb/SessionExample.java | 13 +- .../org/apache/iotdb/TableModelSessionExample.java | 136 + .../apache/iotdb/TableModelSessionPoolExample.java | 147 + .../main/java/org/apache/iotdb/TabletExample.java | 3 +- .../org/apache/iotdb/trigger/LoggerTrigger.java | 4 +- .../iotdb/it/env/cluster/env/AbstractEnv.java | 141 +- .../iotdb/it/env/remote/env/RemoteServerEnv.java | 132 +- .../org/apache/iotdb/it/utils/TsFileGenerator.java | 24 +- .../java/org/apache/iotdb/itbase/env/BaseEnv.java | 88 +- .../iotdb/itbase/runtime/ClusterTestStatement.java | 13 +- .../it/partition/IoTDBPartitionGetterIT.java | 19 +- .../apache/iotdb/db/it/IoTDBInsertWithQueryIT.java | 6 +- .../org/apache/iotdb/db/it/IoTDBLoadTsFileIT.java | 5 +- .../iotdb/db/it/IoTDBPartialInsertionIT.java | 3 +- .../org/apache/iotdb/db/it/IoTDBRepairDataIT.java | 4 +- .../db/it/aggregation/IoTDBAggregationIT.java | 15 +- .../db/it/aggregation/maxby/IoTDBMaxByIT.java | 3 +- .../db/it/aggregation/minby/IoTDBMinByIT.java | 3 +- .../scalar/IoTDBDiffFunctionIT.java | 1 - .../db/it/fill/IoTDBFillWithNewDataTypeIT.java | 26 +- .../apache/iotdb/db/it/query/IoTDBQueryDemoIT.java | 31 +- .../iotdb/db/it/selectinto/IoTDBSelectIntoIT.java | 4 +- .../db/it/udf/IoTDBUDTFBuiltinFunctionIT.java | 4 +- .../org/apache/iotdb/db/it/utils/TestUtils.java | 130 + .../it/db/it/IoTDBExecuteBatchTableIT.java | 149 + .../it/db/it/IoTDBFlushQueryTableIT.java | 200 ++ .../it/db/it/IoTDBInsertAlignedValuesTableIT.java | 566 +++ .../relational/it/db/it/IoTDBInsertTableIT.java | 589 ++++ .../it/db/it/IoTDBMultiDeviceTableIT.java | 357 ++ .../relational/it/db/it/IoTDBRecoverTableIT.java | 309 ++ .../it/db/it/IoTDBRecoverUnclosedTableIT.java | 259 ++ .../relational/it/db/it/IoTDBRestartTableIT.java | 419 +++ .../it/db/it/IoTDBSetConfigurationTableIT.java | 105 + .../it/query/old/IoTDBDatetimeFormatTableIT.java | 157 + .../it/query/old/IoTDBFilterBetweenTableIT.java | 199 ++ .../it/query/old/IoTDBFilterNullTableIT.java | 115 + .../it/query/old/IoTDBFilterTableIT.java | 239 ++ .../it/query/old/IoTDBNestedQueryTableIT.java | 453 +++ .../it/query/old/IoTDBSimpleQueryTableIT.java | 706 ++++ .../alignbydevice/IoTDBAlignByDeviceTable2IT.java | 46 + .../alignbydevice/IoTDBAlignByDeviceTable3IT.java | 46 + .../alignbydevice/IoTDBAlignByDeviceTableIT.java | 546 +++ .../IoTDBAlignByDeviceWithTemplateTable2IT.java | 47 + .../IoTDBAlignByDeviceWithTemplateTableIT.java | 513 +++ ...TDBOrderByLimitOffsetAlignByDeviceTable2IT.java | 47 + ...oTDBOrderByLimitOffsetAlignByDeviceTableIT.java | 147 + .../IoTDBOrderByWithAlignByDeviceTable2IT.java | 47 + .../IoTDBOrderByWithAlignByDeviceTable3IT.java | 47 + .../IoTDBOrderByWithAlignByDeviceTableIT.java | 1568 +++++++++ .../IoTDBAlignedOffsetLimitPushDownTableIT.java | 156 + .../aligned/IoTDBAlignedSeriesQueryTable2IT.java | 53 + .../aligned/IoTDBAlignedSeriesQueryTable3IT.java | 53 + .../aligned/IoTDBAlignedSeriesQueryTable4IT.java | 53 + .../aligned/IoTDBAlignedSeriesQueryTable5IT.java | 55 + .../aligned/IoTDBAlignedSeriesQueryTableIT.java | 3678 ++++++++++++++++++++ .../aligned/IoTDBPredicatePushDownTable2IT.java | 54 + .../aligned/IoTDBPredicatePushDownTable3IT.java | 54 + .../aligned/IoTDBPredicatePushDownTable4IT.java | 54 + .../old/aligned/IoTDBPredicatePushDownTableIT.java | 683 ++++ .../it/query/old/aligned/TableUtils.java | 216 ++ .../scalar/IoTDBCastFunctionTableIT.java | 780 +++++ .../scalar/IoTDBDiffFunctionTable2IT.java | 42 + .../scalar/IoTDBDiffFunctionTable3IT.java | 42 + .../scalar/IoTDBDiffFunctionTableIT.java | 149 + .../scalar/IoTDBReplaceFunctionTableIT.java | 183 + .../scalar/IoTDBRoundFunctionTableIT.java | 313 ++ .../scalar/IoTDBSubStringFunctionTableIT.java | 219 ++ .../it/query/old/orderBy/IoTDBOrderByTableIT.java | 1578 +++++++++ .../it/query/old/orderBy/IoTDBStreamSortIT.java | 240 ++ .../it/query/old/query/IoTDBArithmeticTableIT.java | 226 ++ .../query/old/query/IoTDBCaseWhenThenTableIT.java | 878 +++++ .../it/query/old/query/IoTDBFuzzyQueryTableIT.java | 275 ++ .../it/query/old/query/IoTDBInTableIT.java | 185 + ...oTDBNoSelectExpressionAfterAnalyzedTableIT.java | 95 + .../query/old/query/IoTDBNullOperandTableIT.java | 229 ++ .../query/old/query/IoTDBNullValueFillTableIT.java | 327 ++ .../it/query/old/query/IoTDBPaginationTableIT.java | 230 ++ .../it/query/old/query/IoTDBQueryDemoTableIT.java | 524 +++ .../IoTDBQueryWithComplexValueFilterTableIT.java | 326 ++ .../it/query/old/query/IoTDBResultSetTableIT.java | 206 ++ .../query/IoTDBSelectCompareExpressionTableIT.java | 503 +++ .../query/old/query/IoTDBSelectSchemaTableIT.java | 125 + .../it/query/recent/IoTDBNullIdQueryIT.java | 139 + .../relational/it/schema/IoTDBDatabaseIT.java | 187 + .../relational/it/schema/IoTDBDeviceQueryIT.java | 101 + .../iotdb/relational/it/schema/IoTDBTableIT.java | 311 ++ .../it/session/IoTDBTableModelSessionIT.java | 115 + .../session/pool/IoTDBTableModelSessionPoolIT.java | 195 ++ .../session/it/IoTDBSessionAlignedInsertIT.java | 3 +- .../iotdb/session/it/IoTDBSessionComplexIT.java | 5 +- .../it/IoTDBSessionDisableMemControlIT.java | 5 +- .../IoTDBSessionInsertWithTriggerExecutionIT.java | 3 +- .../iotdb/session/it/IoTDBSessionRelationalIT.java | 992 ++++++ .../iotdb/session/it/IoTDBSessionSimpleIT.java | 21 +- .../session/it/IoTDBSessionSyntaxConventionIT.java | 3 +- .../org/apache/iotdb/session/it/SessionIT.java | 5 +- .../it/triple/IoTDBSubscriptionSharingIT.java | 3 +- .../java/org/apache/iotdb/cli/AbstractCli.java | 24 +- .../src/main/java/org/apache/iotdb/cli/Cli.java | 4 + .../java/org/apache/iotdb/tool/ExportData.java | 2 +- .../java/org/apache/iotdb/tool/ExportTsFile.java | 19 +- .../org/apache/iotdb/isession/IPooledSession.java | 64 + .../java/org/apache/iotdb/isession/ISession.java | 16 + .../org/apache/iotdb/isession/SessionConfig.java | 2 + .../org/apache/iotdb/isession/SessionDataSet.java | 86 +- .../apache/iotdb/isession/pool/ISessionPool.java | 3 + .../iotdb/jdbc/AbstractIoTDBJDBCResultSet.java | 1220 ------- .../main/java/org/apache/iotdb/jdbc/Config.java | 4 + .../org/apache/iotdb/jdbc/IoTDBConnection.java | 16 +- .../apache/iotdb/jdbc/IoTDBConnectionParams.java | 21 + .../org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java | 81 +- .../iotdb/jdbc/IoTDBNonAlignJDBCResultSet.java | 323 -- .../java/org/apache/iotdb/jdbc/IoTDBStatement.java | 88 +- .../src/main/java/org/apache/iotdb/jdbc/Utils.java | 60 +- .../iotdb/jdbc/IoTDBDatabaseMetadataTest.java | 10 +- .../apache/iotdb/jdbc/IoTDBJDBCResultSetTest.java | 2 + .../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java | 299 +- .../main/java/org/apache/iotdb/rpc/RpcUtils.java | 64 +- .../java/org/apache/iotdb/rpc/TSStatusCode.java | 17 +- .../java/org/apache/iotdb/session/Session.java | 196 +- .../apache/iotdb/session/SessionConnection.java | 69 +- .../org/apache/iotdb/session/ThriftConnection.java | 8 +- .../org/apache/iotdb/session/pool/SessionPool.java | 46 +- .../apache/iotdb/session/pool/SessionWrapper.java | 195 ++ .../session/subscription/SubscriptionSession.java | 9 +- .../SubscriptionSessionConnection.java | 14 +- .../payload/SubscriptionSessionDataSet.java | 8 +- .../apache/iotdb/session/util/SessionUtils.java | 4 +- .../iotdb/session/SessionCacheLeaderTest.java | 7 +- .../iotdb/session/SessionConnectionTest.java | 8 +- .../java/org/apache/iotdb/session/SessionTest.java | 25 +- .../java/org/apache/iotdb/session/TabletTest.java | 3 +- .../session/pool/SessionPoolExceptionTest.java | 7 +- .../apache/iotdb/session/pool/SessionPoolTest.java | 28 +- .../iotdb/session/util/SessionUtilsTest.java | 5 +- .../iotdb/confignode/client/CnToDnRequestType.java | 3 + .../CnToDnInternalServiceAsyncRequestManager.java | 5 + .../rpc/DataNodeAsyncRequestRPCHandler.java | 1 + .../client/sync/SyncDataNodeClientPool.java | 3 + .../consensus/request/ConfigPhysicalPlan.java | 16 + .../consensus/request/ConfigPhysicalPlanType.java | 6 + .../request/write/table/AddTableColumnPlan.java | 93 + .../request/write/table/CommitCreateTablePlan.java | 67 + .../request/write/table/PreCreateTablePlan.java | 68 + .../write/table/RollbackCreateTablePlan.java | 67 + .../iotdb/confignode/manager/ConfigManager.java | 156 +- .../apache/iotdb/confignode/manager/IManager.java | 26 + .../iotdb/confignode/manager/ProcedureManager.java | 216 +- .../iotdb/confignode/manager/node/NodeManager.java | 2 + .../manager/partition/PartitionManager.java | 27 +- .../client/IoTDBConfigNodeSyncClientManager.java | 12 +- .../protocol/IoTDBConfigRegionAirGapConnector.java | 3 + .../protocol/IoTDBConfigRegionConnector.java | 10 +- .../PipeConfigPhysicalPlanTSStatusVisitor.java | 16 +- .../manager/schema/ClusterSchemaManager.java | 115 +- .../persistence/executor/ConfigPlanExecutor.java | 12 + .../persistence/schema/ClusterSchemaInfo.java | 141 +- .../confignode/persistence/schema/ConfigMTree.java | 218 +- .../schema/mnode/impl/ConfigTableNode.java | 221 ++ .../schema/mnode/impl/TableNodeStatus.java | 58 + .../schema/mnode/info/ConfigTableInfo.java | 56 + .../impl/schema/DataNodeRegionTaskExecutor.java | 2 +- .../impl/schema/DeactivateTemplateProcedure.java | 2 +- .../impl/schema/DeleteDatabaseProcedure.java | 4 + .../impl/schema/SetTemplateProcedure.java | 2 +- .../impl/schema/UnsetTemplateProcedure.java | 2 +- .../impl/schema/table/AddTableColumnProcedure.java | 345 ++ .../impl/schema/table/CreateTableProcedure.java | 453 +++ .../state/schema/AddTableColumnState.java | 27 + .../procedure/state/schema/CreateTableState.java | 29 + .../procedure/store/ProcedureFactory.java | 12 + .../confignode/procedure/store/ProcedureType.java | 4 + .../thrift/ConfigNodeRPCServiceProcessor.java | 31 + .../request/ConfigPhysicalPlanSerDeTest.java | 76 + .../hash/DeviceGroupHashExecutorManualTest.java | 13 +- .../persistence/schema/ConfigMTreeTest.java | 81 + .../schema/table/AddTableColumnProcedureTest.java | 62 + .../schema/table/CreateTableProcedureTest.java | 73 + iotdb-core/datanode/pom.xml | 22 + .../src/main/codegen/templates/constantFill.ftl | 3 +- .../src/main/codegen/templates/previousFill.ftl | 3 +- .../codegen/templates/variationWindowManager.ftl | 3 +- .../org/apache/iotdb/db/auth/AuthorityChecker.java | 6 +- .../iotdb/db/auth/ClusterAuthorityFetcher.java | 4 +- .../apache/iotdb/db/auth/IAuthorityFetcher.java | 3 +- .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 2 +- .../dataregion/DataExecutionVisitor.java | 25 +- .../dataregion/DataRegionStateMachine.java | 1 + .../schemaregion/SchemaExecutionVisitor.java | 61 +- .../metadata/DatabaseAlreadySetException.java | 29 +- .../metadata/DatabaseConflictException.java | 52 + .../table/TableAlreadyExistsException.java | 32 + .../metadata/table/TableNotExistsException.java | 32 + .../db/exception/query/QueryProcessException.java | 5 + .../exception/sql/ColumnCreationFailException.java | 27 + .../iotdb/db/exception/sql/SemanticException.java | 9 +- .../client/IoTDBDataNodeAsyncClientManager.java | 12 +- .../client/IoTDBDataNodeSyncClientManager.java | 12 +- .../batch/PipeTabletEventTsFileBatch.java | 11 +- .../request/PipeTransferTabletRawReq.java | 2 +- .../airgap/IoTDBDataNodeAirGapConnector.java | 3 + .../connector/protocol/opcua/OpcUaConnector.java | 207 +- .../connector/protocol/opcua/OpcUaNameSpace.java | 374 ++ .../protocol/opcua/OpcUaServerBuilder.java | 32 +- .../async/IoTDBDataRegionAsyncConnector.java | 3 +- .../thrift/sync/IoTDBDataNodeSyncConnector.java | 11 +- .../iotdb/db/pipe/event/common/row/PipeRow.java | 8 +- .../db/pipe/event/common/row/PipeRowCollector.java | 6 +- .../tablet/PipeInsertNodeTabletInsertionEvent.java | 5 +- .../common/tablet/PipeRawTabletInsertionEvent.java | 8 +- .../tablet/TabletInsertionDataContainer.java | 33 +- .../common/tsfile/PipeTsFileInsertionEvent.java | 7 +- .../common/tsfile/TsFileInsertionPointCounter.java | 8 +- .../TsFileInsertionDataContainerProvider.java | 3 +- .../query/TsFileInsertionQueryDataContainer.java | 22 +- .../TsFileInsertionQueryDataTabletIterator.java | 14 +- .../scan/TsFileInsertionScanDataContainer.java | 14 +- .../db/pipe/event/realtime/PipeRealtimeEvent.java | 10 +- .../PipeHistoricalDataRegionTsFileExtractor.java | 3 +- .../realtime/epoch/TsFileEpochManager.java | 14 +- .../schemaregion/IoTDBSchemaRegionExtractor.java | 2 +- .../schemaregion/PipePlanPatternParseVisitor.java | 52 +- .../pipe/pattern/CachedSchemaPatternMatcher.java | 9 +- .../twostage/plugin/TwoStageCountProcessor.java | 2 +- .../legacy/IoTDBLegacyPipeReceiverAgent.java | 104 +- .../protocol/thrift/IoTDBDataNodeReceiver.java | 42 +- .../transform/converter/ArrayConverter.java | 940 +++++ .../transform/converter/ValueConverter.java | 787 +++++ .../statement/PipeConvertedInsertRowStatement.java | 112 + .../PipeConvertedInsertTabletStatement.java | 64 + .../visitor/PipePlanToStatementVisitor.java | 45 +- ...peStatementDataTypeConvertExecutionVisitor.java | 173 + .../visitor/PipeStatementPatternParseVisitor.java | 9 +- .../visitor/PipeStatementToBatchVisitor.java | 2 +- .../pipe/resource/memory/PipeMemoryWeightUtil.java | 6 +- .../iotdb/db/protocol/client/ConfigNodeClient.java | 39 + .../rest/v1/impl/GrafanaApiServiceImpl.java | 1 + .../protocol/rest/v1/impl/RestApiServiceImpl.java | 18 +- .../rest/v2/impl/GrafanaApiServiceImpl.java | 1 + .../protocol/rest/v2/impl/RestApiServiceImpl.java | 18 +- .../iotdb/db/protocol/session/IClientSession.java | 59 + .../iotdb/db/protocol/session/SessionManager.java | 27 +- .../protocol/thrift/impl/ClientRPCServiceImpl.java | 377 +- .../impl/DataNodeInternalRPCServiceImpl.java | 70 +- .../db/queryengine/common/MPPQueryContext.java | 21 + .../iotdb/db/queryengine/common/SessionInfo.java | 57 +- .../db/queryengine/common/header/ColumnHeader.java | 12 +- .../common/header/ColumnHeaderConstant.java | 22 + .../queryengine/common/header/DatasetHeader.java | 18 + .../common/header/DatasetHeaderFactory.java | 12 + .../common/schematree/ClusterSchemaTree.java | 21 +- .../common/schematree/DeviceSchemaInfo.java | 4 +- .../queryengine/common/schematree/ISchemaTree.java | 9 +- .../execution/MemoryEstimationHelper.java | 13 +- .../slidingwindow/SlidingWindowAggregator.java | 7 +- .../execution/driver/DataDriverContext.java | 8 +- .../execution/executor/RegionWriteExecutor.java | 29 +- .../fragment/FragmentInstanceContext.java | 32 +- .../fragment/FragmentInstanceManager.java | 6 +- .../execution/fragment/QueryContext.java | 30 +- .../execution/load/LoadTsFileManager.java | 4 +- .../queryengine/execution/load/TsFileSplitter.java | 13 +- .../execution/operator/AggregationUtil.java | 5 +- .../operator/process/AbstractSortOperator.java | 369 ++ .../operator/process/CollectOperator.java | 133 + .../operator/process/DeviceViewIntoOperator.java | 3 +- .../operator/process/DeviceViewOperator.java | 9 +- .../operator/process/FilterAndProjectOperator.java | 78 +- .../execution/operator/process/IntoOperator.java | 3 +- .../operator/process/MergeSortOperator.java | 12 +- .../execution/operator/process/SortOperator.java | 313 +- .../operator/process/TableMergeSortOperator.java | 56 + .../operator/process/TableSortOperator.java | 63 + .../operator/process/TableStreamSortOperator.java | 220 ++ .../operator/process/TableTopKOperator.java | 57 + .../execution/operator/process/TopKOperator.java | 32 +- .../operator/process/TransformOperator.java | 11 +- .../operator/process/TreeMergeSortOperator.java | 53 + .../operator/process/TreeSortOperator.java | 60 + .../operator/process/TreeTopKOperator.java | 57 + .../execution/operator/process/fill/IFill.java | 3 +- .../operator/process/fill/ILinearFill.java | 5 +- .../process/fill/identity/IdentityFill.java | 3 +- .../process/fill/identity/IdentityLinearFill.java | 5 +- .../operator/process/fill/linear/LinearFill.java | 13 +- .../process/join/HorizontallyConcatOperator.java | 3 +- .../process/join/LeftOuterTimeJoinOperator.java | 3 +- .../process/join/merge/MergeSortComparator.java | 24 + .../process/join/merge/MultiColumnMerger.java | 5 +- .../process/join/merge/SingleColumnMerger.java | 3 +- .../schema/source/SchemaSourceFactory.java | 20 + .../schema/source/TableDeviceFetchSource.java | 121 + .../schema/source/TableDeviceQuerySource.java | 233 ++ .../source/AbstractSeriesScanOperator.java | 10 +- .../source/ActiveDeviceRegionScanOperator.java | 2 +- .../source/ActiveTimeSeriesRegionScanOperator.java | 3 +- .../AlignedSeriesAggregationScanOperator.java | 6 +- .../operator/source/AlignedSeriesScanOperator.java | 22 +- .../operator/source/AlignedSeriesScanUtil.java | 16 +- .../execution/operator/source/FileLoaderUtils.java | 37 +- .../source/SeriesAggregationScanOperator.java | 6 +- .../operator/source/SeriesScanOperator.java | 7 +- .../execution/operator/source/SeriesScanUtil.java | 19 +- .../source/relational/TableScanOperator.java | 329 ++ .../operator/window/ConditionWindowManager.java | 3 +- .../operator/window/CountWindowManager.java | 3 +- .../operator/window/SessionWindowManager.java | 4 +- .../relational/ColumnTransformerBuilder.java | 894 +++++ .../warnings/DefaultWarningCollector.java | 56 + .../execution/warnings/IoTDBWarning.java | 69 + .../execution/warnings/StandardWarningCode.java | 38 + .../execution/warnings/WarningCode.java | 68 + .../execution/warnings/WarningCodeSupplier.java | 24 + .../execution/warnings/WarningCollector.java | 43 + .../iotdb/db/queryengine/plan/Coordinator.java | 143 +- .../db/queryengine/plan/analyze/Analysis.java | 106 +- .../db/queryengine/plan/analyze/AnalyzeUtils.java | 278 ++ .../queryengine/plan/analyze/AnalyzeVisitor.java | 539 ++- .../db/queryengine/plan/analyze/Analyzer.java | 4 + .../plan/analyze/ClusterPartitionFetcher.java | 121 +- .../plan/analyze/ExpressionAnalyzer.java | 7 +- .../plan/analyze/ExpressionTypeAnalyzer.java | 95 +- .../queryengine/plan/analyze/ExpressionUtils.java | 8 + .../db/queryengine/plan/analyze/IAnalysis.java | 17 + .../plan/analyze/IPartitionFetcher.java | 33 + .../plan/analyze/LoadTsfileAnalyzer.java | 53 +- .../queryengine/plan/analyze/PredicateUtils.java | 35 + .../queryengine/plan/analyze/SelectIntoUtils.java | 6 +- .../plan/analyze/TemplatedAggregationAnalyze.java | 7 +- .../queryengine/plan/analyze/TemplatedAnalyze.java | 32 +- .../db/queryengine/plan/analyze/TemplatedInfo.java | 4 +- .../db/queryengine/plan/analyze/TypeProvider.java | 145 +- .../cache/partition/DatabaseCacheResult.java | 73 + .../analyze/cache/partition/PartitionCache.java | 516 +-- .../cache/partition/StorageGroupCacheResult.java | 71 - .../analyze/cache/schema/DataNodeSchemaCache.java | 2 +- .../analyze/cache/schema/DataNodeTTLCache.java | 18 +- .../schema/DeviceUsingTemplateSchemaCache.java | 4 +- .../cache/schema/TimeSeriesSchemaCache.java | 6 +- .../cache/schema/dualkeycache/IDualKeyCache.java | 15 +- .../schema/dualkeycache/impl/DualKeyCacheImpl.java | 39 +- .../plan/analyze/lock/SchemaLockType.java | 17 +- .../analyze/schema/AutoCreateSchemaExecutor.java | 6 +- .../analyze/schema/ClusterSchemaFetchExecutor.java | 3 +- .../plan/analyze/schema/ClusterSchemaFetcher.java | 14 +- .../plan/analyze/schema/ISchemaAutoCreation.java | 2 + .../plan/analyze/schema/NormalSchemaFetcher.java | 5 +- .../plan/analyze/schema/SchemaValidator.java | 17 + .../queryengine/plan/execution/QueryExecution.java | 15 +- .../plan/execution/config/ConfigTaskVisitor.java | 588 ---- .../execution/config/TableConfigTaskVisitor.java | 265 ++ .../execution/config/TreeConfigTaskVisitor.java | 588 ++++ .../config/executor/ClusterConfigTaskExecutor.java | 389 ++- .../config/executor/IConfigTaskExecutor.java | 45 +- .../relational/AlterTableAddColumnTask.java | 106 + .../config/metadata/relational/CreateDBTask.java | 42 + .../metadata/relational/CreateTableTask.java | 50 + .../metadata/relational/DescribeTableTask.java | 85 + .../config/metadata/relational/DropDBTask.java | 42 + .../metadata/relational/ShowConfigNodesTask.java | 80 + .../config/metadata/relational/ShowDBTask.java | 82 + .../metadata/relational/ShowDataNodesTask.java | 85 + .../config/metadata/relational/ShowTablesTask.java | 81 + .../config/metadata/relational/UseDBTask.java | 46 + .../memory/StatementMemorySourceVisitor.java | 6 +- .../TableModelStatementMemorySourceContext.java | 41 + .../TableModelStatementMemorySourceVisitor.java | 91 + .../plan/expression/ExpressionFactory.java | 3 +- .../plan/expression/leaf/TimeSeriesOperand.java | 45 +- .../BindTypeForTimeSeriesOperandVisitor.java | 5 +- .../visitor/ColumnTransformerVisitor.java | 2 +- .../visitor/ExpressionNormalizeVisitor.java | 2 +- .../visitor/GetMeasurementExpressionVisitor.java | 27 +- .../visitor/RemoveRootPrefixVisitor.java | 2 +- .../visitor/ReplaceLogicalViewVisitor.java | 17 +- .../visitor/ReplaceSubTreeWithViewVisitor.java | 3 +- .../predicate/ConvertPredicateToFilterVisitor.java | 2 +- .../plan/optimization/AggregationPushDown.java | 15 +- .../plan/optimization/ColumnInjectionPushDown.java | 2 +- .../plan/optimization/LimitOffsetPushDown.java | 2 +- .../OrderByExpressionWithLimitChangeToTopK.java | 2 +- .../plan/optimization/PredicatePushDown.java | 4 +- .../db/queryengine/plan/parser/ASTVisitor.java | 42 +- .../plan/parser/StatementGenerator.java | 45 +- .../plan/planner/LocalExecutionPlanContext.java | 11 +- .../plan/planner/LocalExecutionPlanner.java | 48 +- .../plan/planner/LogicalPlanBuilder.java | 104 +- .../plan/planner/LogicalPlanVisitor.java | 49 +- .../queryengine/plan/planner/LogicalPlanner.java | 3 +- .../plan/planner/OperatorTreeGenerator.java | 192 +- .../plan/planner/SubPlanTypeExtractor.java | 11 +- .../plan/planner/TableOperatorGenerator.java | 812 +++++ .../plan/planner/TemplatedLogicalPlan.java | 33 +- .../queryengine/plan/planner/TreeModelPlanner.java | 6 +- .../planner/distribution/DistributionPlanner.java | 16 +- .../planner/distribution/ExchangeNodeAdder.java | 16 +- .../SimpleFragmentParallelPlanner.java | 18 +- .../plan/planner/distribution/SourceRewriter.java | 25 +- .../distribution/WriteFragmentParallelPlanner.java | 22 +- .../plan/planner/plan/DistributedQueryPlan.java | 20 +- .../plan/planner/plan/FragmentInstance.java | 13 + .../plan/planner/plan/PlanFragment.java | 5 + .../plan/planner/plan/TableModelTimePredicate.java | 67 + .../plan/planner/plan/TimePredicate.java | 12 +- .../plan/planner/plan/TreeModelTimePredicate.java | 2 + .../plan/planner/plan/node/PlanGraphPrinter.java | 133 +- .../plan/planner/plan/node/PlanNode.java | 10 + .../plan/planner/plan/node/PlanNodeType.java | 167 +- .../plan/planner/plan/node/PlanVisitor.java | 168 +- .../planner/plan/node/load/LoadTsFileNode.java | 7 +- .../metadata/read/AbstractSchemaMergeNode.java | 66 + .../read/AbstractTableDeviceQueryNode.java | 218 ++ .../node/metadata/read/CountSchemaMergeNode.java | 71 + .../metadata/read/DeviceSchemaFetchScanNode.java | 101 + .../plan/node/metadata/read/DevicesCountNode.java | 98 + .../node/metadata/read/DevicesSchemaScanNode.java | 158 + .../metadata/read/LevelTimeSeriesCountNode.java | 174 + .../metadata/read/LogicalViewSchemaScanNode.java | 141 + .../read/NodeManagementMemoryMergeNode.java | 138 + .../node/metadata/read/NodePathsConvertNode.java | 101 + .../node/metadata/read/NodePathsCountNode.java | 101 + .../metadata/read/NodePathsSchemaScanNode.java | 126 + .../metadata/read/PathsUsingTemplateScanNode.java | 140 + .../node/metadata/read/SchemaFetchMergeNode.java | 115 + .../node/metadata/read/SchemaFetchScanNode.java | 88 + .../node/metadata/read/SchemaQueryMergeNode.java | 97 + .../metadata/read/SchemaQueryOrderByHeatNode.java | 99 + .../node/metadata/read/SchemaQueryScanNode.java | 187 + .../metadata/read/SeriesSchemaFetchScanNode.java | 176 + .../node/metadata/read/TableDeviceFetchNode.java | 183 + .../metadata/read/TableDeviceQueryCountNode.java | 84 + .../metadata/read/TableDeviceQueryScanNode.java | 84 + .../node/metadata/read/TableDeviceSourceNode.java | 131 + .../node/metadata/read/TimeSeriesCountNode.java | 164 + .../metadata/read/TimeSeriesSchemaScanNode.java | 207 ++ .../node/metadata/write/ActivateTemplateNode.java | 202 ++ .../node/metadata/write/AlterTimeSeriesNode.java | 384 ++ .../metadata/write/BatchActivateTemplateNode.java | 198 ++ .../write/ConstructSchemaBlackListNode.java | 111 + .../write/CreateAlignedTimeSeriesNode.java | 467 +++ .../metadata/write/CreateMultiTimeSeriesNode.java | 302 ++ .../node/metadata/write/CreateTimeSeriesNode.java | 400 +++ .../metadata/write/DeactivateTemplateNode.java | 149 + .../node/metadata/write/DeleteTimeSeriesNode.java | 116 + .../write/InternalBatchActivateTemplateNode.java | 186 + .../write/InternalCreateMultiTimeSeriesNode.java | 189 + .../write/InternalCreateTimeSeriesNode.java | 162 + .../plan/node/metadata/write/MeasurementGroup.java | 424 +++ .../metadata/write/PreDeactivateTemplateNode.java | 149 + .../write/RollbackPreDeactivateTemplateNode.java | 151 + .../write/RollbackSchemaBlackListNode.java | 111 + .../metadata/write/view/AlterLogicalViewNode.java | 156 + .../view/ConstructLogicalViewBlackListNode.java | 111 + .../metadata/write/view/CreateLogicalViewNode.java | 298 ++ .../metadata/write/view/DeleteLogicalViewNode.java | 96 + .../view/RollbackLogicalViewBlackListNode.java | 96 + .../metedata/read/AbstractSchemaMergeNode.java | 66 - .../node/metedata/read/CountSchemaMergeNode.java | 71 - .../metedata/read/DeviceSchemaFetchScanNode.java | 101 - .../plan/node/metedata/read/DevicesCountNode.java | 98 - .../node/metedata/read/DevicesSchemaScanNode.java | 157 - .../metedata/read/LevelTimeSeriesCountNode.java | 174 - .../metedata/read/LogicalViewSchemaScanNode.java | 141 - .../read/NodeManagementMemoryMergeNode.java | 138 - .../node/metedata/read/NodePathsConvertNode.java | 101 - .../node/metedata/read/NodePathsCountNode.java | 101 - .../metedata/read/NodePathsSchemaScanNode.java | 126 - .../metedata/read/PathsUsingTemplateScanNode.java | 140 - .../node/metedata/read/SchemaFetchMergeNode.java | 115 - .../node/metedata/read/SchemaFetchScanNode.java | 88 - .../node/metedata/read/SchemaQueryMergeNode.java | 97 - .../metedata/read/SchemaQueryOrderByHeatNode.java | 99 - .../node/metedata/read/SchemaQueryScanNode.java | 187 - .../metedata/read/SeriesSchemaFetchScanNode.java | 176 - .../node/metedata/read/TimeSeriesCountNode.java | 163 - .../metedata/read/TimeSeriesSchemaScanNode.java | 206 -- .../node/metedata/write/ActivateTemplateNode.java | 200 -- .../node/metedata/write/AlterTimeSeriesNode.java | 382 -- .../metedata/write/BatchActivateTemplateNode.java | 196 -- .../write/ConstructSchemaBlackListNode.java | 111 - .../write/CreateAlignedTimeSeriesNode.java | 465 --- .../metedata/write/CreateMultiTimeSeriesNode.java | 299 -- .../node/metedata/write/CreateTimeSeriesNode.java | 399 --- .../metedata/write/DeactivateTemplateNode.java | 149 - .../node/metedata/write/DeleteTimeSeriesNode.java | 116 - .../write/InternalBatchActivateTemplateNode.java | 184 - .../write/InternalCreateMultiTimeSeriesNode.java | 187 - .../write/InternalCreateTimeSeriesNode.java | 160 - .../plan/node/metedata/write/MeasurementGroup.java | 424 --- .../metedata/write/PreDeactivateTemplateNode.java | 149 - .../write/RollbackPreDeactivateTemplateNode.java | 151 - .../write/RollbackSchemaBlackListNode.java | 111 - .../metedata/write/view/AlterLogicalViewNode.java | 156 - .../view/ConstructLogicalViewBlackListNode.java | 111 - .../metedata/write/view/CreateLogicalViewNode.java | 294 -- .../metedata/write/view/DeleteLogicalViewNode.java | 96 - .../view/RollbackLogicalViewBlackListNode.java | 96 - .../node/pipe/PipeEnrichedNonWritePlanNode.java | 10 +- .../plan/node/pipe/PipeEnrichedWritePlanNode.java | 20 +- .../planner/plan/node/process/DeviceViewNode.java | 50 +- .../plan/node/process/SingleDeviceViewNode.java | 27 +- .../plan/node/source/AlignedLastQueryScanNode.java | 2 +- .../plan/node/source/AlignedSeriesScanNode.java | 2 +- .../plan/planner/plan/node/source/SourceNode.java | 3 +- .../plan/node/source/TimeseriesRegionScanNode.java | 10 +- .../planner/plan/node/write/DeleteDataNode.java | 40 +- .../plan/node/write/InsertMultiTabletsNode.java | 5 - .../plan/planner/plan/node/write/InsertNode.java | 88 +- .../planner/plan/node/write/InsertRowNode.java | 68 +- .../planner/plan/node/write/InsertRowsNode.java | 27 +- .../plan/node/write/InsertRowsOfOneDeviceNode.java | 22 +- .../planner/plan/node/write/InsertTabletNode.java | 359 +- .../plan/node/write/RelationalInsertRowNode.java | 233 ++ .../plan/node/write/RelationalInsertRowsNode.java | 188 + .../node/write/RelationalInsertTabletNode.java | 257 ++ .../parameter/DeviceViewIntoPathDescriptor.java | 2 +- .../planner/plan/parameter/SeriesScanOptions.java | 58 +- .../relational/analyzer/AggregationAnalyzer.java | 465 +++ .../plan/relational/analyzer/Analysis.java | 997 ++++++ .../plan/relational/analyzer/Analyzer.java | 98 + .../relational/analyzer/CanonicalizationAware.java | 105 + .../relational/analyzer/CorrelationSupport.java | 25 + .../relational/analyzer/ExpressionAnalysis.java | 99 + .../relational/analyzer/ExpressionAnalyzer.java | 1534 ++++++++ .../relational/analyzer/ExpressionTreeUtils.java | 98 + .../plan/relational/analyzer/Field.java | 218 ++ .../plan/relational/analyzer/FieldId.java | 80 + .../plan/relational/analyzer/NodeRef.java | 63 + .../plan/relational/analyzer/RelationId.java | 91 + .../plan/relational/analyzer/RelationType.java | 185 + .../plan/relational/analyzer/ResolvedField.java | 77 + .../plan/relational/analyzer/Scope.java | 401 +++ .../analyzer/ScopeReferenceExtractor.java | 60 + .../relational/analyzer/StatementAnalyzer.java | 2530 ++++++++++++++ .../analyzer/StatementAnalyzerFactory.java | 69 + .../predicate/ConvertPredicateToFilterVisitor.java | 391 +++ .../ConvertPredicateToTimeFilterVisitor.java | 220 ++ .../PredicateCombineIntoTableScanChecker.java | 149 + .../PredicatePushIntoMetadataChecker.java | 146 + .../predicate/PredicatePushIntoScanChecker.java | 131 + .../analyzer/predicate/PredicateVisitor.java | 87 + .../schema/CheckSchemaPredicateVisitor.java | 155 + .../ConvertSchemaPredicateToFilterVisitor.java | 227 ++ .../schema/ExtractPredicateColumnNameVisitor.java | 125 + .../querystats/PlanOptimizersStatsCollector.java | 75 + .../querystats/QueryPlanOptimizerStatistics.java | 57 + .../querystats/QueryPlanOptimizerStats.java | 84 + .../plan/relational/function/BoundSignature.java | 97 + .../plan/relational/function/FunctionId.java | 68 + .../plan/relational/function/FunctionKind.java | 27 + .../function/LongVariableConstraint.java | 64 + .../plan/relational/function/OperatorType.java | 67 + .../plan/relational/function/Signature.java | 213 ++ .../function/TypeVariableConstraint.java | 192 + .../metadata/BuiltinFunctionResolver.java | 22 + .../plan/relational/metadata/ColumnHandle.java | 40 + .../plan/relational/metadata/ColumnMetadata.java | 213 ++ .../plan/relational/metadata/ColumnSchema.java | 214 ++ .../plan/relational/metadata/DeviceEntry.java | 131 + .../metadata/ITableDeviceSchemaValidation.java | 66 + .../plan/relational/metadata/Metadata.java | 181 + .../plan/relational/metadata/MetadataUtil.java | 139 + .../metadata/OperatorNotFoundException.java | 119 + .../relational/metadata/QualifiedObjectName.java | 106 + .../relational/metadata/QualifiedTablePrefix.java | 87 + .../plan/relational/metadata/ResolvedFunction.java | 107 + .../plan/relational/metadata/TableHandle.java | 22 + .../plan/relational/metadata/TableMetadata.java | 93 + .../relational/metadata/TableMetadataImpl.java | 431 +++ .../plan/relational/metadata/TableSchema.java | 109 + .../fetcher/DeviceInCacheFilterVisitor.java | 66 + .../metadata/fetcher/SchemaPredicateUtil.java | 232 ++ .../metadata/fetcher/TableDeviceSchemaFetcher.java | 445 +++ .../fetcher/TableDeviceSchemaValidator.java | 256 ++ .../fetcher/TableHeaderSchemaValidator.java | 263 ++ .../fetcher/cache/TableDeviceCacheEntry.java | 54 + .../metadata/fetcher/cache/TableDeviceId.java | 66 + .../fetcher/cache/TableDeviceSchemaCache.java | 100 + .../relational/metadata/fetcher/cache/TableId.java | 69 + .../plan/relational/planner/Assignments.java | 255 ++ .../relational/planner/ExpressionExtractor.java | 117 + .../planner/ExpressionSymbolInliner.java | 65 + .../plan/relational/planner/LogicalPlanner.java | 357 ++ .../plan/relational/planner/OrderingScheme.java | 132 + .../relational/planner/OrderingTranslator.java | 34 + .../plan/relational/planner/PlanBuilder.java | 150 + .../plan/relational/planner/PlanNodeSearcher.java | 226 ++ .../plan/relational/planner/PlannerContext.java | 44 + .../plan/relational/planner/PredicateUtils.java | 415 +++ .../plan/relational/planner/QueryPlanner.java | 313 ++ .../plan/relational/planner/RelationPlan.java | 81 + .../plan/relational/planner/RelationPlanner.java | 278 ++ .../relational/planner/RelationalModelPlanner.java | 154 + .../relational/planner/RelationalPlanVisitor.java | 78 + .../plan/relational/planner/ScopeAware.java | 194 ++ .../plan/relational/planner/SortOrder.java | 44 + .../plan/relational/planner/Symbol.java | 100 + .../plan/relational/planner/SymbolAllocator.java | 90 + .../plan/relational/planner/SymbolResolver.java | 24 + .../plan/relational/planner/SymbolsExtractor.java | 200 ++ .../plan/relational/planner/TranslationMap.java | 331 ++ .../planner/distribute/AddExchangeNodes.java | 129 + .../planner/distribute/SubPlanGenerator.java | 75 + .../distribute/TableDistributedPlanGenerator.java | 613 ++++ .../distribute/TableDistributedPlanner.java | 201 ++ .../distribute/TableModelQueryFragmentPlanner.java | 236 ++ .../TableModelTypeProviderExtractor.java | 179 + .../planner/ir/DefaultTraversalVisitor.java | 187 + .../planner/ir/DeterminismEvaluator.java | 41 + .../relational/planner/ir/ExpressionRewriter.java | 166 + .../planner/ir/ExpressionTreeRewriter.java | 606 ++++ .../ExtractCommonPredicatesExpressionRewriter.java | 184 + .../ir/GlobalTimePredicateExtractVisitor.java | 288 ++ .../plan/relational/planner/ir/IrUtils.java | 300 ++ .../plan/relational/planner/ir/IrVisitor.java | 116 + .../planner/ir/NormalizeOrExpressionRewriter.java | 132 + .../relational/planner/ir/RewritingVisitor.java | 240 ++ .../relational/planner/ir/SerializeVisitor.java | 22 + .../planner/iterative/GroupReference.java | 86 + .../planner/iterative/IterativeOptimizer.java | 365 ++ .../plan/relational/planner/iterative/Lookup.java | 65 + .../plan/relational/planner/iterative/Memo.java | 225 ++ .../plan/relational/planner/iterative/Plans.java | 54 + .../plan/relational/planner/iterative/Rule.java | 87 + .../relational/planner/iterative/RuleIndex.java | 76 + .../relational/planner/iterative/RuleStats.java | 53 + .../planner/iterative/RuleStatsRecorder.java | 45 + .../rule/EliminateLimitProjectWithTableScan.java | 61 + .../rule/EliminateLimitWithTableScan.java | 50 + .../planner/iterative/rule/InlineProjections.java | 220 ++ .../rule/MergeLimitOverProjectWithMergeSort.java | 87 + .../rule/MergeLimitOverProjectWithSort.java | 98 + .../iterative/rule/MergeLimitWithMergeSort.java | 118 + .../planner/iterative/rule/MergeLimitWithSort.java | 60 + .../iterative/rule/ProjectOffPushDownRule.java | 67 + .../planner/iterative/rule/PruneFilterColumns.java | 46 + .../planner/iterative/rule/PruneLimitColumns.java | 36 + .../planner/iterative/rule/PruneOffsetColumns.java | 36 + .../iterative/rule/PruneOutputSourceColumns.java | 43 + .../iterative/rule/PruneProjectColumns.java | 39 + .../planner/iterative/rule/PruneSortColumns.java | 44 + .../iterative/rule/PruneTableScanColumns.java | 105 + .../planner/iterative/rule/PruneTopKColumns.java | 49 + .../iterative/rule/PushLimitThroughOffset.java | 80 + .../iterative/rule/PushLimitThroughProject.java | 58 + .../rule/RemoveRedundantIdentityProjections.java | 48 + .../relational/planner/iterative/rule/Util.java | 137 + .../relational/planner/node/ChildReplacer.java | 32 + .../plan/relational/planner/node/CollectNode.java | 131 + .../planner/node/CreateTableDeviceNode.java | 319 ++ .../plan/relational/planner/node/FilterNode.java | 115 + .../plan/relational/planner/node/LimitNode.java | 128 + .../relational/planner/node/MergeSortNode.java | 141 + .../plan/relational/planner/node/OffsetNode.java | 106 + .../plan/relational/planner/node/OutputNode.java | 147 + .../plan/relational/planner/node/Patterns.java | 432 +++ .../plan/relational/planner/node/ProjectNode.java | 125 + .../plan/relational/planner/node/SortNode.java | 126 + .../relational/planner/node/StreamSortNode.java | 120 + .../relational/planner/node/TableScanNode.java | 494 +++ .../plan/relational/planner/node/TopKNode.java | 173 + .../optimizations/AdaptivePlanOptimizer.java | 56 + .../optimizations/DistributedOptimizeFactory.java | 56 + .../optimizations/LogicalOptimizeFactory.java | 103 + .../planner/optimizations/PlanOptimizer.java | 101 + .../PushLimitOffsetIntoTableScan.java | 272 ++ .../optimizations/PushPredicateIntoTableScan.java | 382 ++ .../planner/optimizations/SimplifyExpressions.java | 59 + .../planner/optimizations/SortElimination.java | 94 + .../optimizations/TransformSortToStreamSort.java | 145 + .../relational/planner/optimizations/Util.java | 138 + .../plan/relational/security/AccessControl.java | 22 + .../plan/relational/security/Identity.java | 32 + .../relational/sql/ast/AbstractQueryDevice.java | 147 + .../plan/relational/sql/ast/AddColumn.java | 88 + .../plan/relational/sql/ast/AliasedRelation.java | 112 + .../plan/relational/sql/ast/AllColumns.java | 130 + .../plan/relational/sql/ast/AllRows.java | 67 + .../sql/ast/ArithmeticBinaryExpression.java | 142 + .../sql/ast/ArithmeticUnaryExpression.java | 135 + .../plan/relational/sql/ast/AstVisitor.java | 505 +++ .../plan/relational/sql/ast/BetweenPredicate.java | 128 + .../plan/relational/sql/ast/BinaryLiteral.java | 139 + .../plan/relational/sql/ast/BooleanLiteral.java | 112 + .../queryengine/plan/relational/sql/ast/Cast.java | 159 + .../relational/sql/ast/CoalesceExpression.java | 92 + .../plan/relational/sql/ast/ColumnDefinition.java | 123 + .../relational/sql/ast/ComparisonExpression.java | 195 ++ .../plan/relational/sql/ast/CountDevice.java | 38 + .../plan/relational/sql/ast/CreateDB.java | 115 + .../plan/relational/sql/ast/CreateDevice.java | 123 + .../plan/relational/sql/ast/CreateFunction.java | 104 + .../plan/relational/sql/ast/CreateIndex.java | 110 + .../plan/relational/sql/ast/CreateTable.java | 132 + .../plan/relational/sql/ast/CurrentDatabase.java | 70 + .../plan/relational/sql/ast/CurrentTime.java | 113 + .../plan/relational/sql/ast/CurrentUser.java | 70 + .../plan/relational/sql/ast/DataType.java | 28 + .../plan/relational/sql/ast/DataTypeParameter.java | 34 + .../plan/relational/sql/ast/DecimalLiteral.java | 103 + .../sql/ast/DefaultExpressionTraversalVisitor.java | 29 + .../sql/ast/DefaultTraversalVisitor.java | 490 +++ .../plan/relational/sql/ast/Delete.java | 94 + .../relational/sql/ast/DereferenceExpression.java | 151 + .../plan/relational/sql/ast/DescribeTable.java | 80 + .../plan/relational/sql/ast/DoubleLiteral.java | 106 + .../plan/relational/sql/ast/DropColumn.java | 86 + .../plan/relational/sql/ast/DropDB.java | 86 + .../plan/relational/sql/ast/DropFunction.java | 74 + .../plan/relational/sql/ast/DropIndex.java | 88 + .../plan/relational/sql/ast/DropTable.java | 86 + .../plan/relational/sql/ast/Except.java | 107 + .../plan/relational/sql/ast/ExistsPredicate.java | 80 + .../plan/relational/sql/ast/Explain.java | 79 + .../plan/relational/sql/ast/ExplainAnalyze.java | 86 + .../plan/relational/sql/ast/Expression.java | 155 + .../plan/relational/sql/ast/FetchDevice.java | 110 + .../plan/relational/sql/ast/FieldReference.java | 80 + .../queryengine/plan/relational/sql/ast/Flush.java | 35 + .../plan/relational/sql/ast/FunctionCall.java | 145 + .../plan/relational/sql/ast/GenericDataType.java | 111 + .../plan/relational/sql/ast/GenericLiteral.java | 132 + .../plan/relational/sql/ast/GroupBy.java | 100 + .../plan/relational/sql/ast/GroupByTime.java | 145 + .../plan/relational/sql/ast/GroupingElement.java | 36 + .../plan/relational/sql/ast/GroupingSets.java | 114 + .../plan/relational/sql/ast/Identifier.java | 168 + .../plan/relational/sql/ast/IfExpression.java | 105 + .../plan/relational/sql/ast/InListExpression.java | 110 + .../plan/relational/sql/ast/InPredicate.java | 106 + .../plan/relational/sql/ast/Insert.java | 107 + .../plan/relational/sql/ast/InsertRow.java | 88 + .../plan/relational/sql/ast/InsertRows.java | 150 + .../plan/relational/sql/ast/InsertTablet.java | 98 + .../plan/relational/sql/ast/Intersect.java | 91 + .../relational/sql/ast/IsNotNullPredicate.java | 97 + .../plan/relational/sql/ast/IsNullPredicate.java | 97 + .../queryengine/plan/relational/sql/ast/Join.java | 165 + .../plan/relational/sql/ast/JoinCriteria.java | 37 + .../plan/relational/sql/ast/JoinOn.java | 68 + .../plan/relational/sql/ast/JoinUsing.java | 70 + .../plan/relational/sql/ast/LikePredicate.java | 143 + .../queryengine/plan/relational/sql/ast/Limit.java | 96 + .../plan/relational/sql/ast/Literal.java | 47 + .../plan/relational/sql/ast/LogicalExpression.java | 148 + .../plan/relational/sql/ast/LongLiteral.java | 137 + .../plan/relational/sql/ast/NaturalJoin.java | 51 + .../queryengine/plan/relational/sql/ast/Node.java | 71 + .../plan/relational/sql/ast/NodeLocation.java | 68 + .../plan/relational/sql/ast/NotExpression.java | 97 + .../plan/relational/sql/ast/NullIfExpression.java | 86 + .../plan/relational/sql/ast/NullLiteral.java | 81 + .../plan/relational/sql/ast/NumericParameter.java | 88 + .../plan/relational/sql/ast/Offset.java | 94 + .../plan/relational/sql/ast/OrderBy.java | 89 + .../plan/relational/sql/ast/Parameter.java | 82 + .../plan/relational/sql/ast/Property.java | 120 + .../plan/relational/sql/ast/QualifiedName.java | 206 ++ .../sql/ast/QuantifiedComparisonExpression.java | 123 + .../queryengine/plan/relational/sql/ast/Query.java | 146 + .../plan/relational/sql/ast/QueryBody.java | 34 + .../relational/sql/ast/QuerySpecification.java | 169 + .../plan/relational/sql/ast/Relation.java | 32 + .../plan/relational/sql/ast/RenameColumn.java | 92 + .../plan/relational/sql/ast/RenameTable.java | 85 + .../queryengine/plan/relational/sql/ast/Row.java | 77 + .../relational/sql/ast/SearchedCaseExpression.java | 107 + .../plan/relational/sql/ast/Select.java | 100 + .../plan/relational/sql/ast/SelectItem.java | 27 + .../plan/relational/sql/ast/SetConfiguration.java | 34 + .../plan/relational/sql/ast/SetOperation.java | 42 + .../plan/relational/sql/ast/SetProperties.java | 107 + .../plan/relational/sql/ast/ShowCluster.java | 90 + .../plan/relational/sql/ast/ShowConfigNodes.java | 66 + .../plan/relational/sql/ast/ShowDB.java | 64 + .../plan/relational/sql/ast/ShowDataNodes.java | 66 + .../plan/relational/sql/ast/ShowDevice.java | 54 + .../plan/relational/sql/ast/ShowFunctions.java | 65 + .../plan/relational/sql/ast/ShowIndex.java | 78 + .../plan/relational/sql/ast/ShowRegions.java | 103 + .../plan/relational/sql/ast/ShowTables.java | 92 + .../relational/sql/ast/SimpleCaseExpression.java | 124 + .../plan/relational/sql/ast/SimpleGroupBy.java | 89 + .../plan/relational/sql/ast/SingleColumn.java | 114 + .../plan/relational/sql/ast/SortItem.java | 122 + .../relational/sql/ast/StackableAstVisitor.java | 65 + .../plan/relational/sql/ast/Statement.java | 34 + .../plan/relational/sql/ast/StringLiteral.java | 112 + .../relational/sql/ast/SubqueryExpression.java | 79 + .../plan/relational/sql/ast/SymbolReference.java | 87 + .../queryengine/plan/relational/sql/ast/Table.java | 89 + .../relational/sql/ast/TableExpressionType.java | 57 + .../plan/relational/sql/ast/TableSubquery.java | 85 + .../plan/relational/sql/ast/TimeRange.java | 95 + .../queryengine/plan/relational/sql/ast/Trim.java | 141 + .../plan/relational/sql/ast/TypeParameter.java | 78 + .../queryengine/plan/relational/sql/ast/Union.java | 92 + .../plan/relational/sql/ast/Update.java | 109 + .../plan/relational/sql/ast/UpdateAssignment.java | 84 + .../queryengine/plan/relational/sql/ast/Use.java | 81 + .../plan/relational/sql/ast/Values.java | 83 + .../plan/relational/sql/ast/WhenClause.java | 86 + .../queryengine/plan/relational/sql/ast/With.java | 100 + .../plan/relational/sql/ast/WithQuery.java | 130 + .../relational/sql/ast/WrappedInsertStatement.java | 221 ++ .../plan/relational/sql/ast/WrappedStatement.java | 83 + .../relational/sql/parser/AntlrATNCacheFields.java | 70 + .../plan/relational/sql/parser/AstBuilder.java | 2004 +++++++++++ .../sql/parser/CaseInsensitiveStream.java | 85 + .../plan/relational/sql/parser/ErrorHandler.java | 438 +++ .../relational/sql/parser/ParsingException.java | 69 + .../RefreshableSqlBaseParserInitializer.java | 52 + .../plan/relational/sql/parser/SqlParser.java | 264 ++ .../plan/relational/sql/util/AstUtil.java | 114 + .../relational/sql/util/ExpressionFormatter.java | 673 ++++ .../plan/relational/sql/util/QueryUtil.java | 208 ++ .../relational/sql/util/ReservedIdentifiers.java | 49 + .../plan/relational/sql/util/SqlFormatter.java | 783 +++++ .../plan/relational/type/InternalTypeManager.java | 109 + .../plan/relational/type/NamedTypeSignature.java | 79 + .../plan/relational/type/ParameterKind.java | 27 + .../plan/relational/type/RowFieldName.java | 63 + .../plan/relational/type/StandardTypes.java | 55 + .../queryengine/plan/relational/type/TypeId.java | 66 + .../plan/relational/type/TypeManager.java | 37 + .../relational/type/TypeNotFoundException.java | 43 + .../plan/relational/type/TypeSignature.java | 207 ++ .../relational/type/TypeSignatureParameter.java | 175 + .../relational/type/TypeSignatureTranslator.java | 107 + .../plan/relational/utils/ConversionUtils.java | 26 + .../plan/relational/utils/MoreLists.java | 53 + .../plan/relational/utils/NodeUtils.java | 36 + .../plan/relational/utils/matching/Capture.java | 43 + .../plan/relational/utils/matching/Captures.java | 86 + .../relational/utils/matching/DefaultPrinter.java | 77 + .../plan/relational/utils/matching/Match.java | 66 + .../plan/relational/utils/matching/Pattern.java | 120 + .../relational/utils/matching/PatternVisitor.java | 46 + .../plan/relational/utils/matching/Property.java | 89 + .../relational/utils/matching/PropertyPattern.java | 51 + .../utils/matching/pattern/CapturePattern.java | 53 + .../utils/matching/pattern/EqualsPattern.java | 53 + .../utils/matching/pattern/FilterPattern.java | 55 + .../utils/matching/pattern/TypeOfPattern.java | 59 + .../utils/matching/pattern/WithPattern.java | 65 + .../plan/scheduler/load/LoadTsFileScheduler.java | 13 +- .../db/queryengine/plan/statement/Statement.java | 8 +- .../plan/statement/component/HavingCondition.java | 8 +- .../plan/statement/crud/DeleteDataStatement.java | 12 +- .../plan/statement/crud/InsertBaseStatement.java | 176 +- .../plan/statement/crud/InsertRowStatement.java | 78 +- .../crud/InsertRowsOfOneDeviceStatement.java | 2 +- .../plan/statement/crud/InsertRowsStatement.java | 11 + .../plan/statement/crud/InsertStatement.java | 2 +- .../plan/statement/crud/InsertTabletStatement.java | 115 +- .../internal/DeviceSchemaFetchStatement.java | 1 + .../InternalBatchActivateTemplateStatement.java | 2 +- .../InternalCreateMultiTimeSeriesStatement.java | 5 +- .../InternalCreateTimeSeriesStatement.java | 4 +- .../metadata/CountTimeSlotListStatement.java | 7 +- .../metadata/CreateAlignedTimeSeriesStatement.java | 2 +- .../metadata/CreateMultiTimeSeriesStatement.java | 10 +- .../metadata/CreateTimeSeriesStatement.java | 7 +- .../statement/metadata/GetRegionIdStatement.java | 7 +- .../metadata/GetTimeSlotListStatement.java | 7 +- .../template/ActivateTemplateStatement.java | 2 +- .../template/BatchActivateTemplateStatement.java | 2 +- .../template/DeactivateTemplateStatement.java | 3 +- .../statistics/SpecifiedInfoMergerFactory.java | 6 +- .../dag/column/CaseWhenThenColumnTransformer.java | 13 +- .../dag/column/ColumnTransformer.java | 8 +- .../binary/CompareBinaryColumnTransformer.java | 4 +- .../binary/CompareEqualToColumnTransformer.java | 12 +- .../binary/CompareNonEqualColumnTransformer.java | 12 +- .../multi/LogicalAndMultiColumnTransformer.java | 65 + .../multi/LogicalMultiColumnTransformer.java | 44 + .../multi/LogicalOrMultiColumnTransformer.java | 64 + .../dag/column/multi/MultiColumnTransformer.java | 67 + .../column/ternary/BetweenColumnTransformer.java | 5 +- .../ternary/CompareTernaryColumnTransformer.java | 33 +- .../column/ternary/TernaryColumnTransformer.java | 23 + .../dag/column/unary/InColumnTransformer.java | 98 +- .../dag/column/unary/RegularColumnTransformer.java | 5 +- .../scalar/CastFunctionColumnTransformer.java | 52 +- .../column/unary/scalar/DiffColumnTransformer.java | 73 + .../unary/scalar/Replace2ColumnTransformer.java | 66 + .../unary/scalar/Replace3ColumnTransformer.java | 75 + .../unary/scalar/RoundColumnTransformer.java | 78 + .../unary/scalar/SubString2ColumnTransformer.java | 63 + .../unary/scalar/SubString3ColumnTransformer.java | 78 + .../scalar/SubStringFunctionColumnTransformer.java | 4 +- .../SingleInputMultiReferenceLayer.java | 14 +- .../SingleInputSingleReferenceLayer.java | 12 +- .../iterator/TVListForwardIterator.java | 3 +- .../datastructure/row/SerializableRowList.java | 3 +- .../tv/ElasticSerializableBinaryTVList.java | 8 +- .../tv/ElasticSerializableTVList.java | 11 +- .../datastructure/tv/SerializableTVList.java | 15 +- .../schemaengine/schemaregion/ISchemaRegion.java | 21 + .../attribute/DeviceAttributeStore.java | 191 + .../attribute/IDeviceAttributeStore.java | 39 + .../schemaregion/impl/SchemaRegionMemoryImpl.java | 67 +- .../schemaregion/impl/SchemaRegionPBTreeImpl.java | 30 +- .../visitor/SchemaRegionPlanDeserializer.java | 8 +- .../mtree/impl/mem/MTreeBelowSGMemoryImpl.java | 286 +- .../mtree/impl/mem/mnode/basic/BasicMNode.java | 3 +- .../container/KeyNullableConcurrentHashMap.java | 175 + .../mem/mnode/container/MemMNodeContainer.java | 3 +- .../mtree/impl/mem/mnode/info/BasicMNodeInfo.java | 2 +- .../mtree/impl/mem/mnode/info/LogicalViewInfo.java | 3 +- .../mtree/impl/mem/mnode/info/TableDeviceInfo.java | 119 + .../impl/mem/snapshot/MemMTreeSnapshotUtil.java | 36 +- .../mtree/impl/pbtree/MTreeBelowSGCachedImpl.java | 6 +- .../mtree/traverser/basic/DatabaseTraverser.java | 13 +- .../mtree/traverser/basic/EntityTraverser.java | 25 +- .../mtree/traverser/collector/EntityCollector.java | 15 +- .../read/req/impl/ShowTableDevicesPlan.java | 44 + .../read/resp/info/IDeviceSchemaInfo.java | 4 + .../read/resp/info/impl/ShowDevicesResult.java | 42 +- .../schemaengine/schemaregion/utils/MetaUtils.java | 26 +- .../schemaregion/utils/ResourceByPathUtils.java | 100 +- .../utils/filter/DeviceFilterVisitor.java | 36 +- .../utils/filter/FilterContainsVisitor.java | 11 +- .../utils/filter/TimeseriesFilterVisitor.java | 8 +- .../write/req/ICreateTimeSeriesPlan.java | 6 +- .../write/req/SchemaRegionWritePlanFactory.java | 3 +- .../write/req/impl/CreateTimeSeriesPlanImpl.java | 12 +- .../db/schemaengine/table/DataNodeTableCache.java | 225 ++ .../iotdb/db/schemaengine/table/ITableCache.java | 38 + .../java/org/apache/iotdb/db/service/DataNode.java | 4 + .../iotdb/db/service/metrics/CacheMetrics.java | 28 +- .../iotdb/db/storageengine/StorageEngine.java | 2 +- .../buffer/TimeSeriesMetadataCache.java | 15 +- .../db/storageengine/dataregion/DataRegion.java | 340 +- .../dataregion/IDataRegionForQuery.java | 8 +- .../dataregion/VirtualDataRegion.java | 8 +- .../CompactionTableSchemaNotMatchException.java | 26 + .../performer/impl/FastCompactionPerformer.java | 18 +- .../impl/ReadChunkCompactionPerformer.java | 4 + .../impl/ReadPointCompactionPerformer.java | 27 +- .../RepairUnsortedFileCompactionPerformer.java | 4 +- .../execute/utils/CompactionPathUtils.java | 5 +- .../execute/utils/CompactionTableSchema.java | 86 + .../utils/CompactionTableSchemaCollector.java | 97 + .../execute/utils/MultiTsFileDeviceIterator.java | 13 +- .../readchunk/AlignedSeriesCompactionExecutor.java | 3 +- .../ReadChunkAlignedSeriesCompactionExecutor.java | 3 +- .../utils/reader/SeriesDataBlockReader.java | 25 +- .../utils/writer/AbstractCompactionWriter.java | 24 +- .../writer/AbstractCrossCompactionWriter.java | 5 + .../writer/AbstractInnerCompactionWriter.java | 7 + .../writer/ReadPointCrossCompactionWriter.java | 2 +- .../writer/ReadPointInnerCompactionWriter.java | 2 +- .../compaction/io/CompactionTsFileReader.java | 2 +- .../compaction/io/CompactionTsFileWriter.java | 19 + .../compaction/repair/RepairDataFileScanUtil.java | 38 +- .../estimator/AbstractCompactionEstimator.java | 19 +- .../selector/impl/SettleSelectorImpl.java | 9 +- .../selector/utils/TsFileResourceCandidate.java | 4 +- .../dataregion/memtable/AbstractMemTable.java | 126 +- .../memtable/AlignedReadOnlyMemChunk.java | 4 +- .../memtable/AlignedWritableMemChunk.java | 12 +- .../memtable/AlignedWritableMemChunkGroup.java | 6 +- .../dataregion/memtable/DeviceIDFactory.java | 55 +- .../dataregion/memtable/IMemTable.java | 11 +- .../dataregion/memtable/IWritableMemChunk.java | 6 +- .../memtable/IWritableMemChunkGroup.java | 4 +- .../dataregion/memtable/ReadOnlyMemChunk.java | 3 +- .../dataregion/memtable/TsFileProcessor.java | 466 ++- .../dataregion/memtable/WritableMemChunk.java | 6 +- .../dataregion/memtable/WritableMemChunkGroup.java | 4 +- .../dataregion/modification/Deletion.java | 12 +- .../dataregion/modification/Modification.java | 12 +- .../io/LocalTextModificationAccessor.java | 6 +- .../dataregion/read/QueryDataSource.java | 9 + .../dataregion/read/control/FileReaderManager.java | 4 +- .../filescan/impl/ClosedFileScanHandleImpl.java | 6 +- .../filescan/impl/UnclosedFileScanHandleImpl.java | 6 +- .../metadata/MemAlignedChunkMetadataLoader.java | 6 +- .../chunk/metadata/MemChunkMetadataLoader.java | 6 +- .../dataregion/tsfile/TsFileResource.java | 40 +- .../tsfile/timeindex/ArrayDeviceTimeIndex.java | 461 +++ .../tsfile/timeindex/DeviceTimeIndex.java | 469 --- .../dataregion/tsfile/timeindex/FileTimeIndex.java | 10 +- .../dataregion/tsfile/timeindex/ITimeIndex.java | 6 +- .../tsfile/timeindex/PlainDeviceTimeIndex.java | 111 + .../tsfile/timeindex/TimeIndexLevel.java | 15 +- .../utils/TsFileDeviceStartEndTimeIterator.java | 6 +- .../dataregion/utils/TsFileResourceUtils.java | 23 +- .../wal/allocation/FirstCreateStrategy.java | 7 +- .../dataregion/wal/buffer/IWALByteBufferView.java | 21 +- .../dataregion/wal/buffer/WALBuffer.java | 12 +- .../wal/recover/file/TsFilePlanRedoer.java | 8 +- .../file/UnsealedTsFileRecoverPerformer.java | 3 +- .../dataregion/wal/utils/WALWriteUtils.java | 9 +- .../receiver/SubscriptionReceiverV1.java | 1 + .../iotdb/db/tools/TsFileResourcePrinter.java | 4 +- .../apache/iotdb/db/tools/TsFileSelfCheckTool.java | 44 +- .../apache/iotdb/db/tools/TsFileSketchTool.java | 106 +- .../iotdb/db/tools/TsFileSplitByPartitionTool.java | 12 +- .../db/tools/schema/SRStatementGenerator.java | 10 +- .../TsFileOverlapValidationAndRepairTool.java | 3 +- .../db/trigger/executor/TriggerFireVisitor.java | 13 +- .../org/apache/iotdb/db/utils/CommonUtils.java | 78 + .../org/apache/iotdb/db/utils/DateTimeUtils.java | 79 +- .../apache/iotdb/db/utils/ErrorHandlingUtils.java | 7 +- .../java/org/apache/iotdb/db/utils/MemUtils.java | 36 +- .../apache/iotdb/db/utils/ModificationUtils.java | 17 +- .../org/apache/iotdb/db/utils/SchemaUtils.java | 5 +- .../apache/iotdb/db/utils/TypeInferenceUtils.java | 10 +- .../iotdb/db/utils/annotations/TableModel.java | 33 + .../iotdb/db/utils/annotations/TreeModel.java | 33 + .../db/utils/datastructure/AlignedTVList.java | 37 +- .../utils/datastructure/PatternTreeMapFactory.java | 4 +- .../iotdb/db/utils/datastructure/TVList.java | 4 +- .../apache/iotdb/db/utils/sort/DiskSpiller.java | 31 +- .../iotdb/db/utils/sort/SortBufferManager.java | 33 +- .../iotdb/db/utils/sort/TableDiskSpiller.java | 47 + .../iotdb/db/utils/sort/TreeDiskSpiller.java | 44 + .../apache/iotdb/db/metadata/MetaUtilsTest.java | 8 +- .../db/metadata/cache/DataNodeSchemaCacheTest.java | 22 +- .../cache/dualkeycache/DualKeyCacheTest.java | 15 +- .../db/metadata/idtable/entry/DeviceIDTest.java | 7 +- .../iotdb/db/metadata/path/PatternTreeMapTest.java | 73 +- .../schemaRegion/SchemaRegionBasicTest.java | 32 +- .../schemaRegion/SchemaRegionManagementTest.java | 5 +- .../SchemaRegionSimpleRecoverTest.java | 5 +- .../schemaRegion/SchemaRegionTableDeviceTest.java | 400 +++ .../schemaRegion/SchemaRegionTestUtil.java | 67 +- .../schemaRegion/SchemaStatisticsTest.java | 3 +- .../connector/PipeDataNodeThriftRequestTest.java | 7 +- .../PipeStatementPatternParseVisitorTest.java | 5 +- .../pipe/connector/PipeTabletEventSorterTest.java | 7 +- .../event/TsFileInsertionDataContainerTest.java | 5 +- .../extractor/PipePlanPatternParseVisitorTest.java | 40 +- .../db/pipe/extractor/PipeRealtimeExtractTest.java | 6 +- .../extractor/SchemaRegionListeningQueueTest.java | 7 +- .../pattern/CachedSchemaPatternMatcherTest.java | 23 +- .../db/pipe/pattern/IoTDBPipePatternTest.java | 4 +- .../db/pipe/pattern/PrefixPipePatternTest.java | 4 +- .../resource/PipeTsFileResourceManagerTest.java | 8 +- .../common/schematree/ClusterSchemaTreeTest.java | 5 +- .../db/queryengine/execution/DataDriverTest.java | 28 +- .../operator/AggregationOperatorTest.java | 12 +- .../AlignedSeriesAggregationScanOperatorTest.java | 19 +- .../operator/AlignedSeriesScanOperatorTest.java | 121 +- .../execution/operator/AlignedSeriesTestUtil.java | 29 +- .../execution/operator/DeviceViewOperatorTest.java | 26 +- .../operator/HorizontallyConcatOperatorTest.java | 22 +- .../execution/operator/LastQueryOperatorTest.java | 13 +- .../operator/LastQuerySortOperatorTest.java | 361 -- .../operator/LastQueryTreeSortOperatorTest.java | 362 ++ .../execution/operator/LimitOperatorTest.java | 19 +- .../execution/operator/MergeSortOperatorTest.java | 1866 ---------- .../operator/MergeTreeSortOperatorTest.java | 1891 ++++++++++ .../execution/operator/OffsetOperatorTest.java | 55 +- .../execution/operator/OperatorMemoryTest.java | 92 +- .../operator/RawDataAggregationOperatorTest.java | 19 +- .../SeriesAggregationScanOperatorTest.java | 12 +- .../execution/operator/SeriesScanOperatorTest.java | 13 +- .../operator/SingleDeviceViewOperatorTest.java | 22 +- .../SlidingWindowAggregationOperatorTest.java | 12 +- .../execution/operator/SortOperatorTest.java | 285 -- .../execution/operator/TopKOperatorTest.java | 1550 --------- .../execution/operator/TreeSortOperatorTest.java | 286 ++ .../execution/operator/TreeTopKOperatorTest.java | 1571 +++++++++ .../operator/UpdateLastCacheOperatorTest.java | 7 +- .../process/TableStreamSortOperatorTest.java | 599 ++++ .../schema/SchemaFetchScanOperatorTest.java | 2 +- .../operator/sink/IdentitySinkOperatorTest.java | 31 +- .../db/queryengine/plan/analyze/AnalyzeTest.java | 71 +- .../plan/analyze/ExpressionAnalyzerTest.java | 10 +- .../plan/analyze/FakePartitionFetcherImpl.java | 20 +- .../plan/analyze/cache/PartitionCacheTest.java | 155 +- .../plan/optimization/OptimizationTestUtil.java | 4 +- .../plan/optimization/TestPlanBuilder.java | 21 +- .../plan/parser/StatementGeneratorTest.java | 188 + .../plan/planner/PipelineBuilderTest.java | 25 +- .../distribution/DistributionPlannerBasicTest.java | 23 +- .../distribution/RegionScanPlanningTest.java | 13 +- .../plan/planner/distribution/Util.java | 22 +- .../plan/planner/distribution/Util2.java | 21 +- .../logical/DataQueryLogicalPlannerTest.java | 43 +- .../planner/logical/LogicalPlannerTestUtil.java | 2 +- .../logical/RegionScanLogicalPlannerTest.java | 37 +- .../logical/SchemaQueryLogicalPlannerTest.java | 28 +- .../plan/planner/node/PlanGraphPrinterTest.java | 7 +- .../read/DeviceSchemaFetchScanNodeTest.java | 2 +- .../read/DeviceSchemaScanNodeSerdeTest.java | 4 +- .../NodeManagementMemoryMergeNodeSerdeTest.java | 10 +- .../read/PathsUsingTemplateScanNodeTest.java | 2 +- .../metadata/read/SchemaCountNodeSerdeTest.java | 8 +- .../metadata/read/SchemaFetchMergeNodeTest.java | 4 +- .../read/SeriesSchemaFetchScanNodeTest.java | 2 +- .../read/TimeSeriesSchemaScanNodeSerdeTest.java | 4 +- .../metadata/write/MetadataWriteNodeSerDeTest.java | 45 +- .../pipe/PipeEnrichedDeleteDataNodeSerdeTest.java | 10 +- .../PipeEnrichedNonWritePlanNodeSerdeTest.java | 2 +- .../pipe/PipeEnrichedWritePlanNodeSerdeTest.java | 2 +- .../node/process/DeviceViewNodeSerdeTest.java | 7 +- .../process/SingleDeviceViewNodeSerdeTest.java | 3 +- .../node/write/DeleteDataNodeSerdeTest.java | 10 +- .../node/write/InsertRowsNodeSerdeTest.java | 161 +- .../node/write/InsertTabletNodeSerdeTest.java | 158 + .../planner/node/write/WritePlanNodeSplitTest.java | 24 +- .../plan/relational/analyzer/AnalyzerTest.java | 1149 ++++++ .../analyzer/LimitOffsetPushDownTest.java | 307 ++ .../analyzer/MockTableModelDataPartition.java | 166 + .../plan/relational/analyzer/SortTest.java | 756 ++++ .../plan/relational/analyzer/TestMatadata.java | 343 ++ .../plan/relational/analyzer/TestPlanBuilder.java | 104 + .../fetcher/cache/TableDeviceSchemaCacheTest.java | 100 + .../plan/relational/planner/ExampleTest.java | 160 + .../plan/relational/planner/PlanTester.java | 157 + .../relational/planner/PredicateUtilsTest.java | 72 + .../planner/assertions/AliasMatcher.java | 66 + .../planner/assertions/AliasPresent.java | 43 + .../assertions/BaseStrictSymbolsMatcher.java | 59 + .../planner/assertions/ColumnReference.java | 85 + .../planner/assertions/ExchangeNodeMatcher.java | 36 + .../planner/assertions/ExpressionMatcher.java | 82 + .../planner/assertions/ExpressionVerifier.java | 505 +++ .../planner/assertions/FilterMatcher.java | 56 + .../assertions/IdentityProjectionMatcher.java | 45 + .../planner/assertions/LimitMatcher.java | 96 + .../relational/planner/assertions/MatchResult.java | 63 + .../relational/planner/assertions/Matcher.java | 67 + .../planner/assertions/NotPlanNodeMatcher.java | 51 + .../planner/assertions/OffsetMatcher.java | 45 + .../planner/assertions/OutputMatcher.java | 68 + .../relational/planner/assertions/PlanAssert.java | 90 + .../planner/assertions/PlanMatchPattern.java | 815 +++++ .../planner/assertions/PlanMatchingState.java | 46 + .../planner/assertions/PlanMatchingVisitor.java | 176 + .../planner/assertions/PlanNodeMatcher.java | 55 + .../planner/assertions/PlanTestSymbol.java | 20 + .../planner/assertions/RvalueMatcher.java | 36 + .../relational/planner/assertions/SortMatcher.java | 62 + .../assertions/StrictAssignedSymbolsMatcher.java | 65 + .../planner/assertions/StrictSymbolsMatcher.java | 57 + .../relational/planner/assertions/SymbolAlias.java | 36 + .../planner/assertions/SymbolAliases.java | 231 ++ .../planner/assertions/TableScanMatcher.java | 101 + .../plan/relational/planner/assertions/Util.java | 44 + .../plan/statement/InsertStatementTest.java | 222 ++ .../plan/statement/StatementTestUtils.java | 257 ++ .../builder/EvaluationDAGBuilderTest.java | 7 +- .../datastructure/SerializableTVListTest.java | 2 +- .../DataNodeInternalRPCServiceImplTest.java | 15 +- .../storageengine/buffer/BloomFilterCacheTest.java | 3 +- .../db/storageengine/buffer/ChunkCacheTest.java | 11 +- .../storageengine/dataregion/DataRegionTest.java | 289 +- .../dataregion/LastFlushTimeMapTest.java | 47 +- .../db/storageengine/dataregion/TTLQueryTest.java | 67 +- .../iotdb/db/storageengine/dataregion/TTLTest.java | 18 +- .../TsFileResourceProgressIndexTest.java | 15 +- .../compaction/AbstractCompactionTest.java | 28 +- .../compaction/CompactionDataTypeNotMatchTest.java | 9 +- .../compaction/CompactionTaskComparatorTest.java | 4 +- .../compaction/CompactionValidationTest.java | 65 +- .../CrossSpaceCompactionWithUnusualCasesTest.java | 16 +- .../compaction/FastAlignedCrossCompactionTest.java | 1597 ++++++--- .../FastCompactionPerformerWithEmptyPageTest.java | 3 +- .../FastCrossCompactionPerformerTest.java | 1051 ++++-- .../FastInnerCompactionPerformerTest.java | 276 +- .../FastNonAlignedCrossCompactionTest.java | 1597 ++++++--- .../compaction/ReadChunkInnerCompactionTest.java | 105 +- .../ReadPointAlignedCrossCompactionTest.java | 1597 ++++++--- .../ReadPointCompactionPerformerTest.java | 1447 +++++--- .../ReadPointNonAlignedCrossCompactionTest.java | 1597 ++++++--- .../compaction/TestUtilsForAlignedSeries.java | 11 +- .../TsFileValidationCorrectnessTests.java | 30 +- ...eCompactionWithFastPerformerValidationTest.java | 93 +- ...actionWithReadPointPerformerValidationTest.java | 84 +- .../InsertionCrossSpaceCompactionRecoverTest.java | 29 +- .../InsertionCrossSpaceCompactionSelectorTest.java | 138 +- .../dataregion/compaction/cross/MergeTest.java | 9 +- .../compaction/cross/MergeUpgradeTest.java | 6 +- .../cross/RewriteCompactionFileSelectorTest.java | 10 +- ...eCrossSpaceCompactionWithFastPerformerTest.java | 44 +- ...sSpaceCompactionWithReadPointPerformerTest.java | 44 +- .../inner/AbstractInnerSpaceCompactionTest.java | 9 +- .../inner/FastCompactionPerformerAlignedTest.java | 85 +- .../FastCompactionPerformerNoAlignedTest.java | 47 +- .../inner/InnerCompactionMoreDataTest.java | 20 +- .../compaction/inner/InnerCompactionTest.java | 9 +- .../InnerSeqCompactionWithFastPerformerTest.java | 8 +- ...nerSeqCompactionWithReadChunkPerformerTest.java | 8 +- .../inner/InnerSpaceCompactionExceptionTest.java | 9 +- .../inner/InnerSpaceCompactionSelectorTest.java | 6 +- ...nkCompactionPerformerWithAlignedSeriesTest.java | 14 +- .../ReadChunkCompactionPerformerAlignedTest.java | 90 +- .../ReadChunkCompactionPerformerNoAlignedTest.java | 59 +- .../SizeTieredCompactionRecoverTest.java | 56 +- .../SizeTieredCompactionSelectorTest.java | 8 +- .../inner/sizetiered/SizeTieredCompactionTest.java | 9 +- .../repair/RepairUnsortedFileCompactionTest.java | 12 +- .../settle/SettleCompactionSelectorTest.java | 58 +- .../settle/SettleCompactionTaskTest.java | 37 +- .../settle/SettleRequestHandlerTest.java | 4 +- .../CompactionTableModelTestFileWriter.java | 78 + .../TableModelFastCompactionPerformerTest.java | 256 ++ ...TableModelReadChunkCompactionPerformerTest.java | 329 ++ ...TableModelReadPointCompactionPerformerTest.java | 268 ++ .../compaction/tools/UnseqSpaceStatisticsTest.java | 40 +- .../compaction/utils/CompactionCheckerUtils.java | 39 +- .../utils/CompactionFileGeneratorUtils.java | 14 +- .../compaction/utils/CompactionTestFileWriter.java | 12 +- .../utils/MultiTsFileDeviceIteratorTest.java | 193 +- .../compaction/utils/TsFileGeneratorUtils.java | 20 +- .../dataregion/memtable/MemTableTestUtils.java | 3 +- .../dataregion/memtable/PrimitiveMemTableTest.java | 124 +- .../dataregion/memtable/TsFileProcessorTest.java | 62 +- .../modification/ModificationFileTest.java | 30 +- .../io/LocalTextModificationAccessorTest.java | 10 +- .../MemAlignedChunkMetadataLoaderTest.java | 7 +- .../chunk/metadata/MemChunkMetadataLoaderTest.java | 4 +- .../series/AbstractAlignedSeriesScanTest.java | 10 +- .../read/reader/series/AbstractSeriesScanTest.java | 6 +- .../AlignedSeriesScanLimitOffsetPushDownTest.java | 9 +- .../AlignedSeriesScanPredicatePushDownTest.java | 9 +- ...gleColumnSeriesScanLimitOffsetPushDownTest.java | 9 +- .../read/reader/series/SeriesReaderTestUtil.java | 21 +- .../series/SeriesScanLimitOffsetPushDownTest.java | 3 +- .../series/SeriesScanPredicatePushDownTest.java | 3 +- .../dataregion/snapshot/IoTDBSnapshotTest.java | 9 +- .../dataregion/tsfile/TsFileResourceTest.java | 24 +- .../dataregion/wal/io/WALFileTest.java | 3 +- .../wal/node/ConsensusReqReaderTest.java | 3 +- .../wal/recover/WALRecoverManagerTest.java | 20 +- .../file/SealedTsFileRecoverPerformerTest.java | 7 +- .../wal/recover/file/TsFilePlanRedoerTest.java | 63 +- .../file/UnsealedTsFileRecoverPerformerTest.java | 10 +- .../dataregion/wal/utils/WALByteBufferForTest.java | 12 +- .../rescon/memory/ResourceManagerTest.java | 37 +- .../org/apache/iotdb/db/tools/MLogParserTest.java | 3 +- .../iotdb/db/tools/TsFileAndModSettleToolTest.java | 5 +- .../TsFileOverlapValidationAndRepairToolTest.java | 98 +- .../iotdb/db/tools/TsFileSelfCheckToolTest.java | 7 +- .../iotdb/db/tools/TsFileSketchToolTest.java | 17 +- .../iotdb/db/tools/TsFileValidationScanTest.java | 37 +- .../apache/iotdb/db/utils/DateTimeUtilsTest.java | 2 + .../org/apache/iotdb/db/utils/MemUtilsTest.java | 18 +- .../db/utils/SchemaRegionSnapshotParserTest.java | 23 +- .../org/apache/iotdb/db/utils/SchemaTestUtils.java | 13 + .../org/apache/iotdb/db/utils/SchemaUtilsTest.java | 10 +- .../db/utils/datastructure/AlignedTVListTest.java | 8 +- .../apache/iotdb/db/utils/sort/SortUtilTest.java | 10 +- .../test/resources/v3tsfile/compaction-test-tsfile | Bin 0 -> 51432 bytes .../v3tsfile/compaction-test-tsfile-resource | Bin 0 -> 103 bytes .../commons/exception/IoTDBRuntimeException.java | 66 + .../iotdb/commons/partition/DataPartition.java | 117 +- .../commons/partition/DataPartitionQueryParam.java | 29 +- .../apache/iotdb/commons/partition/Partition.java | 6 +- .../iotdb/commons/partition/SchemaPartition.java | 32 +- .../executor/SeriesPartitionExecutor.java | 9 + .../partition/executor/hash/APHashExecutor.java | 43 + .../partition/executor/hash/BKDRHashExecutor.java | 29 + .../partition/executor/hash/JSHashExecutor.java | 29 + .../partition/executor/hash/SDBMHashExecutor.java | 29 + .../apache/iotdb/commons/path/AlignedFullPath.java | 95 + .../org/apache/iotdb/commons/path/AlignedPath.java | 56 +- .../iotdb/commons/path/ExtendedPartialPath.java | 45 + .../org/apache/iotdb/commons/path/IFullPath.java | 47 + .../apache/iotdb/commons/path/MeasurementPath.java | 80 +- .../iotdb/commons/path/NonAlignedFullPath.java | 95 + .../org/apache/iotdb/commons/path/PartialPath.java | 164 +- .../apache/iotdb/commons/path/PathPatternTree.java | 46 +- .../apache/iotdb/commons/path/PathPatternUtil.java | 3 +- .../apache/iotdb/commons/path/PatternTreeMap.java | 14 + .../apache/iotdb/commons/path/fa/dfa/DFAState.java | 1 + .../iotdb/commons/path/fa/nfa/SimpleNFA.java | 68 +- .../config/constant/PipeConnectorConstant.java | 20 + .../connector/client/IoTDBSyncClientManager.java | 10 +- .../common/PipeTransferHandshakeConstant.java | 1 + .../pipe/connector/protocol/IoTDBConnector.java | 15 + .../connector/protocol/IoTDBSslSyncConnector.java | 11 +- .../commons/pipe/pattern/IoTDBPipePattern.java | 34 +- .../iotdb/commons/pipe/pattern/PipePattern.java | 9 +- .../commons/pipe/pattern/PrefixPipePattern.java | 22 +- .../commons/pipe/receiver/IoTDBFileReceiver.java | 12 + .../apache/iotdb/commons/schema/MemUsageUtil.java | 61 + .../iotdb/commons/schema/SchemaConstant.java | 11 + .../iotdb/commons/schema/filter/SchemaFilter.java | 55 +- .../commons/schema/filter/SchemaFilterFactory.java | 9 +- .../commons/schema/filter/SchemaFilterType.java | 26 + .../commons/schema/filter/SchemaFilterVisitor.java | 94 +- .../commons/schema/filter/impl/AndFilter.java | 74 - .../commons/schema/filter/impl/DataTypeFilter.java | 29 +- .../schema/filter/impl/DeviceFilterUtil.java | 82 + .../schema/filter/impl/PathContainsFilter.java | 29 +- .../filter/impl/StringValueFilterVisitor.java | 105 + .../commons/schema/filter/impl/TagFilter.java | 31 +- .../commons/schema/filter/impl/TemplateFilter.java | 28 +- .../commons/schema/filter/impl/ViewTypeFilter.java | 29 +- .../multichildren/AbstractMultiChildrenFilter.java | 85 + .../filter/impl/multichildren/AndFilter.java | 48 + .../schema/filter/impl/multichildren/OrFilter.java | 47 + .../singlechild/AbstractSingleChildFilter.java | 76 + .../filter/impl/singlechild/AttributeFilter.java | 93 + .../schema/filter/impl/singlechild/IdFilter.java | 93 + .../schema/filter/impl/singlechild/NotFilter.java | 47 + .../filter/impl/values/ComparisonFilter.java | 106 + .../schema/filter/impl/values/InFilter.java | 102 + .../schema/filter/impl/values/LikeFilter.java | 86 + .../schema/filter/impl/values/PreciseFilter.java | 84 + .../schema/table/AlterTableOperationType.java | 43 + .../apache/iotdb/commons/schema/table/TsTable.java | 242 ++ .../schema/table/TsTableInternalRPCType.java | 64 + .../schema/table/TsTableInternalRPCUtil.java | 117 + .../schema/table/column/AttributeColumnSchema.java | 57 + .../schema/table/column/IdColumnSchema.java | 57 + .../table/column/MeasurementColumnSchema.java | 102 + .../schema/table/column/TimeColumnSchema.java | 57 + .../schema/table/column/TsTableColumnCategory.java | 108 + .../schema/table/column/TsTableColumnSchema.java | 74 + .../table/column/TsTableColumnSchemaUtil.java | 117 + .../commons/schema/tree/AbstractTreeVisitor.java | 27 +- .../apache/iotdb/commons/schema/ttl/TTLCache.java | 18 +- .../commons/schema/view/LogicalViewSchema.java | 3 +- .../org/apache/iotdb/commons/utils/AuthUtils.java | 2 +- .../org/apache/iotdb/commons/utils/PathUtils.java | 12 +- .../partition/executor/HashExecutorTest.java | 63 + .../apache/iotdb/commons/path/PartialPathTest.java | 213 +- .../iotdb/commons/path/PathPatternTreeTest.java | 5 +- .../commons/schema/SchemaFilterSerDeTest.java | 93 + iotdb-core/pom.xml | 1 + iotdb-core/relational-grammar/pom.xml | 106 + .../db/relational/grammar/sql/RelationalSql.g4 | 1214 +++++++ .../db/relational/grammar/type/TypeCalculation.g4 | 72 + .../grammar/sql/RelationalSqlKeywords.java | 48 + .../src/main/thrift/confignode.thrift | 51 +- .../thrift-datanode/src/main/thrift/client.thrift | 7 + .../src/main/thrift/datanode.thrift | 10 + pom.xml | 13 +- 1342 files changed, 129680 insertions(+), 23073 deletions(-) diff --cc iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java index 7ce87a64886,0f7ab2f3f3d..d37513213b9 --- a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java +++ b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java @@@ -116,8 -127,9 +127,10 @@@ public enum TSStatusCode NO_SUCH_QUERY(714), QUERY_WAS_KILLED(715), EXPLAIN_ANALYZE_FETCH_ERROR(716), + TOO_MANY_CONCURRENT_QUERIES_ERROR(717), + OPERATOR_NOT_FOUND(716), + // Authentication INIT_AUTH_ERROR(800), WRONG_LOGIN_PASSWORD(801),
