diff --git a/external-service-impl/mqtt/src/main/java/org/apache/iotdb/mqtt/MPPPublishHandler.java b/external-service-impl/mqtt/src/main/java/org/apache/iotdb/mqtt/MPPPublishHandler.java index 395447e9734f4..6e8ce1fd7cbae 100644 --- a/external-service-impl/mqtt/src/main/java/org/apache/iotdb/mqtt/MPPPublishHandler.java +++ b/external-service-impl/mqtt/src/main/java/org/apache/iotdb/mqtt/MPPPublishHandler.java @@ -21,11 +21,12 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.conf.IoTDBConstant.ClientVersion; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.MqttClientSession; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.queryengine.plan.Coordinator; @@ -42,7 +43,6 @@ import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; import org.apache.iotdb.db.utils.CommonUtils; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.iotdb.rpc.TSStatusCode; import org.apache.iotdb.service.rpc.thrift.TSProtocolVersion; @@ -105,7 +105,7 @@ public void onConnect(InterceptConnectMessage msg) { ZoneId.systemDefault().toString(), TSProtocolVersion.IOTDB_SERVICE_PROTOCOL_V3, ClientVersion.V_1_0, - useTableInsert ? IClientSession.SqlDialect.TABLE : IClientSession.SqlDialect.TREE); + useTableInsert ? SqlDialect.TABLE : SqlDialect.TREE); sessionManager.registerSessionForMqtt(session); clientIdToSessionMap.put(msg.getClientID(), session); } @@ -173,7 +173,7 @@ private void insertTable(TableMessage message, MqttClientSession session) { TimestampPrecisionUtils.checkTimestampPrecision(message.getTimestamp()); InsertTabletStatement insertTabletStatement = constructInsertTabletStatement(message); session.setDatabaseName(message.getDatabase().toLowerCase()); - session.setSqlDialect(IClientSession.SqlDialect.TABLE); + session.setSqlDialect(SqlDialect.TABLE); long queryId = sessionManager.requestQueryId(); SqlParser relationSqlParser = new SqlParser(); Metadata metadata = LocalExecutionPlanner.getInstance().metadata; diff --git a/external-service-impl/rest/pom.xml b/external-service-impl/rest/pom.xml index 63b2443a8e0ab..9c3473a01c5f2 100644 --- a/external-service-impl/rest/pom.xml +++ b/external-service-impl/rest/pom.xml @@ -116,6 +116,12 @@ 2.0.7-SNAPSHOT provided + + org.apache.iotdb + calc-commons + 2.0.7-SNAPSHOT + provided + org.apache.iotdb iotdb-session diff --git a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/ExceptionHandler.java b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/ExceptionHandler.java index 61e64465a0678..57d78a527dc75 100644 --- a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/ExceptionHandler.java +++ b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/ExceptionHandler.java @@ -17,17 +17,17 @@ package org.apache.iotdb.rest.protocol.table.v1.handler; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.auth.AuthException; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.exception.auth.AccessDeniedException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.ParsingException; import org.apache.iotdb.db.exception.StorageEngineException; import org.apache.iotdb.db.exception.metadata.DatabaseNotSetException; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.exception.sql.StatementAnalyzeException; -import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.ParsingException; import org.apache.iotdb.rest.protocol.model.ExecutionStatus; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/ExecuteStatementHandler.java b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/ExecuteStatementHandler.java index 4fa749dd567be..5ec75c0d4cef1 100644 --- a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/ExecuteStatementHandler.java +++ b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/ExecuteStatementHandler.java @@ -17,11 +17,12 @@ package org.apache.iotdb.rest.protocol.table.v1.handler; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CountDevice; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DescribeTable; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Explain; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExplainAnalyze; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RelationalAuthorStatement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowAIDevices; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowAINodes; @@ -49,7 +50,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowTopics; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowVariables; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowVersion; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.type.AuthorRType; import java.util.HashSet; diff --git a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/QueryDataSetHandler.java b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/QueryDataSetHandler.java index ec22f478b8b70..6aa4d028cec35 100644 --- a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/QueryDataSetHandler.java +++ b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/QueryDataSetHandler.java @@ -18,10 +18,10 @@ package org.apache.iotdb.rest.protocol.table.v1.handler; import org.apache.iotdb.commons.exception.IoTDBException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; import org.apache.iotdb.db.queryengine.plan.execution.IQueryExecution; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.rest.protocol.model.ExecutionStatus; import org.apache.iotdb.rest.protocol.table.v1.model.QueryDataSet; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/StatementConstructionHandler.java b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/StatementConstructionHandler.java index b7f712c41f779..e4f9c23c69a7b 100644 --- a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/StatementConstructionHandler.java +++ b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/handler/StatementConstructionHandler.java @@ -19,10 +19,10 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.exception.WriteProcessRejectException; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.iotdb.rest.protocol.table.v1.model.InsertTabletRequest; import org.apache.tsfile.enums.ColumnCategory; diff --git a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/impl/RestApiServiceImpl.java b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/impl/RestApiServiceImpl.java index e66cb88a6e144..2d0a363c339ce 100644 --- a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/impl/RestApiServiceImpl.java +++ b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/table/v1/impl/RestApiServiceImpl.java @@ -18,6 +18,8 @@ package org.apache.iotdb.rest.protocol.table.v1.impl; import org.apache.iotdb.common.rpc.thrift.TSStatus; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.conf.rest.IoTDBRestServiceDescriptor; @@ -31,7 +33,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanner; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Insert; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; import org.apache.iotdb.db.utils.CommonUtils; @@ -155,7 +156,7 @@ public Response insertTablet( StatementConstructionHandler.constructInsertTabletStatement(insertTabletRequest); IClientSession clientSession = SESSION_MANAGER.getCurrSession(); clientSession.setDatabaseName(insertTabletRequest.getDatabase()); - clientSession.setSqlDialect(IClientSession.SqlDialect.TABLE); + clientSession.setSqlDialect(SqlDialect.TABLE); queryId = SESSION_MANAGER.requestQueryId(); Metadata metadata = LocalExecutionPlanner.getInstance().metadata; @@ -285,7 +286,7 @@ private Statement createStatement( clientSession.setDatabaseName(sql.getDatabase()); } - clientSession.setSqlDialect(IClientSession.SqlDialect.TABLE); + clientSession.setSqlDialect(SqlDialect.TABLE); return relationSqlParser.createStatement( sql.getSql(), clientSession.getZoneId(), clientSession); } diff --git a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/ExceptionHandler.java b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/ExceptionHandler.java index 6edcb57ab4d9a..761b01d7c6d4e 100644 --- a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/ExceptionHandler.java +++ b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/ExceptionHandler.java @@ -17,15 +17,15 @@ package org.apache.iotdb.rest.protocol.v1.handler; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.auth.AuthException; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.exception.auth.AccessDeniedException; import org.apache.iotdb.db.exception.StorageEngineException; import org.apache.iotdb.db.exception.metadata.DatabaseNotSetException; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.exception.sql.StatementAnalyzeException; import org.apache.iotdb.rest.protocol.v1.model.ExecutionStatus; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/StatementConstructionHandler.java b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/StatementConstructionHandler.java index 65ec7a966f1e0..74f679ec611d3 100644 --- a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/StatementConstructionHandler.java +++ b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v1/handler/StatementConstructionHandler.java @@ -18,11 +18,11 @@ package org.apache.iotdb.rest.protocol.v1.handler; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.commons.utils.PathUtils; import org.apache.iotdb.db.exception.WriteProcessRejectException; import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeDevicePathCache; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.iotdb.rest.protocol.v1.model.InsertTabletRequest; import org.apache.tsfile.enums.TSDataType; diff --git a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/ExceptionHandler.java b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/ExceptionHandler.java index 931ec0cec002b..2a5d1d4416a8b 100644 --- a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/ExceptionHandler.java +++ b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/ExceptionHandler.java @@ -17,15 +17,15 @@ package org.apache.iotdb.rest.protocol.v2.handler; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.auth.AuthException; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.exception.auth.AccessDeniedException; import org.apache.iotdb.db.exception.StorageEngineException; import org.apache.iotdb.db.exception.metadata.DatabaseNotSetException; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.exception.sql.StatementAnalyzeException; import org.apache.iotdb.rest.protocol.model.ExecutionStatus; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/StatementConstructionHandler.java b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/StatementConstructionHandler.java index 6668244e9e4f0..729517bf50031 100644 --- a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/StatementConstructionHandler.java +++ b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/handler/StatementConstructionHandler.java @@ -18,6 +18,7 @@ package org.apache.iotdb.rest.protocol.v2.handler; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.commons.utils.PathUtils; import org.apache.iotdb.db.exception.WriteProcessRejectException; import org.apache.iotdb.db.exception.metadata.DataTypeMismatchException; @@ -25,7 +26,6 @@ import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowsStatement; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.iotdb.rest.protocol.utils.InsertRowDataUtils; import org.apache.iotdb.rest.protocol.v2.model.InsertRecordsRequest; import org.apache.iotdb.rest.protocol.v2.model.InsertTabletRequest; diff --git a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/impl/RestApiServiceImpl.java b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/impl/RestApiServiceImpl.java index e0ac81ee92f80..2f39d6cc79d3f 100644 --- a/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/impl/RestApiServiceImpl.java +++ b/external-service-impl/rest/src/main/java/org/apache/iotdb/rest/protocol/v2/impl/RestApiServiceImpl.java @@ -19,13 +19,13 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.conf.rest.IoTDBRestServiceDescriptor; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.protocol.thrift.OperationType; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.analyze.ClusterPartitionFetcher; import org.apache.iotdb.db.queryengine.plan.analyze.IPartitionFetcher; diff --git a/integration-test/pom.xml b/integration-test/pom.xml index 072bc905caac0..c61509ed2c84c 100644 --- a/integration-test/pom.xml +++ b/integration-test/pom.xml @@ -129,6 +129,11 @@ node-commons 2.0.7-SNAPSHOT + + org.apache.iotdb + calc-commons + 2.0.7-SNAPSHOT + org.apache.iotdb iotdb-thrift-commons diff --git a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/EnvUtils.java b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/EnvUtils.java index faa593fb57c60..51fd05d8eaf5d 100644 --- a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/EnvUtils.java +++ b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/EnvUtils.java @@ -31,11 +31,11 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; +import static org.apache.iotdb.commons.queryengine.utils.DateTimeUtils.convertLongToDate; import static org.apache.iotdb.consensus.ConsensusFactory.IOT_CONSENSUS; import static org.apache.iotdb.consensus.ConsensusFactory.IOT_CONSENSUS_V2; import static org.apache.iotdb.consensus.ConsensusFactory.RATIS_CONSENSUS; import static org.apache.iotdb.consensus.ConsensusFactory.SIMPLE_CONSENSUS; -import static org.apache.iotdb.db.utils.DateTimeUtils.convertLongToDate; import static org.apache.iotdb.it.env.cluster.ClusterConstant.CLUSTER_CONFIGURATIONS; import static org.apache.iotdb.it.env.cluster.ClusterConstant.DEFAULT_CONFIG_NODE_NUM; import static org.apache.iotdb.it.env.cluster.ClusterConstant.DEFAULT_DATA_NODE_NUM; diff --git a/integration-test/src/main/java/org/apache/iotdb/itbase/constant/BuiltinAggregationFunctionEnum.java b/integration-test/src/main/java/org/apache/iotdb/itbase/constant/BuiltinAggregationFunctionEnum.java index 85721cfb7a154..15c8a532b2b41 100644 --- a/integration-test/src/main/java/org/apache/iotdb/itbase/constant/BuiltinAggregationFunctionEnum.java +++ b/integration-test/src/main/java/org/apache/iotdb/itbase/constant/BuiltinAggregationFunctionEnum.java @@ -19,6 +19,8 @@ package org.apache.iotdb.itbase.constant; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinAggregationFunction; + import java.util.Arrays; import java.util.HashSet; import java.util.Set; @@ -56,11 +58,8 @@ public String getFunctionName() { private static final Set NATIVE_FUNCTION_NAMES = new HashSet<>( - Arrays.stream( - org.apache.iotdb.db.queryengine.plan.udf.BuiltinAggregationFunction.values()) - .map( - org.apache.iotdb.db.queryengine.plan.udf.BuiltinAggregationFunction - ::getFunctionName) + Arrays.stream(BuiltinAggregationFunction.values()) + .map(BuiltinAggregationFunction::getFunctionName) .collect(Collectors.toList())); public static Set getNativeFunctionNames() { diff --git a/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBTimePartitionIT.java b/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBTimePartitionIT.java index 469d6974cb583..470e68de65153 100644 --- a/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBTimePartitionIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBTimePartitionIT.java @@ -19,6 +19,7 @@ package org.apache.iotdb.confignode.it.partition; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.commons.client.sync.SyncConfigNodeIServiceClient; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.schema.SchemaConstant; @@ -28,7 +29,6 @@ import org.apache.iotdb.confignode.rpc.thrift.TShowDatabaseResp; import org.apache.iotdb.consensus.ConsensusFactory; import org.apache.iotdb.db.queryengine.plan.statement.metadata.ShowDatabaseStatement; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.iotdb.it.env.EnvFactory; import org.apache.iotdb.it.framework.IoTDBTestRunner; import org.apache.iotdb.itbase.category.ClusterIT; diff --git a/integration-test/src/test/java/org/apache/iotdb/confignode/it/procedure/IoTDBProcedureIT.java b/integration-test/src/test/java/org/apache/iotdb/confignode/it/procedure/IoTDBProcedureIT.java index bae794807f34e..ddfd3e93333a1 100644 --- a/integration-test/src/test/java/org/apache/iotdb/confignode/it/procedure/IoTDBProcedureIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/confignode/it/procedure/IoTDBProcedureIT.java @@ -19,6 +19,7 @@ package org.apache.iotdb.confignode.it.procedure; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.commons.client.sync.SyncConfigNodeIServiceClient; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.schema.SchemaConstant; @@ -28,7 +29,6 @@ import org.apache.iotdb.confignode.rpc.thrift.TShowDatabaseResp; import org.apache.iotdb.confignode.rpc.thrift.TTestOperation; import org.apache.iotdb.db.queryengine.plan.statement.metadata.ShowDatabaseStatement; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.iotdb.it.env.EnvFactory; import org.apache.iotdb.it.framework.IoTDBTestRunner; import org.apache.iotdb.itbase.category.ClusterIT; diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBMultiTAGsWithAttributesTableIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBMultiTAGsWithAttributesTableIT.java index 7b9596960681f..5e18a8468c75e 100644 --- a/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBMultiTAGsWithAttributesTableIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBMultiTAGsWithAttributesTableIT.java @@ -35,12 +35,12 @@ import java.sql.Statement; import java.util.Arrays; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.FULL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.RIGHT; import static org.apache.iotdb.db.it.utils.TestUtils.tableAssertTestFail; import static org.apache.iotdb.db.it.utils.TestUtils.tableResultSetEqualTest; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.FULL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.RIGHT; import static org.junit.Assert.fail; /** In this IT, table has more than one TAGs and Attributes. */ diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/udf/IoTDBSQLFunctionManagementIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/udf/IoTDBSQLFunctionManagementIT.java index 769567860e152..f414171cf469d 100644 --- a/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/udf/IoTDBSQLFunctionManagementIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/udf/IoTDBSQLFunctionManagementIT.java @@ -18,9 +18,9 @@ */ package org.apache.iotdb.relational.it.db.it.udf; +import org.apache.iotdb.commons.queryengine.plan.relational.function.TableBuiltinTableFunction; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction; -import org.apache.iotdb.db.queryengine.plan.relational.function.TableBuiltinTableFunction; import org.apache.iotdb.it.env.EnvFactory; import org.apache.iotdb.it.framework.IoTDBTestRunner; import org.apache.iotdb.itbase.category.TableClusterIT; diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/builtinfunction/scalar/IoTDBCastFunctionTableIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/builtinfunction/scalar/IoTDBCastFunctionTableIT.java index 62c6b84f37af3..94a4157deb2b9 100644 --- a/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/builtinfunction/scalar/IoTDBCastFunctionTableIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/builtinfunction/scalar/IoTDBCastFunctionTableIT.java @@ -19,7 +19,7 @@ package org.apache.iotdb.relational.it.query.old.builtinfunction.scalar; -import org.apache.iotdb.db.utils.DateTimeUtils; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.it.env.EnvFactory; import org.apache.iotdb.it.framework.IoTDBTestRunner; import org.apache.iotdb.itbase.category.TableClusterIT; diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/builtinfunction/scalar/IoTDBFormatFunctionTableIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/builtinfunction/scalar/IoTDBFormatFunctionTableIT.java index 4f5d53c1dd83d..bd7aeded17f9c 100644 --- a/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/builtinfunction/scalar/IoTDBFormatFunctionTableIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/builtinfunction/scalar/IoTDBFormatFunctionTableIT.java @@ -14,7 +14,7 @@ package org.apache.iotdb.relational.it.query.old.builtinfunction.scalar; -import org.apache.iotdb.db.utils.DateTimeUtils; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.it.env.EnvFactory; import org.apache.iotdb.it.framework.IoTDBTestRunner; import org.apache.iotdb.itbase.category.TableClusterIT; diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/query/IoTDBArithmeticTableIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/query/IoTDBArithmeticTableIT.java index 43e1302db1222..c4961da82221e 100644 --- a/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/query/IoTDBArithmeticTableIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/query/old/query/IoTDBArithmeticTableIT.java @@ -19,7 +19,7 @@ package org.apache.iotdb.relational.it.query.old.query; -import org.apache.iotdb.db.utils.DateTimeUtils; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.it.env.EnvFactory; import org.apache.iotdb.it.framework.IoTDBTestRunner; import org.apache.iotdb.itbase.category.TableClusterIT; diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/query/view/old/query/IoTDBArithmeticTableViewIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/query/view/old/query/IoTDBArithmeticTableViewIT.java index e8a19eb2c59cd..296a63cc678d0 100644 --- a/integration-test/src/test/java/org/apache/iotdb/relational/it/query/view/old/query/IoTDBArithmeticTableViewIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/query/view/old/query/IoTDBArithmeticTableViewIT.java @@ -19,7 +19,7 @@ package org.apache.iotdb.relational.it.query.view.old.query; -import org.apache.iotdb.db.utils.DateTimeUtils; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.it.env.EnvFactory; import org.apache.iotdb.it.framework.IoTDBTestRunner; import org.apache.iotdb.itbase.category.TableClusterIT; diff --git a/iotdb-client/cli/pom.xml b/iotdb-client/cli/pom.xml index d8c48f7863fd2..e727adb57bfbe 100644 --- a/iotdb-client/cli/pom.xml +++ b/iotdb-client/cli/pom.xml @@ -64,6 +64,11 @@ iotdb-server 2.0.7-SNAPSHOT + + org.apache.iotdb + calc-commons + 2.0.7-SNAPSHOT + org.apache.iotdb isession diff --git a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/data/AbstractDataTool.java b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/data/AbstractDataTool.java index f5f11bc8d51ac..11695d786b871 100644 --- a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/data/AbstractDataTool.java +++ b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/data/AbstractDataTool.java @@ -19,15 +19,15 @@ package org.apache.iotdb.tool.data; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.cli.type.ExitType; import org.apache.iotdb.cli.utils.CliContext; import org.apache.iotdb.cli.utils.IoTPrinter; import org.apache.iotdb.cli.utils.JlineUtils; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.utils.PathUtils; -import org.apache.iotdb.db.utils.DateTimeUtils; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.iotdb.exception.ArgsErrorException; import org.apache.iotdb.isession.SessionDataSet; import org.apache.iotdb.rpc.IoTDBConnectionException; diff --git a/iotdb-core/calc-commons/pom.xml b/iotdb-core/calc-commons/pom.xml new file mode 100644 index 0000000000000..170604d15fcf0 --- /dev/null +++ b/iotdb-core/calc-commons/pom.xml @@ -0,0 +1,275 @@ + + + + 4.0.0 + + org.apache.iotdb + iotdb-core + 2.0.7-SNAPSHOT + + calc-commons + IoTDB: Core: Calc Commons + Common modules of the server and stream node + + ${calc.test.skip} + false + ${calc.test.skip} + + + + org.apache.iotdb + service-rpc + 2.0.7-SNAPSHOT + + + org.apache.tsfile + common + ${tsfile.version} + + + org.apache.tsfile + tsfile + ${tsfile.version} + + + org.apache.iotdb + node-commons + 2.0.7-SNAPSHOT + + + org.apache.iotdb + iotdb-thrift-commons + 2.0.7-SNAPSHOT + + + org.apache.iotdb + udf-api + 2.0.7-SNAPSHOT + + + org.apache.iotdb + metrics-interface + 2.0.7-SNAPSHOT + + + org.apache.iotdb + pipe-api + 2.0.7-SNAPSHOT + + + io.airlift + units + + + com.google.code.findbugs + jsr305 + + + org.slf4j + slf4j-api + + + com.google.code.gson + gson + + + com.google.guava + guava + + + at.yawk.lz4 + lz4-java + + + + + + + org.apache.felix + maven-bundle-plugin + + true + + <_include>-bnd.bnd + <_removeheaders>Bnd-LastModified,Built-By + dependencies + + + + + bundle-manifest + process-classes + + manifest + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + true + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + ${calc.ut.skip} + false + random + + + + org.apache.maven.plugins + maven-resources-plugin + + + + copy-fmpp-resources + + copy-resources + + initialize + + ${project.build.directory}/codegen + + + src/main/codegen + false + + + + + + + + + org.apache.drill.tools + drill-fmpp-maven-plugin + + + generate-fmpp + + generate + + generate-sources + + ${project.build.directory}/codegen/config.fmpp + ${project.build.directory}/generated-sources/freemarker + ${project.build.directory}/codegen/templates + + + + + + org.apache.maven.plugins + maven-failsafe-plugin + + ${calc.test.skip} + ${calc.it.skip} + false + random + + + + run-integration-tests + integration-test + + integration-test + verify + + + + + + + + + skipCalcTests + + + skipTests + true + + + + true + true + true + + + + skipUT_CalcTests + + + skipUTs + true + + + + true + + + + get-jar-with-dependencies + + + + org.apache.maven.plugins + maven-assembly-plugin + + + jar-with-dependencies + + + + + make-assembly + + + single + + + package + + + + + + + + diff --git a/iotdb-core/datanode/src/main/codegen/config.fmpp b/iotdb-core/calc-commons/src/main/codegen/config.fmpp similarity index 100% rename from iotdb-core/datanode/src/main/codegen/config.fmpp rename to iotdb-core/calc-commons/src/main/codegen/config.fmpp diff --git a/iotdb-core/datanode/src/main/codegen/dataModel/AllDataType.tdd b/iotdb-core/calc-commons/src/main/codegen/dataModel/AllDataType.tdd similarity index 100% rename from iotdb-core/datanode/src/main/codegen/dataModel/AllDataType.tdd rename to iotdb-core/calc-commons/src/main/codegen/dataModel/AllDataType.tdd diff --git a/iotdb-core/datanode/src/main/codegen/dataModel/CompareType.tdd b/iotdb-core/calc-commons/src/main/codegen/dataModel/CompareType.tdd similarity index 100% rename from iotdb-core/datanode/src/main/codegen/dataModel/CompareType.tdd rename to iotdb-core/calc-commons/src/main/codegen/dataModel/CompareType.tdd diff --git a/iotdb-core/datanode/src/main/codegen/dataModel/DecimalDataType.tdd b/iotdb-core/calc-commons/src/main/codegen/dataModel/DecimalDataType.tdd similarity index 100% rename from iotdb-core/datanode/src/main/codegen/dataModel/DecimalDataType.tdd rename to iotdb-core/calc-commons/src/main/codegen/dataModel/DecimalDataType.tdd diff --git a/iotdb-core/datanode/src/main/codegen/dataModel/MathematicalDataType.tdd b/iotdb-core/calc-commons/src/main/codegen/dataModel/MathematicalDataType.tdd similarity index 100% rename from iotdb-core/datanode/src/main/codegen/dataModel/MathematicalDataType.tdd rename to iotdb-core/calc-commons/src/main/codegen/dataModel/MathematicalDataType.tdd diff --git a/iotdb-core/datanode/src/main/codegen/dataModel/MathematicalOperator.tdd b/iotdb-core/calc-commons/src/main/codegen/dataModel/MathematicalOperator.tdd similarity index 100% rename from iotdb-core/datanode/src/main/codegen/dataModel/MathematicalOperator.tdd rename to iotdb-core/calc-commons/src/main/codegen/dataModel/MathematicalOperator.tdd diff --git a/iotdb-core/datanode/src/main/codegen/templates/ArithmeticBinaryColumnTransformer.ftl b/iotdb-core/calc-commons/src/main/codegen/templates/ArithmeticBinaryColumnTransformer.ftl similarity index 93% rename from iotdb-core/datanode/src/main/codegen/templates/ArithmeticBinaryColumnTransformer.ftl rename to iotdb-core/calc-commons/src/main/codegen/templates/ArithmeticBinaryColumnTransformer.ftl index 2e2c3f50f1ceb..48beb26fedb86 100644 --- a/iotdb-core/datanode/src/main/codegen/templates/ArithmeticBinaryColumnTransformer.ftl +++ b/iotdb-core/calc-commons/src/main/codegen/templates/ArithmeticBinaryColumnTransformer.ftl @@ -25,14 +25,14 @@ <#--Main Part--> <#if (first.instance == "DATE" || first.instance == "TIMESTAMP") && (second.instance == "INT" || second.instance == "LONG")><#if operator.name == "Addition" || operator.name == "Subtraction"> -<@pp.changeOutputFile name="/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/${className}.java" /> +<@pp.changeOutputFile name="/org/apache/iotdb/calc/transformation/dag/column/binary/${className}.java" /> <#--Date + int || Date + long || Timestamp + int || Timestamp + long--> <#--Date - int || Date - long || Timestamp - int || Timestamp - long--> -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.utils.DateTimeUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -171,12 +171,12 @@ public class ${className} extends BinaryColumnTransformer { <#elseif (second.instance == "DATE" || second.instance =="TIMESTAMP") && (first.instance == "INT" || first.instance == "LONG")> <#if operator.name == "Addition"> <#--int + Date || long + Date || int + Timestamp || long + Timestamp--> -<@pp.changeOutputFile name="/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/${className}.java" /> -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +<@pp.changeOutputFile name="/org/apache/iotdb/calc/transformation/dag/column/binary/${className}.java" /> +package org.apache.iotdb.calc.transformation.dag.column.binary; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.utils.DateTimeUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -276,7 +276,7 @@ public class ${className} extends BinaryColumnTransformer { } <#elseif first.instance != "DATE" && first.instance != "TIMESTAMP" && second.instance != "DATE" && second.instance != "TIMESTAMP"> -<@pp.changeOutputFile name="/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/${className}.java" /> +<@pp.changeOutputFile name="/org/apache/iotdb/calc/transformation/dag/column/binary/${className}.java" /> <#--int、long、float、double with + - * / %--> <#--assign resultType--> <#if first.dataType == "double" || second.dataType == "double"> @@ -289,11 +289,11 @@ public class ${className} extends BinaryColumnTransformer { <#assign resultType = "int" /> <#--Parting line--> -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/codegen/templates/ArithmeticColumnTransformerApi.ftl b/iotdb-core/calc-commons/src/main/codegen/templates/ArithmeticColumnTransformerApi.ftl similarity index 87% rename from iotdb-core/datanode/src/main/codegen/templates/ArithmeticColumnTransformerApi.ftl rename to iotdb-core/calc-commons/src/main/codegen/templates/ArithmeticColumnTransformerApi.ftl index c6e93b133fa2b..f4aac11f133b7 100644 --- a/iotdb-core/datanode/src/main/codegen/templates/ArithmeticColumnTransformerApi.ftl +++ b/iotdb-core/calc-commons/src/main/codegen/templates/ArithmeticColumnTransformerApi.ftl @@ -18,22 +18,22 @@ */ <@pp.dropOutputFile /> -<@pp.changeOutputFile name="/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticColumnTransformerApi.java" /> -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +<@pp.changeOutputFile name="/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticColumnTransformerApi.java" /> +package org.apache.iotdb.calc.transformation.dag.column.binary; import org.apache.tsfile.read.common.type.Type; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.AdditionResolver; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.DivisionResolver; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.ModulusResolver; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.MultiplicationResolver; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.SubtractionResolver; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.DoubleNegationColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.FloatNegationColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.IntNegationColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.LongNegationColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.TimestampNegationColumnTransformer; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.AdditionResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.DivisionResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.ModulusResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.MultiplicationResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.SubtractionResolver; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.DoubleNegationColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.FloatNegationColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.IntNegationColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.LongNegationColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.TimestampNegationColumnTransformer; import java.time.ZoneId; import java.util.Arrays; diff --git a/iotdb-core/datanode/src/main/codegen/templates/ArithmeticUnaryColumnTransformer.ftl b/iotdb-core/calc-commons/src/main/codegen/templates/ArithmeticUnaryColumnTransformer.ftl similarity index 91% rename from iotdb-core/datanode/src/main/codegen/templates/ArithmeticUnaryColumnTransformer.ftl rename to iotdb-core/calc-commons/src/main/codegen/templates/ArithmeticUnaryColumnTransformer.ftl index 0afb3f57085dc..1c71ecb76906e 100644 --- a/iotdb-core/datanode/src/main/codegen/templates/ArithmeticUnaryColumnTransformer.ftl +++ b/iotdb-core/calc-commons/src/main/codegen/templates/ArithmeticUnaryColumnTransformer.ftl @@ -22,11 +22,11 @@ <#assign newType = type.type?replace("Type","")> <#assign className = "${newType}NegationColumnTransformer"> <#if newType != "Date"> - <@pp.changeOutputFile name="/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/${className}.java" /> -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary; + <@pp.changeOutputFile name="/org/apache/iotdb/calc/transformation/dag/column/unary/${className}.java" /> +package org.apache.iotdb.calc.transformation.dag.column.unary; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/codegen/templates/ModeAccumulator.ftl b/iotdb-core/calc-commons/src/main/codegen/templates/ModeAccumulator.ftl similarity index 95% rename from iotdb-core/datanode/src/main/codegen/templates/ModeAccumulator.ftl rename to iotdb-core/calc-commons/src/main/codegen/templates/ModeAccumulator.ftl index cb920508ffeb7..c881219a97cf1 100644 --- a/iotdb-core/datanode/src/main/codegen/templates/ModeAccumulator.ftl +++ b/iotdb-core/calc-commons/src/main/codegen/templates/ModeAccumulator.ftl @@ -21,13 +21,13 @@ <#list allDataTypes.types as type> <#assign className = "${type.dataType?cap_first}ModeAccumulator"> - <@pp.changeOutputFile name="/org/apache/iotdb/db/queryengine/execution/aggregation/${className}.java" /> + <@pp.changeOutputFile name="/org/apache/iotdb/calc/execution/aggregation/${className}.java" /> -package org.apache.iotdb.db.queryengine.execution.aggregation; +package org.apache.iotdb.calc.execution.aggregation; import com.google.common.collect.ImmutableList; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.tsfile.external.commons.collections4.comparators.ComparatorChain; -import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.file.metadata.statistics.Statistics; import org.apache.tsfile.block.column.Column; @@ -56,7 +56,7 @@ public class ${className} implements Accumulator { private final Map<${type.javaBoxName}, Pair> countMap = new HashMap<>(); <#if type.dataType != "boolean"> - private final int MAP_SIZE_THRESHOLD = IoTDBDescriptor.getInstance().getConfig().getModeMapSizeThreshold(); + private final int MAP_SIZE_THRESHOLD = CommonDescriptor.getInstance().getConfig().getModeMapSizeThreshold(); @Override diff --git a/iotdb-core/datanode/src/main/codegen/templates/constantFill.ftl b/iotdb-core/calc-commons/src/main/codegen/templates/constantFill.ftl similarity index 90% rename from iotdb-core/datanode/src/main/codegen/templates/constantFill.ftl rename to iotdb-core/calc-commons/src/main/codegen/templates/constantFill.ftl index 9ff15a150620c..88d01849ba95f 100644 --- a/iotdb-core/datanode/src/main/codegen/templates/constantFill.ftl +++ b/iotdb-core/calc-commons/src/main/codegen/templates/constantFill.ftl @@ -20,10 +20,10 @@ <#list allDataTypes.types as type> <#assign className = "${type.dataType?cap_first}ConstantFill"> - <@pp.changeOutputFile name="/org/apache/iotdb/db/queryengine/execution/operator/process/fill/constant/${className}.java" /> -package org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant; + <@pp.changeOutputFile name="/org/apache/iotdb/calc/execution/operator/process/fill/constant/${className}.java" /> +package org.apache.iotdb.calc.execution.operator.process.fill.constant; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFill; +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; import org.apache.tsfile.read.common.block.column.${type.column}; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.RunLengthEncodedColumn; diff --git a/iotdb-core/datanode/src/main/codegen/templates/linearFill.ftl b/iotdb-core/calc-commons/src/main/codegen/templates/linearFill.ftl similarity index 94% rename from iotdb-core/datanode/src/main/codegen/templates/linearFill.ftl rename to iotdb-core/calc-commons/src/main/codegen/templates/linearFill.ftl index f63b40bc3796e..301708018b6ac 100644 --- a/iotdb-core/datanode/src/main/codegen/templates/linearFill.ftl +++ b/iotdb-core/calc-commons/src/main/codegen/templates/linearFill.ftl @@ -21,8 +21,8 @@ <#list decimalDataTypes.types as type> <#assign className = "${type.dataType?cap_first}LinearFill"> - <@pp.changeOutputFile name="/org/apache/iotdb/db/queryengine/execution/operator/process/fill/linear/${className}.java" /> -package org.apache.iotdb.db.queryengine.execution.operator.process.fill.linear; + <@pp.changeOutputFile name="/org/apache/iotdb/calc/execution/operator/process/fill/linear/${className}.java" /> +package org.apache.iotdb.calc.execution.operator.process.fill.linear; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.${type.column}; diff --git a/iotdb-core/datanode/src/main/codegen/templates/previousFill.ftl b/iotdb-core/calc-commons/src/main/codegen/templates/previousFill.ftl similarity index 92% rename from iotdb-core/datanode/src/main/codegen/templates/previousFill.ftl rename to iotdb-core/calc-commons/src/main/codegen/templates/previousFill.ftl index 8efa0bd0a7b26..e15f08935402d 100644 --- a/iotdb-core/datanode/src/main/codegen/templates/previousFill.ftl +++ b/iotdb-core/calc-commons/src/main/codegen/templates/previousFill.ftl @@ -21,10 +21,10 @@ <#list allDataTypes.types as type> <#assign className = "${type.dataType?cap_first}PreviousFill"> - <@pp.changeOutputFile name="/org/apache/iotdb/db/queryengine/execution/operator/process/fill/previous/${className}.java" /> -package org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous; + <@pp.changeOutputFile name="/org/apache/iotdb/calc/execution/operator/process/fill/previous/${className}.java" /> +package org.apache.iotdb.calc.execution.operator.process.fill.previous; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFill; +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.${type.column}; import org.apache.tsfile.read.common.block.column.${type.column}Builder; diff --git a/iotdb-core/datanode/src/main/codegen/templates/previousFillWithTimeDuration.ftl b/iotdb-core/calc-commons/src/main/codegen/templates/previousFillWithTimeDuration.ftl similarity index 92% rename from iotdb-core/datanode/src/main/codegen/templates/previousFillWithTimeDuration.ftl rename to iotdb-core/calc-commons/src/main/codegen/templates/previousFillWithTimeDuration.ftl index 4de0b724357a5..22b0ff91efaf5 100644 --- a/iotdb-core/datanode/src/main/codegen/templates/previousFillWithTimeDuration.ftl +++ b/iotdb-core/calc-commons/src/main/codegen/templates/previousFillWithTimeDuration.ftl @@ -21,11 +21,11 @@ <#list allDataTypes.types as type> <#assign className = "${type.dataType?cap_first}PreviousFillWithTimeDuration"> - <@pp.changeOutputFile name="/org/apache/iotdb/db/queryengine/execution/operator/process/fill/previous/${className}.java" /> -package org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous; + <@pp.changeOutputFile name="/org/apache/iotdb/calc/execution/operator/process/fill/previous/${className}.java" /> +package org.apache.iotdb.calc.execution.operator.process.fill.previous; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFillFilter; +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; +import org.apache.iotdb.calc.execution.operator.process.fill.IFillFilter; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.${type.column}; import org.apache.tsfile.read.common.block.column.${type.column}Builder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/exception/MemoryNotEnoughException.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/exception/MemoryNotEnoughException.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/exception/MemoryNotEnoughException.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/exception/MemoryNotEnoughException.java index 769399d51abd9..1a2924916dec9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/exception/MemoryNotEnoughException.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/exception/MemoryNotEnoughException.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.exception; +package org.apache.iotdb.calc.exception; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/query/QueryProcessException.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/exception/QueryProcessException.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/query/QueryProcessException.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/exception/QueryProcessException.java index 08b6a61d06a53..3d9753c4275d1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/query/QueryProcessException.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/exception/QueryProcessException.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.exception.query; +package org.apache.iotdb.calc.exception; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/Accumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/aggregation/Accumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/Accumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/aggregation/Accumulator.java index a2599bc811eca..38b0c5353936d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/Accumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/aggregation/Accumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.aggregation; +package org.apache.iotdb.calc.execution.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/VarianceAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/aggregation/VarianceAccumulator.java similarity index 99% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/VarianceAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/aggregation/VarianceAccumulator.java index 8d27f1497e06d..48972749c3a27 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/VarianceAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/aggregation/VarianceAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.aggregation; +package org.apache.iotdb.calc.execution.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/AbstractOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/AbstractOperator.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/AbstractOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/AbstractOperator.java index 41d1f163f81ce..cc09d7fe971f6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/AbstractOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/AbstractOperator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator; +package org.apache.iotdb.calc.execution.operator; import org.apache.tsfile.common.conf.TSFileDescriptor; import org.apache.tsfile.read.common.block.TsBlock; @@ -27,7 +27,7 @@ public abstract class AbstractOperator implements Operator { private static final Logger LOGGER = LoggerFactory.getLogger(AbstractOperator.class); - protected OperatorContext operatorContext; + protected CommonOperatorContext operatorContext; protected long maxReturnSize = TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes(); @@ -104,7 +104,7 @@ public TsBlock getResultFromRetainedTsBlock() { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } } diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/CommonOperatorContext.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/CommonOperatorContext.java new file mode 100644 index 0000000000000..2c99fa5d77777 --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/CommonOperatorContext.java @@ -0,0 +1,149 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.execution.operator; + +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.commons.conf.CommonDescriptor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.utils.TestOnly; + +import io.airlift.units.Duration; +import org.apache.tsfile.utils.Accountable; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; + +/** + * Contains common information about {@link Operator} execution. + * + *

Not thread-safe. + */ +public abstract class CommonOperatorContext implements Accountable { + + protected static Duration maxRunTime = + new Duration( + CommonDescriptor.getInstance().getConfig().getDriverTaskExecutionTimeSliceInMs(), + TimeUnit.MILLISECONDS); + + protected final int operatorId; + // It seems it's never used. + protected final PlanNodeId planNodeId; + protected String operatorType; + + protected long totalExecutionTimeInNanos = 0L; + protected long nextCalledCount = 0L; + protected long hasNextCalledCount = 0L; + + // SpecifiedInfo is used to record some custom information for the operator, + // which will be shown in the result of EXPLAIN ANALYZE to analyze the query. + protected final Map specifiedInfo = new ConcurrentHashMap<>(); + protected long output = 0; + protected long estimatedMemorySize; + + protected CommonOperatorContext(int operatorId, PlanNodeId planNodeId, String operatorType) { + this.operatorId = operatorId; + this.planNodeId = planNodeId; + this.operatorType = operatorType; + } + + public int getOperatorId() { + return operatorId; + } + + public String getOperatorType() { + return operatorType; + } + + public void setOperatorType(String operatorType) { + this.operatorType = operatorType; + } + + public static Duration getMaxRunTime() { + return maxRunTime; + } + + @TestOnly + public Duration getMaxRunTimeForTest() { + return maxRunTime; + } + + public static void setMaxRunTime(Duration maxRunTime) { + CommonOperatorContext.maxRunTime = maxRunTime; + } + + public PlanNodeId getPlanNodeId() { + return planNodeId; + } + + public abstract MemoryReservationManager getMemoryReservationContext(); + + public abstract int getFragmentId(); + + public abstract int getPipelineId(); + + public void recordExecutionTime(long executionTimeInNanos) { + this.totalExecutionTimeInNanos += executionTimeInNanos; + } + + public void recordNextCalled() { + this.nextCalledCount++; + } + + public void recordHasNextCalled() { + this.hasNextCalledCount++; + } + + public long getTotalExecutionTimeInNanos() { + return totalExecutionTimeInNanos; + } + + public long getNextCalledCount() { + return nextCalledCount; + } + + public long getHasNextCalledCount() { + return hasNextCalledCount; + } + + public void setEstimatedMemorySize(long estimatedMemorySize) { + this.estimatedMemorySize = estimatedMemorySize; + } + + public long getEstimatedMemorySize() { + return estimatedMemorySize; + } + + public void addOutputRows(long outputRows) { + this.output += outputRows; + } + + public long getOutputRows() { + return output; + } + + public void recordSpecifiedInfo(String key, String value) { + specifiedInfo.put(key, value); + } + + public Map getSpecifiedInfo() { + return specifiedInfo; + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/GroupedTopNBuilder.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/GroupedTopNBuilder.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/GroupedTopNBuilder.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/GroupedTopNBuilder.java index 2f8a99097c95c..7911865076661 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/GroupedTopNBuilder.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/GroupedTopNBuilder.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator; +package org.apache.iotdb.calc.execution.operator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/GroupedTopNRowNumberAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/GroupedTopNRowNumberAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/GroupedTopNRowNumberAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/GroupedTopNRowNumberAccumulator.java index 81a489dccc0b1..284e325ff5aed 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/GroupedTopNRowNumberAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/GroupedTopNRowNumberAccumulator.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator; +package org.apache.iotdb.calc.execution.operator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArrayFIFOQueue; -import org.apache.iotdb.db.utils.HeapTraversal; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArrayFIFOQueue; +import org.apache.iotdb.calc.utils.HeapTraversal; import org.apache.tsfile.read.common.block.TsBlock; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/GroupedTopNRowNumberBuilder.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/GroupedTopNRowNumberBuilder.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/GroupedTopNRowNumberBuilder.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/GroupedTopNRowNumberBuilder.java index 172adc82bc9fb..78c01ef14c071 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/GroupedTopNRowNumberBuilder.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/GroupedTopNRowNumberBuilder.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator; +package org.apache.iotdb.calc.execution.operator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ImmutableList; @@ -35,7 +35,7 @@ import java.util.Iterator; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.TIME_COLUMN_TEMPLATE; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.TIME_COLUMN_TEMPLATE; public class GroupedTopNRowNumberBuilder implements GroupedTopNBuilder { private static final long INSTANCE_SIZE = diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/IdRegistry.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/IdRegistry.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/IdRegistry.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/IdRegistry.java index 35661335ca9cf..bb5abd17dddc9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/IdRegistry.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/IdRegistry.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator; +package org.apache.iotdb.calc.execution.operator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.IntArrayFIFOQueue; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.IntArrayFIFOQueue; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/Operator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/Operator.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/Operator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/Operator.java index c0aeeb967b1b7..a2c937e0bb7c3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/Operator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/Operator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator; +package org.apache.iotdb.calc.execution.operator; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.read.common.block.TsBlock; @@ -29,7 +29,7 @@ public interface Operator extends AutoCloseable, Accountable { ListenableFuture NOT_BLOCKED = immediateVoidFuture(); - OperatorContext getOperatorContext(); + CommonOperatorContext getOperatorContext(); /** * Returns a future that will be completed when the operator becomes unblocked. If the operator is @@ -41,7 +41,7 @@ default ListenableFuture isBlocked() { } default TsBlock nextWithTimer() throws Exception { - OperatorContext context = getOperatorContext(); + CommonOperatorContext context = getOperatorContext(); long startTime = System.nanoTime(); TsBlock output = null; try { @@ -65,7 +65,7 @@ default TsBlock nextWithTimer() throws Exception { TsBlock next() throws Exception; default boolean hasNextWithTimer() throws Exception { - OperatorContext context = getOperatorContext(); + CommonOperatorContext context = getOperatorContext(); long startTime = System.nanoTime(); try { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/RowIdComparisonStrategy.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/RowIdComparisonStrategy.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/RowIdComparisonStrategy.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/RowIdComparisonStrategy.java index a3a49e7eef333..02b28466efa7b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/RowIdComparisonStrategy.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/RowIdComparisonStrategy.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator; +package org.apache.iotdb.calc.execution.operator; public interface RowIdComparisonStrategy { int compare(long leftRowId, long rightRowId); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/RowIdHashStrategy.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/RowIdHashStrategy.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/RowIdHashStrategy.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/RowIdHashStrategy.java index f51912c952d4c..984efa9a96cf1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/RowIdHashStrategy.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/RowIdHashStrategy.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator; +package org.apache.iotdb.calc.execution.operator; /** Hash strategy that evaluates over row IDs */ public interface RowIdHashStrategy { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/RowReference.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/RowReference.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/RowReference.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/RowReference.java index ef81b2ad992f0..b56c9f8983fa8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/RowReference.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/RowReference.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator; +package org.apache.iotdb.calc.execution.operator; /** * Reference to a row. diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/RowReferenceTsBlockManager.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/RowReferenceTsBlockManager.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/RowReferenceTsBlockManager.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/RowReferenceTsBlockManager.java index ce6868eb55c75..dd81ab2f55f7b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/RowReferenceTsBlockManager.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/RowReferenceTsBlockManager.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator; +package org.apache.iotdb.calc.execution.operator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArrayFIFOQueue; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArrayFIFOQueue; import org.apache.tsfile.read.common.block.TsBlock; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/SimpleTsBlockWithPositionComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/SimpleTsBlockWithPositionComparator.java similarity index 83% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/SimpleTsBlockWithPositionComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/SimpleTsBlockWithPositionComparator.java index ad0b1af9523d5..8cab1352032a2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/SimpleTsBlockWithPositionComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/SimpleTsBlockWithPositionComparator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator; +package org.apache.iotdb.calc.execution.operator; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.utils.datastructure.MergeSortKey; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.process.join.merge.MergeSortComparator; +import org.apache.iotdb.calc.utils.datastructure.MergeSortKey; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/TsBlockWithPositionComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/TsBlockWithPositionComparator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/TsBlockWithPositionComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/TsBlockWithPositionComparator.java index aa6c5bfb734a9..e8b50d7ab739c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/TsBlockWithPositionComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/TsBlockWithPositionComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator; +package org.apache.iotdb.calc.execution.operator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractConsumeAllOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AbstractConsumeAllOperator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractConsumeAllOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AbstractConsumeAllOperator.java index 636102a015af4..c774023ca90dd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractConsumeAllOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AbstractConsumeAllOperator.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.AbstractOperator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; +import org.apache.iotdb.calc.execution.operator.AbstractOperator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.read.common.block.TsBlock; @@ -50,7 +50,8 @@ public abstract class AbstractConsumeAllOperator extends AbstractOperator /** Indicate whether we found an empty child input in one loop */ protected boolean hasEmptyChildInput = false; - protected AbstractConsumeAllOperator(OperatorContext operatorContext, List children) { + protected AbstractConsumeAllOperator( + CommonOperatorContext operatorContext, List children) { this.operatorContext = operatorContext; this.children = children; this.inputOperatorsCount = children.size(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractFillOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AbstractFillOperator.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractFillOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AbstractFillOperator.java index 1cd09143e90a1..e354c6e9e628a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractFillOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AbstractFillOperator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFill; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.Column; @@ -33,16 +33,17 @@ import static java.util.Objects.requireNonNull; /** Used for previous and constant value fill. */ -abstract class AbstractFillOperator implements ProcessOperator { +public abstract class AbstractFillOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(AbstractFillOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final IFill[] fillArray; private final Operator child; private final int outputColumnCount; - AbstractFillOperator(OperatorContext operatorContext, IFill[] fillArray, Operator child) { + protected AbstractFillOperator( + CommonOperatorContext operatorContext, IFill[] fillArray, Operator child) { this.operatorContext = requireNonNull(operatorContext, "operatorContext is null"); checkArgument( fillArray != null && fillArray.length > 0, "fillArray should not be null or empty"); @@ -52,7 +53,7 @@ abstract class AbstractFillOperator implements ProcessOperator { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } @@ -82,7 +83,7 @@ public TsBlock next() throws Exception { block.getPositionCount(), block.getTimeColumn(), valueColumns); } - abstract Column getHelperColumn(TsBlock tsBlock); + protected abstract Column getHelperColumn(TsBlock tsBlock); @Override public boolean hasNext() throws Exception { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractLinearFillOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AbstractLinearFillOperator.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractLinearFillOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AbstractLinearFillOperator.java index e78fed485cf6a..2e523d1bf4c4e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractLinearFillOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AbstractLinearFillOperator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.ILinearFill; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.fill.ILinearFill; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.Column; @@ -36,11 +36,11 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; -abstract class AbstractLinearFillOperator implements ProcessOperator { +public abstract class AbstractLinearFillOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(AbstractLinearFillOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; protected final ILinearFill[] fillArray; private final Operator child; protected final int outputColumnCount; @@ -63,8 +63,8 @@ abstract class AbstractLinearFillOperator implements ProcessOperator { // indicate whether there is more TsBlock for child operator protected boolean noMoreTsBlock; - AbstractLinearFillOperator( - OperatorContext operatorContext, ILinearFill[] fillArray, Operator child) { + protected AbstractLinearFillOperator( + CommonOperatorContext operatorContext, ILinearFill[] fillArray, Operator child) { this.operatorContext = requireNonNull(operatorContext, "operatorContext is null"); checkArgument( fillArray != null && fillArray.length > 0, "fillArray should not be null or empty"); @@ -81,7 +81,7 @@ abstract class AbstractLinearFillOperator implements ProcessOperator { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } @@ -155,10 +155,10 @@ boolean noMoreTsBlockForCurrentGroup() { return noMoreTsBlock; } - abstract Column getHelperColumn(TsBlock tsBlock); + protected abstract Column getHelperColumn(TsBlock tsBlock); // -1 means all values of helper column in @param{tsBlock} are null - abstract Integer getLastRowIndexForNonNullHelperColumn(TsBlock tsBlock); + protected abstract Integer getLastRowIndexForNonNullHelperColumn(TsBlock tsBlock); TsBlock append(int length, Column timeColumn, Column[] valueColumns) { return new TsBlock(length, timeColumn, valueColumns); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractSortOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AbstractSortOperator.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractSortOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AbstractSortOperator.java index 73aea0e32e688..82d0b94b33476 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractSortOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AbstractSortOperator.java @@ -17,19 +17,19 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; - +package org.apache.iotdb.calc.execution.operator.process; + +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.utils.datastructure.MergeSortHeap; +import org.apache.iotdb.calc.utils.datastructure.MergeSortKey; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.calc.utils.sort.DiskSpiller; +import org.apache.iotdb.calc.utils.sort.MemoryReader; +import org.apache.iotdb.calc.utils.sort.SortBufferManager; +import org.apache.iotdb.calc.utils.sort.SortReader; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IoTDBException; -import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.MergeSortHeap; -import org.apache.iotdb.db.utils.datastructure.MergeSortKey; -import org.apache.iotdb.db.utils.datastructure.SortKey; -import org.apache.iotdb.db.utils.sort.DiskSpiller; -import org.apache.iotdb.db.utils.sort.MemoryReader; -import org.apache.iotdb.db.utils.sort.SortBufferManager; -import org.apache.iotdb.db.utils.sort.SortReader; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.ColumnBuilder; @@ -51,7 +51,7 @@ public abstract class AbstractSortOperator implements ProcessOperator { private static final Logger LOGGER = LoggerFactory.getLogger(AbstractSortOperator.class); - protected final OperatorContext operatorContext; + protected final CommonOperatorContext operatorContext; protected final Operator inputOperator; protected final TsBlockBuilder tsBlockBuilder; @@ -80,7 +80,7 @@ public abstract class AbstractSortOperator implements ProcessOperator { private long sortCost = 0; AbstractSortOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator inputOperator, List dataTypes, DiskSpiller diskSpiller, @@ -95,7 +95,7 @@ public abstract class AbstractSortOperator implements ProcessOperator { this.sortBufferManager = new SortBufferManager( TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes(), - IoTDBDescriptor.getInstance().getConfig().getSortBufferSize()); + CommonDescriptor.getInstance().getConfig().getSortBufferSize()); } protected void buildResult() throws IoTDBException { @@ -119,7 +119,7 @@ protected void buildResult() throws IoTDBException { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AggregationMergeSortOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AggregationMergeSortOperator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AggregationMergeSortOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AggregationMergeSortOperator.java index f67975d84fbd6..6f106d680df4e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AggregationMergeSortOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AggregationMergeSortOperator.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.aggregation.Accumulator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.MergeSortHeap; -import org.apache.iotdb.db.utils.datastructure.MergeSortKey; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.utils.datastructure.MergeSortHeap; +import org.apache.iotdb.calc.utils.datastructure.MergeSortKey; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.Column; @@ -69,7 +69,7 @@ public class AggregationMergeSortOperator extends AbstractConsumeAllOperator { private long lastTime; public AggregationMergeSortOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, List children, List dataTypes, List accumulators, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AssignUniqueIdOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AssignUniqueIdOperator.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AssignUniqueIdOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AssignUniqueIdOperator.java index 5501764482d38..f7faaadc0a519 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AssignUniqueIdOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/AssignUniqueIdOperator.java @@ -17,12 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.schedule.task.DriverTaskId; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.Column; @@ -43,7 +42,7 @@ public class AssignUniqueIdOperator implements ProcessOperator { private static final long ROW_IDS_PER_REQUEST = 1L << 20L; private static final long MAX_ROW_ID = 1L << 40L; - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final Operator child; private final AtomicLong rowIdPool = new AtomicLong(); @@ -52,13 +51,13 @@ public class AssignUniqueIdOperator implements ProcessOperator { private long rowIdCounter; private long maxRowIdCounterValue; - public AssignUniqueIdOperator(OperatorContext operatorContext, Operator child) { + public AssignUniqueIdOperator(CommonOperatorContext operatorContext, Operator child) { this.operatorContext = operatorContext; this.child = child; - DriverTaskId id = operatorContext.getDriverContext().getDriverTaskID(); this.uniqueValueMask = - (((long) id.getFragmentId().getId()) << 54) | (((long) id.getPipelineId()) << 40); + (((long) operatorContext.getFragmentId()) << 54) + | (((long) operatorContext.getPipelineId()) << 40); requestValues(); } @@ -117,7 +116,7 @@ public long ramBytesUsed() { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/CollectOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/CollectOperator.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/CollectOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/CollectOperator.java index 668cf193de97f..921d273d04e8a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/CollectOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/CollectOperator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.read.common.block.TsBlock; @@ -34,13 +34,13 @@ public class CollectOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(CollectOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; protected final List children; private boolean inited = false; protected int currentIndex; - public CollectOperator(OperatorContext operatorContext, List children) { + public CollectOperator(CommonOperatorContext operatorContext, List children) { this.operatorContext = operatorContext; this.children = children; this.currentIndex = 0; @@ -87,7 +87,7 @@ public boolean isFinished() throws Exception { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/EnforceSingleRowOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/EnforceSingleRowOperator.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/EnforceSingleRowOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/EnforceSingleRowOperator.java index 9438d96dc3057..6a300c2cdfe64 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/EnforceSingleRowOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/EnforceSingleRowOperator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.common.conf.TSFileDescriptor; @@ -38,12 +38,12 @@ public class EnforceSingleRowOperator implements ProcessOperator { private static final String NO_RESULT_ERROR_MESSAGE = "Scalar sub-query does not have output."; - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final Operator child; private boolean finished = false; - public EnforceSingleRowOperator(OperatorContext operatorContext, Operator child) { + public EnforceSingleRowOperator(CommonOperatorContext operatorContext, Operator child) { this.operatorContext = operatorContext; this.child = child; } @@ -117,7 +117,7 @@ public long ramBytesUsed() { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/FilterAndProjectOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/FilterAndProjectOperator.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/FilterAndProjectOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/FilterAndProjectOperator.java index 83e493f622054..16e0cd7b33069 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/FilterAndProjectOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/FilterAndProjectOperator.java @@ -17,21 +17,21 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; - -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.transformation.dag.column.AbstractCaseWhenThenColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.FailFunctionColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.IdentityColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.LeafColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.MappableUDFColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.MultiColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ternary.TernaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +package org.apache.iotdb.calc.execution.operator.process; + +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.transformation.dag.column.AbstractCaseWhenThenColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.FailFunctionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.IdentityColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.MappableUDFColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.MultiColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ternary.TernaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.Column; @@ -70,7 +70,7 @@ public class FilterAndProjectOperator implements ProcessOperator { private final boolean hasNonMappableUDF; - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; // false when we only need to do projection private final boolean hasFilter; @@ -79,7 +79,7 @@ public class FilterAndProjectOperator implements ProcessOperator { @SuppressWarnings("squid:S107") public FilterAndProjectOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator inputOperator, List filterOutputDataTypes, List filterLeafColumnTransformerList, @@ -117,7 +117,7 @@ public FilterAndProjectOperator( } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/LimitOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/LimitOperator.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/LimitOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/LimitOperator.java index 85ef22ababd34..9f21dcf86a66b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/LimitOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/LimitOperator.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.read.common.block.TsBlock; @@ -34,11 +34,11 @@ public class LimitOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(LimitOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private long remainingLimit; private final Operator child; - public LimitOperator(OperatorContext operatorContext, long limit, Operator child) { + public LimitOperator(CommonOperatorContext operatorContext, long limit, Operator child) { this.operatorContext = requireNonNull(operatorContext, "operatorContext is null"); checkArgument(limit >= 0, "limit must be at least zero"); this.remainingLimit = limit; @@ -52,7 +52,7 @@ public LimitOperator(LimitOperator limitOperator, Operator child) { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/MappingCollectOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/MappingCollectOperator.java similarity index 83% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/MappingCollectOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/MappingCollectOperator.java index 886dba305b7b3..8bc1c18e9e66a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/MappingCollectOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/MappingCollectOperator.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.TsBlock; @@ -40,7 +40,9 @@ public class MappingCollectOperator extends CollectOperator { private final int outputColumnsCount; public MappingCollectOperator( - OperatorContext operatorContext, List children, List> mappings) { + CommonOperatorContext operatorContext, + List children, + List> mappings) { super(operatorContext, children); this.mappings = mappings; outputColumnsCount = mappings.get(0).size(); @@ -61,7 +63,7 @@ public TsBlock next() throws Exception { return TsBlock.wrapBlocksWithoutCopy( tsBlock.getPositionCount(), new RunLengthEncodedColumn( - TableScanOperator.TIME_COLUMN_TEMPLATE, tsBlock.getPositionCount()), + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlock.getPositionCount()), columns); } } else { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/MergeSortOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/MergeSortOperator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/MergeSortOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/MergeSortOperator.java index 813217872aead..613d3f549d722 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/MergeSortOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/MergeSortOperator.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.MergeSortHeap; -import org.apache.iotdb.db.utils.datastructure.MergeSortKey; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.utils.datastructure.MergeSortHeap; +import org.apache.iotdb.calc.utils.datastructure.MergeSortKey; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.ColumnBuilder; @@ -55,8 +55,8 @@ public abstract class MergeSortOperator extends AbstractConsumeAllOperator { private boolean finished; - MergeSortOperator( - OperatorContext operatorContext, + protected MergeSortOperator( + CommonOperatorContext operatorContext, List inputOperators, List dataTypes, Comparator comparator) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/OffsetOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/OffsetOperator.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/OffsetOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/OffsetOperator.java index 24fc72d094177..376f3d9d2215a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/OffsetOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/OffsetOperator.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.read.common.block.TsBlock; @@ -34,11 +34,11 @@ public class OffsetOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(OffsetOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private long remainingOffset; private final Operator child; - public OffsetOperator(OperatorContext operatorContext, long offset, Operator child) { + public OffsetOperator(CommonOperatorContext operatorContext, long offset, Operator child) { this.operatorContext = requireNonNull(operatorContext, "operatorContext is null"); checkArgument(offset >= 0, "offset must be at least zero"); this.remainingOffset = offset; @@ -52,7 +52,7 @@ public OffsetOperator(OffsetOperator offsetOperator, Operator child) { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/PatternRecognitionOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/PatternRecognitionOperator.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/PatternRecognitionOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/PatternRecognitionOperator.java index 0275b44e1459a..d0ee968c0e569 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/PatternRecognitionOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/PatternRecognitionOperator.java @@ -17,21 +17,21 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; - -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.LogicalIndexNavigation; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PatternAggregator; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PatternPartitionExecutor; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PatternVariableRecognizer; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression.PatternExpressionComputation; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.Matcher; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.RowComparator; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowsPerMatch; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SkipToPosition; +package org.apache.iotdb.calc.execution.operator.process; + +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.LogicalIndexNavigation; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternAggregator; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternPartitionExecutor; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternVariableRecognizer; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.expression.PatternExpressionComputation; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.Matcher; +import org.apache.iotdb.calc.execution.operator.process.window.utils.RowComparator; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowsPerMatch; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SkipToPosition; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; @@ -50,15 +50,15 @@ import java.util.Optional; import java.util.concurrent.TimeUnit; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.TIME_COLUMN_TEMPLATE; -import static org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter.MAX_RESERVED_MEMORY; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.MAX_RESERVED_MEMORY; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.TIME_COLUMN_TEMPLATE; public class PatternRecognitionOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(PatternRecognitionOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final Operator child; private final List inputDataTypes; private final List outputChannels; @@ -93,7 +93,7 @@ public class PatternRecognitionOperator implements ProcessOperator { private final long maxRuntime; public PatternRecognitionOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator child, List inputDataTypes, List outputDataTypes, @@ -145,15 +145,11 @@ public PatternRecognitionOperator( this.maxRuntime = this.operatorContext.getMaxRunTime().roundTo(TimeUnit.NANOSECONDS); this.totalMemorySize = 0; this.maxUsedMemory = 0; - this.memoryReservationManager = - operatorContext - .getDriverContext() - .getFragmentInstanceContext() - .getMemoryReservationContext(); + this.memoryReservationManager = operatorContext.getMemoryReservationContext(); } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/PreviousFillWithGroupOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/PreviousFillWithGroupOperator.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/PreviousFillWithGroupOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/PreviousFillWithGroupOperator.java index ca5af889937e0..06f1d63547001 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/PreviousFillWithGroupOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/PreviousFillWithGroupOperator.java @@ -17,13 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFill; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.Column; @@ -44,7 +44,7 @@ public class PreviousFillWithGroupOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(PreviousFillWithGroupOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final IFill[] fillArray; private final Operator child; private final int outputColumnCount; @@ -59,7 +59,7 @@ public class PreviousFillWithGroupOperator implements ProcessOperator { private SortKey lastRow = null; public PreviousFillWithGroupOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, IFill[] fillArray, Operator child, int helperColumnIndex, @@ -166,7 +166,7 @@ public ListenableFuture isBlocked() { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ProcessOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/ProcessOperator.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ProcessOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/ProcessOperator.java index 55c61f33f8af2..22462a5544644 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ProcessOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/ProcessOperator.java @@ -17,8 +17,8 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; public interface ProcessOperator extends Operator {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SortOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/SortOperator.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SortOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/SortOperator.java index 31029a30da640..0b546eee70216 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SortOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/SortOperator.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.calc.utils.sort.DiskSpiller; import org.apache.iotdb.commons.exception.IoTDBException; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.SortKey; -import org.apache.iotdb.db.utils.sort.DiskSpiller; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; @@ -39,8 +39,8 @@ public abstract class SortOperator extends AbstractSortOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(SortOperator.class); - SortOperator( - OperatorContext operatorContext, + protected SortOperator( + CommonOperatorContext operatorContext, Operator inputOperator, List dataTypes, DiskSpiller diskSpiller, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableFillOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableFillOperator.java similarity index 78% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableFillOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableFillOperator.java index dd55e6ca4905d..5b41bb657de18 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableFillOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableFillOperator.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFill; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.TsBlock; @@ -34,13 +34,16 @@ public class TableFillOperator extends AbstractFillOperator { private final int helperColumnIndex; public TableFillOperator( - OperatorContext operatorContext, IFill[] fillArray, Operator child, int helperColumnIndex) { + CommonOperatorContext operatorContext, + IFill[] fillArray, + Operator child, + int helperColumnIndex) { super(operatorContext, fillArray, child); this.helperColumnIndex = helperColumnIndex; } @Override - Column getHelperColumn(TsBlock tsBlock) { + protected Column getHelperColumn(TsBlock tsBlock) { // if helperColumnIndex is -1, HelperColumn won't be used, so just return TimeColumn in TsBlock // instead return helperColumnIndex == -1 ? tsBlock.getTimeColumn() : tsBlock.getColumn(helperColumnIndex); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableLinearFillOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableLinearFillOperator.java similarity index 81% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableLinearFillOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableLinearFillOperator.java index cb51a26057feb..b0f75ef4b29ee 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableLinearFillOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableLinearFillOperator.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.ILinearFill; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.fill.ILinearFill; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.TsBlock; @@ -33,7 +33,7 @@ public class TableLinearFillOperator extends AbstractLinearFillOperator { private final int helperColumnIndex; public TableLinearFillOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, ILinearFill[] fillArray, Operator child, int helperColumnIndex) { @@ -42,14 +42,14 @@ public TableLinearFillOperator( } @Override - Column getHelperColumn(TsBlock tsBlock) { + protected Column getHelperColumn(TsBlock tsBlock) { // if helperColumnIndex is -1, HelperColumn won't be used, so just return TimeColumn in TsBlock // instead return tsBlock.getColumn(helperColumnIndex); } @Override - Integer getLastRowIndexForNonNullHelperColumn(TsBlock tsBlock) { + protected Integer getLastRowIndexForNonNullHelperColumn(TsBlock tsBlock) { Column helperColumn = getHelperColumn(tsBlock); int size = tsBlock.getPositionCount(); if (!helperColumn.mayHaveNull()) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableLinearFillWithGroupOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableLinearFillWithGroupOperator.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableLinearFillWithGroupOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableLinearFillWithGroupOperator.java index b9fb7c095b1b4..883ee156edccd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableLinearFillWithGroupOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableLinearFillWithGroupOperator.java @@ -17,12 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.ILinearFill; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.fill.ILinearFill; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -35,8 +36,6 @@ import java.util.Comparator; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class TableLinearFillWithGroupOperator extends TableLinearFillOperator { private final List groupSplitter; @@ -50,7 +49,7 @@ public class TableLinearFillWithGroupOperator extends TableLinearFillOperator { private SortKey lastRow = null; public TableLinearFillWithGroupOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, ILinearFill[] fillArray, Operator child, int helperColumnIndex, @@ -86,7 +85,8 @@ TsBlock buildFinalResult(TsBlock tempResult) { TsBlock result = null; if (!resultBuilder.isEmpty()) { Column timeColumn = - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount()); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount()); result = resultBuilder.build(timeColumn); resultBuilder.reset(); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableMergeSortOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableMergeSortOperator.java similarity index 76% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableMergeSortOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableMergeSortOperator.java index 0a7616db38ead..136747151a718 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableMergeSortOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableMergeSortOperator.java @@ -17,11 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; @@ -32,11 +33,9 @@ import java.util.Comparator; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class TableMergeSortOperator extends MergeSortOperator { public TableMergeSortOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, List inputOperators, List dataTypes, Comparator comparator) { @@ -51,6 +50,7 @@ protected void appendTime(TimeColumnBuilder timeBuilder, long time) { @Override protected TsBlock buildResult(TsBlockBuilder resultBuilder) { return resultBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableSortOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableSortOperator.java similarity index 75% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableSortOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableSortOperator.java index 6d01819e756d2..b09b3cb5b56ec 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableSortOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableSortOperator.java @@ -17,12 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.SortKey; -import org.apache.iotdb.db.utils.sort.TableDiskSpiller; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.calc.utils.sort.TableDiskSpiller; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; @@ -33,11 +34,9 @@ import java.util.Comparator; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class TableSortOperator extends SortOperator { public TableSortOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator inputOperator, List dataTypes, String folderPath, @@ -58,6 +57,7 @@ protected void appendTime(TimeColumnBuilder timeBuilder, long time) { @Override protected TsBlock buildFinalResult(TsBlockBuilder resultBuilder) { return resultBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableStreamSortOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableStreamSortOperator.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableStreamSortOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableStreamSortOperator.java index 90565a8587592..a1cb2c7321692 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableStreamSortOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableStreamSortOperator.java @@ -17,14 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.calc.utils.sort.TableDiskSpiller; import org.apache.iotdb.commons.exception.IoTDBException; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.SortKey; -import org.apache.iotdb.db.utils.sort.TableDiskSpiller; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; @@ -35,8 +36,6 @@ import java.util.Comparator; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class TableStreamSortOperator extends AbstractSortOperator { private static final long INSTANCE_SIZE = @@ -61,7 +60,7 @@ public class TableStreamSortOperator extends AbstractSortOperator { private SortKey lastRow = null; public TableStreamSortOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator inputOperator, List dataTypes, String folderPath, @@ -94,7 +93,8 @@ public TsBlock next() throws Exception { if (tsBlockBuilder.isFull() || consumedUp()) { int rowCount = tsBlockBuilder.getPositionCount(); TsBlock res = - tsBlockBuilder.build(new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, rowCount)); + tsBlockBuilder.build( + new RunLengthEncodedColumn(CommonOperatorUtils.TIME_COLUMN_TEMPLATE, rowCount)); remainingCount -= rowCount; tsBlockBuilder.reset(); return res; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableTopKOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableTopKOperator.java similarity index 76% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableTopKOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableTopKOperator.java index ca4a5ad5bebef..2a7d11657b7de 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableTopKOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TableTopKOperator.java @@ -17,11 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; @@ -31,11 +32,9 @@ import java.util.Comparator; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class TableTopKOperator extends TopKOperator { public TableTopKOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, List childrenOperators, List dataTypes, Comparator comparator, @@ -46,7 +45,9 @@ public TableTopKOperator( @Override protected TsBlock constrcutResultTsBlock(int positionCount, Column[] columns) { - return new TsBlock(new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, positionCount), columns); + return new TsBlock( + new RunLengthEncodedColumn(CommonOperatorUtils.TIME_COLUMN_TEMPLATE, positionCount), + columns); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TopKOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TopKOperator.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TopKOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TopKOperator.java index 0df7efdd19f0b..bdb424e15b812 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TopKOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/TopKOperator.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.MergeSortHeap; -import org.apache.iotdb.db.utils.datastructure.MergeSortKey; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.utils.datastructure.MergeSortHeap; +import org.apache.iotdb.calc.utils.datastructure.MergeSortKey; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.Column; @@ -54,8 +54,8 @@ public abstract class TopKOperator implements ProcessOperator { private static final long INSTANCE_SIZE = - RamUsageEstimator.shallowSizeOfInstance(TreeTopKOperator.class); - private final OperatorContext operatorContext; + RamUsageEstimator.shallowSizeOfInstance(TopKOperator.class); + private final CommonOperatorContext operatorContext; private final List childrenOperators; private int childIndex; @@ -86,8 +86,8 @@ public abstract class TopKOperator implements ProcessOperator { public static final int OPERATOR_BATCH_UPPER_BOUND = 100000; - TopKOperator( - OperatorContext operatorContext, + protected TopKOperator( + CommonOperatorContext operatorContext, List childrenOperators, List dataTypes, Comparator comparator, @@ -112,7 +112,7 @@ public abstract class TopKOperator implements ProcessOperator { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ValuesOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/ValuesOperator.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ValuesOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/ValuesOperator.java index eeac35d918908..35ca8a4252f66 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ValuesOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/ValuesOperator.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process; +package org.apache.iotdb.calc.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; @@ -37,12 +37,12 @@ public class ValuesOperator implements Operator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(ValuesOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final Iterator tsBlocks; private final long maxTsBlockSize; private long currentRetainedSize; - public ValuesOperator(OperatorContext operatorContext, List tsBlocks) { + public ValuesOperator(CommonOperatorContext operatorContext, List tsBlocks) { this.operatorContext = requireNonNull(operatorContext, "operatorContext is null"); requireNonNull(tsBlocks, "tsBlocks is null"); @@ -61,7 +61,7 @@ public ValuesOperator(OperatorContext operatorContext, List tsBlocks) { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/IFill.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/IFill.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/IFill.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/IFill.java index 009c106541a77..1059a80799e54 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/IFill.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/IFill.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.fill; +package org.apache.iotdb.calc.execution.operator.process.fill; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/IFillFilter.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/IFillFilter.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/IFillFilter.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/IFillFilter.java index 736be974cabe8..77e7436bb5849 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/IFillFilter.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/IFillFilter.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.fill; +package org.apache.iotdb.calc.execution.operator.process.fill; public interface IFillFilter { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/ILinearFill.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/ILinearFill.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/ILinearFill.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/ILinearFill.java index 0dccba1054697..0a39604d8a045 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/ILinearFill.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/ILinearFill.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.fill; +package org.apache.iotdb.calc.execution.operator.process.fill; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/AbstractMonthIntervalFillFilter.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/AbstractMonthIntervalFillFilter.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/AbstractMonthIntervalFillFilter.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/AbstractMonthIntervalFillFilter.java index 24a629189ab53..c3805e121b502 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/AbstractMonthIntervalFillFilter.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/AbstractMonthIntervalFillFilter.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.fill.filter; +package org.apache.iotdb.calc.execution.operator.process.fill.filter; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFillFilter; +import org.apache.iotdb.calc.execution.operator.process.fill.IFillFilter; import java.time.ZoneId; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/FixedIntervalFillFilter.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/FixedIntervalFillFilter.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/FixedIntervalFillFilter.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/FixedIntervalFillFilter.java index 840148438a7d2..8fbd4ce379d78 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/FixedIntervalFillFilter.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/FixedIntervalFillFilter.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.fill.filter; +package org.apache.iotdb.calc.execution.operator.process.fill.filter; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFillFilter; +import org.apache.iotdb.calc.execution.operator.process.fill.IFillFilter; public class FixedIntervalFillFilter implements IFillFilter { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalMSFillFilter.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/MonthIntervalMSFillFilter.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalMSFillFilter.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/MonthIntervalMSFillFilter.java index c8e56a8cca9f7..4ff2a56f4a3fd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalMSFillFilter.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/MonthIntervalMSFillFilter.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.fill.filter; +package org.apache.iotdb.calc.execution.operator.process.fill.filter; import java.time.Instant; import java.time.LocalDateTime; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalNSFillFilter.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/MonthIntervalNSFillFilter.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalNSFillFilter.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/MonthIntervalNSFillFilter.java index b2c389a1d8753..a19f70365f1c9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalNSFillFilter.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/MonthIntervalNSFillFilter.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.fill.filter; +package org.apache.iotdb.calc.execution.operator.process.fill.filter; import java.time.Instant; import java.time.LocalDateTime; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalUSFillFilter.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/MonthIntervalUSFillFilter.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalUSFillFilter.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/MonthIntervalUSFillFilter.java index c99ede2702e35..91674776010fb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalUSFillFilter.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/filter/MonthIntervalUSFillFilter.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.fill.filter; +package org.apache.iotdb.calc.execution.operator.process.fill.filter; import java.time.Instant; import java.time.LocalDateTime; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/identity/IdentityFill.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/identity/IdentityFill.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/identity/IdentityFill.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/identity/IdentityFill.java index 74801480c6448..f504eec6d9c05 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/identity/IdentityFill.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/identity/IdentityFill.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.fill.identity; +package org.apache.iotdb.calc.execution.operator.process.fill.identity; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFill; +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/identity/IdentityLinearFill.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/identity/IdentityLinearFill.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/identity/IdentityLinearFill.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/identity/IdentityLinearFill.java index 9ccd42ec51e5c..d6650f273ea03 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/identity/IdentityLinearFill.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/identity/IdentityLinearFill.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.fill.identity; +package org.apache.iotdb.calc.execution.operator.process.fill.identity; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.ILinearFill; +import org.apache.iotdb.calc.execution.operator.process.fill.ILinearFill; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/linear/LinearFill.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/linear/LinearFill.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/linear/LinearFill.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/linear/LinearFill.java index 5cd278cc0e7d9..2231b4f029b0c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/linear/LinearFill.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/fill/linear/LinearFill.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.fill.linear; +package org.apache.iotdb.calc.execution.operator.process.fill.linear; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.ILinearFill; +import org.apache.iotdb.calc.execution.operator.process.fill.ILinearFill; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.RunLengthEncodedColumn; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/PartitionRecognizer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/PartitionRecognizer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/PartitionRecognizer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/PartitionRecognizer.java index 21c3be51777ce..deb225f219853 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/PartitionRecognizer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/PartitionRecognizer.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.function; +package org.apache.iotdb.calc.execution.operator.process.function; +import org.apache.iotdb.calc.execution.operator.process.function.partition.PartitionState; +import org.apache.iotdb.calc.execution.operator.process.function.partition.Slice; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.partition.PartitionState; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.partition.Slice; -import org.apache.iotdb.db.utils.datastructure.SortKey; import org.apache.iotdb.udf.api.type.Type; import org.apache.tsfile.enums.TSDataType; @@ -32,8 +32,8 @@ import java.util.List; import java.util.stream.Collectors; -import static org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator.getComparatorForTable; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_FIRST; +import static org.apache.iotdb.calc.execution.operator.process.join.merge.MergeSortComparator.getComparatorForTable; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_FIRST; public class PartitionRecognizer { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/TableFunctionLeafOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/TableFunctionLeafOperator.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/TableFunctionLeafOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/TableFunctionLeafOperator.java index 4a8e4d88b8834..0a7f92b249ff8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/TableFunctionLeafOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/TableFunctionLeafOperator.java @@ -17,11 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.function; +package org.apache.iotdb.calc.execution.operator.process.function; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import org.apache.iotdb.rpc.TSStatusCode; import org.apache.iotdb.udf.api.relational.table.TableFunctionProcessorProvider; import org.apache.iotdb.udf.api.relational.table.processor.TableFunctionLeafProcessor; @@ -38,20 +39,18 @@ import java.util.Arrays; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - // only one input source is supported now public class TableFunctionLeafOperator implements ProcessOperator { private static final Logger LOGGER = LoggerFactory.getLogger(TableFunctionLeafOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final TsBlockBuilder blockBuilder; private final TableFunctionLeafProcessor processor; private volatile boolean init = false; public TableFunctionLeafOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, TableFunctionProcessorProvider processorProvider, List outputDataTypes) { this.operatorContext = operatorContext; @@ -69,7 +68,7 @@ public ListenableFuture isBlocked() { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return this.operatorContext; } @@ -94,7 +93,8 @@ private List getOutputColumnBuilders() { private TsBlock buildTsBlock(List columnBuilders) { int positionCount = columnBuilders.get(0).getPositionCount(); blockBuilder.declarePositions(positionCount); - return blockBuilder.build(new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, positionCount)); + return blockBuilder.build( + new RunLengthEncodedColumn(CommonOperatorUtils.TIME_COLUMN_TEMPLATE, positionCount)); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/TableFunctionOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/TableFunctionOperator.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/TableFunctionOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/TableFunctionOperator.java index c00e05ec17fed..e4f11d7cd49fa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/TableFunctionOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/TableFunctionOperator.java @@ -17,16 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.function; +package org.apache.iotdb.calc.execution.operator.process.function; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.AggregationMergeSortOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.partition.PartitionCache; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.partition.PartitionState; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.partition.Slice; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.AggregationMergeSortOperator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.calc.execution.operator.process.function.partition.PartitionCache; +import org.apache.iotdb.calc.execution.operator.process.function.partition.PartitionState; +import org.apache.iotdb.calc.execution.operator.process.function.partition.Slice; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.udf.api.relational.access.Record; import org.apache.iotdb.udf.api.relational.table.TableFunctionProcessorProvider; import org.apache.iotdb.udf.api.relational.table.processor.TableFunctionDataProcessor; @@ -52,8 +53,6 @@ import java.util.Optional; import java.util.Queue; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - // only one input source is supported now public class TableFunctionOperator implements ProcessOperator { @@ -63,7 +62,7 @@ public class TableFunctionOperator implements ProcessOperator { private static final int DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES = TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes(); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final Operator inputOperator; private final TableFunctionProcessorProvider processorProvider; private final PartitionRecognizer partitionRecognizer; @@ -82,7 +81,7 @@ public class TableFunctionOperator implements ProcessOperator { private final Queue resultTsBlocks; public TableFunctionOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, TableFunctionProcessorProvider processorProvider, Operator inputOperator, List inputDataTypes, @@ -110,7 +109,7 @@ public TableFunctionOperator( } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return this.operatorContext; } @@ -216,7 +215,8 @@ private List buildTsBlock( } properBlockBuilder.declarePositions(positionCount); TsBlock properBlock = - properBlockBuilder.build(new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, positionCount)); + properBlockBuilder.build( + new RunLengthEncodedColumn(CommonOperatorUtils.TIME_COLUMN_TEMPLATE, positionCount)); List result = new ArrayList<>(); if (needPassThrough) { // handle pass through column only if needed diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/PartitionCache.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/partition/PartitionCache.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/PartitionCache.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/partition/PartitionCache.java index 1797c8fc00e9e..a33113d8f4849 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/PartitionCache.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/partition/PartitionCache.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.function.partition; +package org.apache.iotdb.calc.execution.operator.process.function.partition; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/PartitionState.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/partition/PartitionState.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/PartitionState.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/partition/PartitionState.java index 1c3c6e8686ad8..4f78ec82d387b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/PartitionState.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/partition/PartitionState.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.function.partition; +package org.apache.iotdb.calc.execution.operator.process.function.partition; public class PartitionState { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/Slice.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/partition/Slice.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/Slice.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/partition/Slice.java index f8f002d5e19d2..aec1722a1baad 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/Slice.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/function/partition/Slice.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.function.partition; +package org.apache.iotdb.calc.execution.operator.process.function.partition; -import org.apache.iotdb.db.utils.ObjectTypeUtils; +import org.apache.iotdb.calc.utils.ObjectTypeUtils; import org.apache.iotdb.udf.api.relational.access.Record; import org.apache.iotdb.udf.api.type.Type; @@ -39,7 +39,7 @@ import java.util.Set; import java.util.stream.Collectors; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.RecordIterator.OBJECT_ERR_MSG; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.RecordIterator.OBJECT_ERR_MSG; import static org.apache.iotdb.udf.api.type.Type.OBJECT; /** Parts of partition. */ diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/AbstractGapFillOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/AbstractGapFillOperator.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/AbstractGapFillOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/AbstractGapFillOperator.java index e9a14aa63a7a5..52fb6b59bace7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/AbstractGapFillOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/AbstractGapFillOperator.java @@ -17,13 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.gapfill; +package org.apache.iotdb.calc.execution.operator.process.gapfill; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.Column; @@ -37,14 +38,13 @@ import java.util.List; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; abstract class AbstractGapFillOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(AbstractGapFillOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final Operator child; protected final int outputColumnCount; private final int timeColumnIndex; @@ -61,7 +61,7 @@ abstract class AbstractGapFillOperator implements ProcessOperator { private SortKey lastGroupKey = null; AbstractGapFillOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator child, int timeColumnIndex, long startTime, @@ -86,7 +86,8 @@ public TsBlock next() throws Exception { resultBuilder.reset(); fillGaps(lastGroupKey.tsBlock, lastGroupKey.rowIndex, endTime); return resultBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); } else { return null; } @@ -130,7 +131,8 @@ public TsBlock next() throws Exception { } lastGroupKey = new SortKey(block, size - 1); return resultBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); } private void resetTimeIterator() { @@ -184,7 +186,7 @@ private void gapFillRow(long time, TsBlock block, int rowIndex) { abstract void nextTime(); @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/AbstractGapFillWGroupOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/AbstractGapFillWGroupOperator.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/AbstractGapFillWGroupOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/AbstractGapFillWGroupOperator.java index 455202cc166c4..693091e73ae76 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/AbstractGapFillWGroupOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/AbstractGapFillWGroupOperator.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.gapfill; +package org.apache.iotdb.calc.execution.operator.process.gapfill; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.tsfile.enums.TSDataType; @@ -36,7 +36,7 @@ abstract class AbstractGapFillWGroupOperator extends AbstractGapFillOperator { private final Set groupKeyIndexSet; AbstractGapFillWGroupOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator child, int timeColumnIndex, long startTime, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/AbstractGapFillWoGroupOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/AbstractGapFillWoGroupOperator.java similarity index 81% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/AbstractGapFillWoGroupOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/AbstractGapFillWoGroupOperator.java index 7145af495f44c..0bb942a1e883b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/AbstractGapFillWoGroupOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/AbstractGapFillWoGroupOperator.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.gapfill; +package org.apache.iotdb.calc.execution.operator.process.gapfill; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.tsfile.enums.TSDataType; @@ -31,7 +31,7 @@ abstract class AbstractGapFillWoGroupOperator extends AbstractGapFillOperator { AbstractGapFillWoGroupOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator child, int timeColumnIndex, long startTime, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWMoOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/GapFillWGroupWMoOperator.java similarity index 81% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWMoOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/GapFillWGroupWMoOperator.java index c3eb335521153..8fee5f74150e2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWMoOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/GapFillWGroupWMoOperator.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.gapfill; +package org.apache.iotdb.calc.execution.operator.process.gapfill; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.tsfile.enums.TSDataType; @@ -30,7 +30,7 @@ import java.util.List; import java.util.Set; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer.nextDateBin; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer.nextDateBin; // with month interval public class GapFillWGroupWMoOperator extends AbstractGapFillWGroupOperator { @@ -41,7 +41,7 @@ public class GapFillWGroupWMoOperator extends AbstractGapFillWGroupOperator { private final ZoneId zoneId; public GapFillWGroupWMoOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator child, int timeColumnIndex, long startTime, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWoMoOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/GapFillWGroupWoMoOperator.java similarity index 80% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWoMoOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/GapFillWGroupWoMoOperator.java index 40cb5fef8cbb4..dc392cc6fc76e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWoMoOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/GapFillWGroupWoMoOperator.java @@ -17,13 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.gapfill; +package org.apache.iotdb.calc.execution.operator.process.gapfill; // without month interval -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.tsfile.enums.TSDataType; @@ -31,7 +31,7 @@ import java.util.List; import java.util.Set; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer.nextDateBin; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer.nextDateBin; public class GapFillWGroupWoMoOperator extends AbstractGapFillWGroupOperator { @@ -40,7 +40,7 @@ public class GapFillWGroupWoMoOperator extends AbstractGapFillWGroupOperator { private final long nonMonthDuration; public GapFillWGroupWoMoOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator child, int timeColumnIndex, long startTime, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWMoOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/GapFillWoGroupWMoOperator.java similarity index 81% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWMoOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/GapFillWoGroupWMoOperator.java index 738e35cd5cf52..a0c0689ab64da 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWMoOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/GapFillWoGroupWMoOperator.java @@ -17,17 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.gapfill; +package org.apache.iotdb.calc.execution.operator.process.gapfill; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.tsfile.enums.TSDataType; import java.time.ZoneId; import java.util.List; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer.nextDateBin; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer.nextDateBin; public class GapFillWoGroupWMoOperator extends AbstractGapFillWoGroupOperator { @@ -37,7 +37,7 @@ public class GapFillWoGroupWMoOperator extends AbstractGapFillWoGroupOperator { private final ZoneId zoneId; public GapFillWoGroupWMoOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator child, int timeColumnIndex, long startTime, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWoMoOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/GapFillWoGroupWoMoOperator.java similarity index 80% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWoMoOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/GapFillWoGroupWoMoOperator.java index d4f8b86abef5d..8b9cac1bdd9d2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWoMoOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/gapfill/GapFillWoGroupWoMoOperator.java @@ -17,16 +17,16 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.gapfill; +package org.apache.iotdb.calc.execution.operator.process.gapfill; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.tsfile.enums.TSDataType; import java.util.List; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer.nextDateBin; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer.nextDateBin; public class GapFillWoGroupWoMoOperator extends AbstractGapFillWoGroupOperator { @@ -35,7 +35,7 @@ public class GapFillWoGroupWoMoOperator extends AbstractGapFillWoGroupOperator { private final long nonMonthDuration; public GapFillWoGroupWoMoOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator child, int timeColumnIndex, long startTime, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/SimpleNestedLoopCrossJoinOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/SimpleNestedLoopCrossJoinOperator.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/SimpleNestedLoopCrossJoinOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/SimpleNestedLoopCrossJoinOperator.java index cb31ea61be63b..8e005fbc97d0b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/SimpleNestedLoopCrossJoinOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/SimpleNestedLoopCrossJoinOperator.java @@ -17,13 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join; +package org.apache.iotdb.calc.execution.operator.process.join; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.AbstractOperator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.calc.execution.operator.AbstractOperator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.ColumnBuilder; @@ -37,8 +38,6 @@ import java.util.List; import java.util.concurrent.TimeUnit; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - /** * This Operator is used to implement the simple nested loop join algorithm for Cartesian product. * It is used to join two tables, one is the probe table and the other is the build table. For now, @@ -73,7 +72,7 @@ public class SimpleNestedLoopCrossJoinOperator extends AbstractOperator { private boolean buildFinished = false; public SimpleNestedLoopCrossJoinOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator probeSource, Operator buildSource, int[] leftOutputSymbolIdx, @@ -86,11 +85,7 @@ public SimpleNestedLoopCrossJoinOperator( this.rightOutputSymbolIdx = rightOutputSymbolIdx; this.buildBlocks = new ArrayList<>(); this.resultBuilder = new TsBlockBuilder(dataTypes); - this.memoryReservationManager = - operatorContext - .getDriverContext() - .getFragmentInstanceContext() - .getMemoryReservationContext(); + this.memoryReservationManager = operatorContext.getMemoryReservationContext(); } @Override @@ -138,7 +133,8 @@ public TsBlock next() throws Exception { resultTsBlock = resultBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); resultBuilder.reset(); return checkTsBlockSizeAndGetResult(); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/MergeSortComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/MergeSortComparator.java similarity index 76% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/MergeSortComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/MergeSortComparator.java index 468e340200af9..a18784e6eecc9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/MergeSortComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/MergeSortComparator.java @@ -17,13 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge; +package org.apache.iotdb.calc.execution.operator.process.join.merge; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.statement.component.NullOrdering; -import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; -import org.apache.iotdb.db.queryengine.plan.statement.component.SortItem; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.external.commons.collections4.comparators.ComparatorChain; @@ -47,26 +44,6 @@ private MergeSortComparator() { // util class doesn't need constructor } - /** -1 in index is for time column. */ - public static Comparator getComparator( - List sortItemList, List indexList, List dataTypeList) { - - // use code-gen compile this comparator - List> list = new ArrayList<>(indexList.size()); - for (int i = 0; i < indexList.size(); i++) { - int index = indexList.get(i); - if (index == -2) { - continue; - } - TSDataType dataType = dataTypeList.get(i); - boolean asc = sortItemList.get(i).getOrdering() == Ordering.ASC; - boolean nullFirst = sortItemList.get(i).getNullOrdering() == NullOrdering.FIRST; - list.add(genSingleComparator(asc, index, dataType, nullFirst)); - } - - return list.size() == 1 ? list.get(0) : new ComparatorChain<>(list); - } - public static Comparator getComparatorForTable( List sortOrderList, List indexList, List dataTypeList) { @@ -134,7 +111,7 @@ public static Comparator getComparator(TSDataType dataType, int index, return comparator; } - private static Comparator genSingleComparator( + public static Comparator genSingleComparator( boolean asc, int index, TSDataType dataType, boolean nullFirst) { if (index == -1) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/SortKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/SortKeyComparator.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/SortKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/SortKeyComparator.java index 0959e675d2354..fac0f077eeeba 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/SortKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/SortKeyComparator.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge; +package org.apache.iotdb.calc.execution.operator.process.join.merge; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import java.util.Comparator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscBinaryTypeJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscBinaryTypeJoinKeyComparator.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscBinaryTypeJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscBinaryTypeJoinKeyComparator.java index 9a0f971426177..877e02e445ff2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscBinaryTypeJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscBinaryTypeJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscBooleanTypeJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscBooleanTypeJoinKeyComparator.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscBooleanTypeJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscBooleanTypeJoinKeyComparator.java index 9203625c69aba..fb5404103d162 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscBooleanTypeJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscBooleanTypeJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscDoubleTypeJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscDoubleTypeJoinKeyComparator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscDoubleTypeJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscDoubleTypeJoinKeyComparator.java index 0586fa6a53d12..589ddfa0b15bb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscDoubleTypeJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscDoubleTypeJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscFloatTypeJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscFloatTypeJoinKeyComparator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscFloatTypeJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscFloatTypeJoinKeyComparator.java index 351cb0599dbd0..75cc370f9d786 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscFloatTypeJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscFloatTypeJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscIntTypeJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscIntTypeJoinKeyComparator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscIntTypeJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscIntTypeJoinKeyComparator.java index 99b9d23dd946c..e3dd6b5ab6e17 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscIntTypeJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscIntTypeJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscLongTypeIgnoreEqualJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscLongTypeIgnoreEqualJoinKeyComparator.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscLongTypeIgnoreEqualJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscLongTypeIgnoreEqualJoinKeyComparator.java index 8b94dde815bfc..60134c28ae7b9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscLongTypeIgnoreEqualJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscLongTypeIgnoreEqualJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscLongTypeJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscLongTypeJoinKeyComparator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscLongTypeJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscLongTypeJoinKeyComparator.java index 793c3f2a1e6ac..23a1c5dde2968 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/AscLongTypeJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/AscLongTypeJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescBinaryTypeJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescBinaryTypeJoinKeyComparator.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescBinaryTypeJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescBinaryTypeJoinKeyComparator.java index b1ee6d5c4af58..0f6654fadd4b2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescBinaryTypeJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescBinaryTypeJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescBooleanTypeJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescBooleanTypeJoinKeyComparator.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescBooleanTypeJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescBooleanTypeJoinKeyComparator.java index 2402574265c4b..a716e7ac94519 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescBooleanTypeJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescBooleanTypeJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescDoubleTypeJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescDoubleTypeJoinKeyComparator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescDoubleTypeJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescDoubleTypeJoinKeyComparator.java index 0c20b7d45f8f5..228b42ba46cd3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescDoubleTypeJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescDoubleTypeJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescFloatTypeJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescFloatTypeJoinKeyComparator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescFloatTypeJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescFloatTypeJoinKeyComparator.java index de835133f000a..e99dd6f85674f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescFloatTypeJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescFloatTypeJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescIntTypeJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescIntTypeJoinKeyComparator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescIntTypeJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescIntTypeJoinKeyComparator.java index f3d5fbadd29dd..96f1cd6f28a64 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescIntTypeJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescIntTypeJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescLongTypeIgnoreEqualJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescLongTypeIgnoreEqualJoinKeyComparator.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescLongTypeIgnoreEqualJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescLongTypeIgnoreEqualJoinKeyComparator.java index 59ea63730d016..b2899fbfc722c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescLongTypeIgnoreEqualJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescLongTypeIgnoreEqualJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescLongTypeJoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescLongTypeJoinKeyComparator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescLongTypeJoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescLongTypeJoinKeyComparator.java index 44849b9a1541f..9ecc482807e07 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/DescLongTypeJoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/DescLongTypeJoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/JoinKeyComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/JoinKeyComparator.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/JoinKeyComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/JoinKeyComparator.java index 2857f545e1ae2..ab9802050485a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/JoinKeyComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/JoinKeyComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/JoinKeyComparatorFactory.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/JoinKeyComparatorFactory.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/JoinKeyComparatorFactory.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/JoinKeyComparatorFactory.java index 4ab5f87fb798b..af59f42e92b49 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/comparator/JoinKeyComparatorFactory.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/join/merge/comparator/JoinKeyComparatorFactory.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator; +package org.apache.iotdb.calc.execution.operator.process.join.merge.comparator; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/LogicalIndexNavigation.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/LogicalIndexNavigation.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/LogicalIndexNavigation.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/LogicalIndexNavigation.java index 4259119dba570..fbf7e709e1f92 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/LogicalIndexNavigation.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/LogicalIndexNavigation.java @@ -17,15 +17,19 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern; +package org.apache.iotdb.calc.execution.operator.process.rowpattern; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.ArrayView; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.ArrayView; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrLabel; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.LogicalIndexPointer; import java.util.Collections; +import java.util.Map; import java.util.Objects; import java.util.Set; import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.collect.ImmutableSet.toImmutableSet; import static java.util.Objects.requireNonNull; public class LogicalIndexNavigation { @@ -54,6 +58,16 @@ public LogicalIndexNavigation( this.physicalOffset = physicalOffset; } + public LogicalIndexNavigation( + LogicalIndexPointer logicalIndexPointer, Map mapping) { + this( + logicalIndexPointer.getLabels().stream().map(mapping::get).collect(toImmutableSet()), + logicalIndexPointer.isLast(), + logicalIndexPointer.isRunning(), + logicalIndexPointer.getLogicalOffset(), + logicalIndexPointer.getPhysicalOffset()); + } + public Set getLabels() { return labels; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternAggregationTracker.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternAggregationTracker.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternAggregationTracker.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternAggregationTracker.java index aa0c25b816eaa..7678e38f22a41 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternAggregationTracker.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternAggregationTracker.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern; +package org.apache.iotdb.calc.execution.operator.process.rowpattern; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.ArrayView; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.IntList; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.ArrayView; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.IntList; import java.util.Set; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternAggregator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternAggregator.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternAggregator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternAggregator.java index 55fc4425041db..d8ac5f5052138 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternAggregator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternAggregator.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern; +package org.apache.iotdb.calc.execution.operator.process.rowpattern; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.ArrayView; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.TableAccumulator; -import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.ArrayView; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.TableAccumulator; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.function.BoundSignature; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -33,7 +33,7 @@ import java.util.List; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.TIME_COLUMN_TEMPLATE; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.TIME_COLUMN_TEMPLATE; /** * This class computes an aggregate function result in row pattern recognition context. diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternAggregators.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternAggregators.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternAggregators.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternAggregators.java index d25363f2304ec..7d0667760f9ea 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternAggregators.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternAggregators.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern; +package org.apache.iotdb.calc.execution.operator.process.rowpattern; import java.util.Arrays; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternPartitionExecutor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternPartitionExecutor.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternPartitionExecutor.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternPartitionExecutor.java index 402cc7e831282..8f59701b2fdb5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternPartitionExecutor.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternPartitionExecutor.java @@ -17,19 +17,19 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern; - -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PatternVariableRecognizer.PatternVariableComputation; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression.PatternExpressionComputation; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.ArrayView; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.MatchResult; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.Matcher; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.ColumnList; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.RowComparator; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowsPerMatch; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SkipToPosition; +package org.apache.iotdb.calc.execution.operator.process.rowpattern; + +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternVariableRecognizer.PatternVariableComputation; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.expression.PatternExpressionComputation; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.ArrayView; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.MatchResult; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.Matcher; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.utils.ColumnList; +import org.apache.iotdb.calc.execution.operator.process.window.utils.RowComparator; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowsPerMatch; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SkipToPosition; import com.google.common.collect.ImmutableList; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternVariableRecognizer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternVariableRecognizer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternVariableRecognizer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternVariableRecognizer.java index 39cd5b163e58a..e9a40006ce272 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternVariableRecognizer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PatternVariableRecognizer.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern; +package org.apache.iotdb.calc.execution.operator.process.rowpattern; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression.Computation; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression.PatternExpressionComputation; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.ArrayView; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.expression.Computation; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.expression.PatternExpressionComputation; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.ArrayView; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PhysicalAggregationPointer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PhysicalAggregationPointer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PhysicalAggregationPointer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PhysicalAggregationPointer.java index ed1ada2ac036e..5bb36aa702855 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PhysicalAggregationPointer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PhysicalAggregationPointer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern; +package org.apache.iotdb.calc.execution.operator.process.rowpattern; public class PhysicalAggregationPointer implements PhysicalValueAccessor { private final int index; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PhysicalValueAccessor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PhysicalValueAccessor.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PhysicalValueAccessor.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PhysicalValueAccessor.java index 81dd0ad095f6a..cf9abfb210de0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PhysicalValueAccessor.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PhysicalValueAccessor.java @@ -17,6 +17,6 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern; +package org.apache.iotdb.calc.execution.operator.process.rowpattern; public interface PhysicalValueAccessor {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PhysicalValuePointer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PhysicalValuePointer.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PhysicalValuePointer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PhysicalValuePointer.java index 414705dbbf599..d10039d49a3f1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PhysicalValuePointer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/PhysicalValuePointer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern; +package org.apache.iotdb.calc.execution.operator.process.rowpattern; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/ArithmeticOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/ArithmeticOperator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/ArithmeticOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/ArithmeticOperator.java index 59f0cbdc42a8f..de2196356285a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/ArithmeticOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/ArithmeticOperator.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.expression; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; public enum ArithmeticOperator implements BinaryOperator { ADD { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/BinaryComputation.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/BinaryComputation.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/BinaryComputation.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/BinaryComputation.java index 32a14cb7ce4c6..8732c07a9c42e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/BinaryComputation.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/BinaryComputation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.expression; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/BinaryOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/BinaryOperator.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/BinaryOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/BinaryOperator.java index f913b64968502..d63c0d0ef4f48 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/BinaryOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/BinaryOperator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.expression; public interface BinaryOperator { /** diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/CastComputation.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/CastComputation.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/CastComputation.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/CastComputation.java index 9f4ad2f13af8b..1b50f37bc76e8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/CastComputation.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/CastComputation.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericDataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericDataType; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/ComparisonOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/ComparisonOperator.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/ComparisonOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/ComparisonOperator.java index 96bd1d991b057..0a3c0c1105bbb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/ComparisonOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/ComparisonOperator.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.expression; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.utils.Binary; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/Computation.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/Computation.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/Computation.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/Computation.java index 33661fd206a57..187002f7e201c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/Computation.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/Computation.java @@ -17,25 +17,25 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.expression; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers.Assignment; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers.Assignment; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import java.util.ArrayList; import java.util.HashMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/ConstantComputation.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/ConstantComputation.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/ConstantComputation.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/ConstantComputation.java index 6412917ff0a4e..068a47074858a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/ConstantComputation.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/ConstantComputation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.expression; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/LogicalOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/LogicalOperator.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/LogicalOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/LogicalOperator.java index c426cbd16939c..1f7fcc99bb1b3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/LogicalOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/LogicalOperator.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.expression; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/NaryComputation.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/NaryComputation.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/NaryComputation.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/NaryComputation.java index 291f95d046be4..b077ccd1b3593 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/NaryComputation.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/NaryComputation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.expression; import java.util.ArrayList; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/NaryOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/NaryOperator.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/NaryOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/NaryOperator.java index 1d5d469a6b466..6bbc102aa986d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/NaryOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/NaryOperator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.expression; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/PatternExpressionComputation.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/PatternExpressionComputation.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/PatternExpressionComputation.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/PatternExpressionComputation.java index cb8cbdccbb695..d27d028b361e6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/PatternExpressionComputation.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/PatternExpressionComputation.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.expression; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PatternAggregator; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PhysicalAggregationPointer; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PhysicalValueAccessor; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PhysicalValuePointer; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.ArrayView; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternAggregator; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PhysicalAggregationPointer; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PhysicalValueAccessor; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PhysicalValuePointer; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.ArrayView; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.type.AbstractIntType; @@ -41,8 +41,8 @@ import java.util.ArrayList; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PhysicalValuePointer.CLASSIFIER; -import static org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PhysicalValuePointer.MATCH_NUMBER; +import static org.apache.iotdb.calc.execution.operator.process.rowpattern.PhysicalValuePointer.CLASSIFIER; +import static org.apache.iotdb.calc.execution.operator.process.rowpattern.PhysicalValuePointer.MATCH_NUMBER; import static org.apache.tsfile.enums.TSDataType.STRING; public class PatternExpressionComputation { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/ReferenceComputation.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/ReferenceComputation.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/ReferenceComputation.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/ReferenceComputation.java index 8d8b7fd6367fa..b659103f5cdf5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/expression/ReferenceComputation.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/expression/ReferenceComputation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.expression; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/ArrayView.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/ArrayView.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/ArrayView.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/ArrayView.java index 63197a26ccf65..718f1aafe48a4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/ArrayView.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/ArrayView.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; import com.google.common.annotations.VisibleForTesting; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Done.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Done.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Done.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Done.java index 08e26baca8a89..5599f223fc429 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Done.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Done.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; class Done implements Instruction { @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Instruction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Instruction.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Instruction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Instruction.java index 68400950271c0..6f24533011145 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Instruction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Instruction.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; interface Instruction { enum Type { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IntList.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/IntList.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IntList.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/IntList.java index c5fd5dd2620d8..423f0281b81aa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IntList.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/IntList.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IntMultimap.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/IntMultimap.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IntMultimap.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/IntMultimap.java index 3baf0ef782e10..df701f9e9d425 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IntMultimap.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/IntMultimap.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IntStack.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/IntStack.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IntStack.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/IntStack.java index 47fbc1ca5d4a8..d558e8af7f8ff 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IntStack.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/IntStack.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IrRowPatternToProgramRewriter.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/IrRowPatternToProgramRewriter.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IrRowPatternToProgramRewriter.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/IrRowPatternToProgramRewriter.java index 37de296d54c56..fccf755bcaba5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/IrRowPatternToProgramRewriter.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/IrRowPatternToProgramRewriter.java @@ -17,19 +17,19 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; - -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrAlternation; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrAnchor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrConcatenation; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrEmpty; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrExclusion; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrPermutation; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantified; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPatternVisitor; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; + +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrAlternation; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrAnchor; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrConcatenation; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrEmpty; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrExclusion; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrLabel; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrPermutation; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrQuantified; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrRowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrRowPatternVisitor; import java.util.ArrayList; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Jump.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Jump.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Jump.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Jump.java index c75698c97f82b..2d47f70221ab7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Jump.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Jump.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/MatchEnd.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/MatchEnd.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/MatchEnd.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/MatchEnd.java index 7d14586186ba0..54e1686e4d267 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/MatchEnd.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/MatchEnd.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; class MatchEnd implements Instruction { @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/MatchLabel.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/MatchLabel.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/MatchLabel.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/MatchLabel.java index d839508ea30ee..d4596fff32107 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/MatchLabel.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/MatchLabel.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/MatchResult.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/MatchResult.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/MatchResult.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/MatchResult.java index fd79e55589db9..0e3511c0a526f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/MatchResult.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/MatchResult.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; import static java.util.Objects.requireNonNull; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/MatchStart.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/MatchStart.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/MatchStart.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/MatchStart.java index f8dd5e5597a27..764cb9ad8e16f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/MatchStart.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/MatchStart.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; class MatchStart implements Instruction { @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Matcher.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Matcher.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Matcher.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Matcher.java index ffb5f7e6fce5e..0d3f6889dbc42 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Matcher.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Matcher.java @@ -17,17 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PatternAggregator; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PatternAggregators; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PatternVariableRecognizer; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternAggregator; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternAggregators; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternVariableRecognizer; import org.apache.tsfile.utils.RamUsageEstimator; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.MatchResult.NO_MATCH; +import static org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.MatchResult.NO_MATCH; public class Matcher { private final Program program; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/PatternCaptures.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/PatternCaptures.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/PatternCaptures.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/PatternCaptures.java index 640ae54e98c23..26bf682d11cb2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/PatternCaptures.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/PatternCaptures.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Program.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Program.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Program.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Program.java index d679cad42dcb8..f43e5f876d565 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Program.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Program.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Save.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Save.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Save.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Save.java index fceac14288256..f20e300d3e704 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Save.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Save.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; class Save implements Instruction { @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Split.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Split.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Split.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Split.java index 5376ad44ba261..bb9d64fb6e807 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/matcher/Split.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/rowpattern/matcher/Split.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher; +package org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/RowNumberOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/RowNumberOperator.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/RowNumberOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/RowNumberOperator.java index 7861a8dbbee20..e676c3a7da419 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/RowNumberOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/RowNumberOperator.java @@ -16,15 +16,15 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window; +package org.apache.iotdb.calc.execution.operator.process.window; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; @@ -44,14 +44,14 @@ import java.util.Map; import java.util.Optional; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.TIME_COLUMN_TEMPLATE; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash.createGroupByHash; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.TIME_COLUMN_TEMPLATE; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash.createGroupByHash; public class RowNumberOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(RowNumberOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final Operator inputOperator; private final List outputChannels; private final List partitionChannels; @@ -62,7 +62,7 @@ public class RowNumberOperator implements ProcessOperator { private final Map partitionRowCounts; public RowNumberOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator inputOperator, List inputDataTypes, List outputChannels, @@ -103,7 +103,7 @@ public RowNumberOperator( } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/TableWindowOperator.java similarity index 83% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/TableWindowOperator.java index 32e1a44ce45db..8dde114569641 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/TableWindowOperator.java @@ -17,21 +17,22 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window; - -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.PartitionRecognizer; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.partition.PartitionCache; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.partition.PartitionState; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.partition.Slice; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.WindowFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.FrameInfo; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; +package org.apache.iotdb.calc.execution.operator.process.window; + +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.calc.execution.operator.process.function.PartitionRecognizer; +import org.apache.iotdb.calc.execution.operator.process.function.partition.PartitionCache; +import org.apache.iotdb.calc.execution.operator.process.function.partition.PartitionState; +import org.apache.iotdb.calc.execution.operator.process.function.partition.Slice; +import org.apache.iotdb.calc.execution.operator.process.window.function.WindowFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; @@ -48,15 +49,14 @@ import java.util.List; import java.util.concurrent.TimeUnit; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; -import static org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter.MAX_RESERVED_MEMORY; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.MAX_RESERVED_MEMORY; public class TableWindowOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(TableWindowOperator.class); // Common fields - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final Operator inputOperator; private final List inputDataTypes; private final List outputChannels; @@ -84,7 +84,7 @@ public class TableWindowOperator implements ProcessOperator { private boolean noMoreDataSignaled; public TableWindowOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator inputOperator, List inputDataTypes, List outputDataTypes, @@ -119,15 +119,11 @@ public TableWindowOperator( this.totalMemorySize = 0; this.maxUsedMemory = 0; this.noMoreDataSignaled = false; - this.memoryReservationManager = - operatorContext - .getDriverContext() - .getFragmentInstanceContext() - .getMemoryReservationContext(); + this.memoryReservationManager = operatorContext.getMemoryReservationContext(); } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } @@ -245,7 +241,8 @@ private TsBlock transform(long startTime) { private TsBlock getTsBlockFromTsBlockBuilder() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); tsBlockBuilder.reset(); return result; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/TopKRankingOperator.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/TopKRankingOperator.java index b94c546ac5497..e42a935d4e0a8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/TopKRankingOperator.java @@ -17,22 +17,22 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window; - -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.GroupedTopNBuilder; -import org.apache.iotdb.db.queryengine.execution.operator.GroupedTopNRowNumberBuilder; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.SimpleTsBlockWithPositionComparator; -import org.apache.iotdb.db.queryengine.execution.operator.TsBlockWithPositionComparator; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.NoChannelGroupByHash; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; +package org.apache.iotdb.calc.execution.operator.process.window; + +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.GroupedTopNBuilder; +import org.apache.iotdb.calc.execution.operator.GroupedTopNRowNumberBuilder; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.SimpleTsBlockWithPositionComparator; +import org.apache.iotdb.calc.execution.operator.TsBlockWithPositionComparator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.NoChannelGroupByHash; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; @@ -51,7 +51,7 @@ public class TopKRankingOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(TopKRankingOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final Operator inputOperator; private final TopKRankingNode.RankingType rankingType; private final List inputTypes; @@ -78,7 +78,7 @@ public class TopKRankingOperator implements ProcessOperator { private java.util.Iterator outputIterator; public TopKRankingOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator inputOperator, TopKRankingNode.RankingType rankingType, List inputTypes, @@ -169,7 +169,7 @@ private Supplier getGroupedTopNBuilderSupplier() { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/WindowFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/WindowFunction.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/WindowFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/WindowFunction.java index acaf72da85654..6ce00df0d7edb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/WindowFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/WindowFunction.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function; +package org.apache.iotdb.calc.execution.operator.process.window.function; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/WindowFunctionFactory.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/WindowFunctionFactory.java similarity index 62% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/WindowFunctionFactory.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/WindowFunctionFactory.java index 04c8a774deb27..5a88fbf786d18 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/WindowFunctionFactory.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/WindowFunctionFactory.java @@ -17,19 +17,19 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function; +package org.apache.iotdb.calc.execution.operator.process.window.function; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank.CumeDistFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank.DenseRankFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank.NTileFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank.PercentRankFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank.RankFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank.RowNumberFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value.FirstValueFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value.LagFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value.LastValueFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value.LeadFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value.NthValueFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.CumeDistFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.DenseRankFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.NTileFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.PercentRankFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.RankFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.RowNumberFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.value.FirstValueFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.value.LagFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.value.LastValueFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.value.LeadFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.value.NthValueFunction; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/aggregate/AggregationWindowFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/aggregate/AggregationWindowFunction.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/aggregate/AggregationWindowFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/aggregate/AggregationWindowFunction.java index b8f5a95f3fa3b..2b1ec10343901 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/aggregate/AggregationWindowFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/aggregate/AggregationWindowFunction.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.aggregate; +package org.apache.iotdb.calc.execution.operator.process.window.function.aggregate; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.WindowFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.function.WindowFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/aggregate/WindowAggregator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/aggregate/WindowAggregator.java similarity index 83% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/aggregate/WindowAggregator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/aggregate/WindowAggregator.java index 5d540db574425..874d365d61a7a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/aggregate/WindowAggregator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/aggregate/WindowAggregator.java @@ -17,11 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.aggregate; +package org.apache.iotdb.calc.execution.operator.process.window.function.aggregate; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.TableAccumulator; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.TableAccumulator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import com.google.common.primitives.Ints; import org.apache.tsfile.block.column.Column; @@ -33,7 +34,6 @@ import java.util.List; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; public class WindowAggregator { private final TableAccumulator accumulator; @@ -67,7 +67,10 @@ public void addInput(Column[] columns) { // Process count(*) int count = columns[0].getPositionCount(); if (arguments.length == 0) { - arguments = new Column[] {new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, count)}; + arguments = + new Column[] { + new RunLengthEncodedColumn(CommonOperatorUtils.TIME_COLUMN_TEMPLATE, count) + }; } AggregationMask mask = AggregationMask.createSelectAll(count); @@ -90,7 +93,10 @@ private void removeInput(Column[] columns) { // Process count(*) int count = columns[0].getPositionCount(); if (arguments.length == 0) { - arguments = new Column[] {new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, count)}; + arguments = + new Column[] { + new RunLengthEncodedColumn(CommonOperatorUtils.TIME_COLUMN_TEMPLATE, count) + }; } accumulator.removeInput(arguments); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/CumeDistFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/CumeDistFunction.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/CumeDistFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/CumeDistFunction.java index e4745bd0ad54b..7e8c9535f0c41 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/CumeDistFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/CumeDistFunction.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +package org.apache.iotdb.calc.execution.operator.process.window.function.rank; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/DenseRankFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/DenseRankFunction.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/DenseRankFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/DenseRankFunction.java index ac16fcf66f088..f116847007da3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/DenseRankFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/DenseRankFunction.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +package org.apache.iotdb.calc.execution.operator.process.window.function.rank; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/NTileFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/NTileFunction.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/NTileFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/NTileFunction.java index c218215f19832..c89b43124d67a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/NTileFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/NTileFunction.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +package org.apache.iotdb.calc.execution.operator.process.window.function.rank; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/PercentRankFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/PercentRankFunction.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/PercentRankFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/PercentRankFunction.java index 35741eb4078b4..ea29c2a95ccfd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/PercentRankFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/PercentRankFunction.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +package org.apache.iotdb.calc.execution.operator.process.window.function.rank; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RankFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/RankFunction.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RankFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/RankFunction.java index c6fbf710e725d..2612312724289 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RankFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/RankFunction.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +package org.apache.iotdb.calc.execution.operator.process.window.function.rank; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RankWindowFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/RankWindowFunction.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RankWindowFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/RankWindowFunction.java index b2c672afbea65..ad6b64f6e9e89 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RankWindowFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/RankWindowFunction.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +package org.apache.iotdb.calc.execution.operator.process.window.function.rank; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.WindowFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.function.WindowFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RowNumberFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/RowNumberFunction.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RowNumberFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/RowNumberFunction.java index 67a790557bcb8..b9343c702ee86 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RowNumberFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/rank/RowNumberFunction.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +package org.apache.iotdb.calc.execution.operator.process.window.function.rank; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/FirstValueFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/FirstValueFunction.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/FirstValueFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/FirstValueFunction.java index 465ec2920fc28..efd9f0309b5b3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/FirstValueFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/FirstValueFunction.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value; +package org.apache.iotdb.calc.execution.operator.process.window.function.value; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LagFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/LagFunction.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LagFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/LagFunction.java index 91e39753344d9..9ac4708c33c3e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LagFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/LagFunction.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value; +package org.apache.iotdb.calc.execution.operator.process.window.function.value; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LastValueFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/LastValueFunction.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LastValueFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/LastValueFunction.java index 1c929d035be34..d9c918dda32b5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LastValueFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/LastValueFunction.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value; +package org.apache.iotdb.calc.execution.operator.process.window.function.value; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LeadFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/LeadFunction.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LeadFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/LeadFunction.java index c51eac1563596..37b71595f0f65 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LeadFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/LeadFunction.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value; +package org.apache.iotdb.calc.execution.operator.process.window.function.value; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/NthValueFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/NthValueFunction.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/NthValueFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/NthValueFunction.java index 83c245119ff01..f6b8ced1921c6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/NthValueFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/NthValueFunction.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value; +package org.apache.iotdb.calc.execution.operator.process.window.function.value; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/ValueWindowFunction.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/ValueWindowFunction.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/ValueWindowFunction.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/ValueWindowFunction.java index 45e5b9def92b0..daf30551e49c9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/ValueWindowFunction.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/function/value/ValueWindowFunction.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value; +package org.apache.iotdb.calc.execution.operator.process.window.function.value; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.WindowFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.function.WindowFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/Partition.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/Partition.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/Partition.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/Partition.java index ac23bbc9fef34..eebbee937d05e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/Partition.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/Partition.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.partition; +package org.apache.iotdb.calc.execution.operator.process.window.partition; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.partition.Slice; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.ColumnList; +import org.apache.iotdb.calc.execution.operator.process.function.partition.Slice; +import org.apache.iotdb.calc.execution.operator.process.window.utils.ColumnList; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/PartitionExecutor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/PartitionExecutor.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/PartitionExecutor.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/PartitionExecutor.java index d5a68ea579672..bdf55cae5b18d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/PartitionExecutor.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/PartitionExecutor.java @@ -17,17 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.partition; - -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.WindowFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.Frame; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.FrameInfo; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.GroupsFrame; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.RangeFrame; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.RowsFrame; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.ColumnList; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.Range; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.RowComparator; +package org.apache.iotdb.calc.execution.operator.process.window.partition; + +import org.apache.iotdb.calc.execution.operator.process.window.function.WindowFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.Frame; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.GroupsFrame; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.RangeFrame; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.RowsFrame; +import org.apache.iotdb.calc.execution.operator.process.window.utils.ColumnList; +import org.apache.iotdb.calc.execution.operator.process.window.utils.Range; +import org.apache.iotdb.calc.execution.operator.process.window.utils.RowComparator; import com.google.common.collect.ImmutableList; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/Frame.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/Frame.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/Frame.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/Frame.java index b697420443c58..b207f51399258 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/Frame.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/Frame.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame; +package org.apache.iotdb.calc.execution.operator.process.window.partition.frame; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.Range; +import org.apache.iotdb.calc.execution.operator.process.window.utils.Range; public interface Frame { Range getRange(int currentPosition, int currentGroup, int peerGroupStart, int peerGroupEnd); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/FrameInfo.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/FrameInfo.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/FrameInfo.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/FrameInfo.java index 78cb7d2b9e4db..5b9965b141afc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/FrameInfo.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/FrameInfo.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame; +package org.apache.iotdb.calc.execution.operator.process.window.partition.frame; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame; import java.util.Optional; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/GroupsFrame.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/GroupsFrame.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/GroupsFrame.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/GroupsFrame.java index 3e9b111301da8..c89de0d0403e5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/GroupsFrame.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/GroupsFrame.java @@ -17,13 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame; +package org.apache.iotdb.calc.execution.operator.process.window.partition.frame; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.ColumnList; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.Range; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.RowComparator; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.utils.ColumnList; +import org.apache.iotdb.calc.execution.operator.process.window.utils.Range; +import org.apache.iotdb.calc.execution.operator.process.window.utils.RowComparator; +import org.apache.iotdb.commons.exception.SemanticException; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RangeFrame.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/RangeFrame.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RangeFrame.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/RangeFrame.java index 64981fb62323b..60fa6619bd818 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RangeFrame.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/RangeFrame.java @@ -17,13 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame; +package org.apache.iotdb.calc.execution.operator.process.window.partition.frame; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.ColumnList; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.Range; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.RowComparator; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.utils.ColumnList; +import org.apache.iotdb.calc.execution.operator.process.window.utils.Range; +import org.apache.iotdb.calc.execution.operator.process.window.utils.RowComparator; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.write.UnSupportedDataTypeException; @@ -31,9 +31,9 @@ import java.util.List; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.FrameInfo.FrameBoundType.CURRENT_ROW; -import static org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.FrameInfo.FrameBoundType.UNBOUNDED_FOLLOWING; -import static org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.FrameInfo.FrameBoundType.UNBOUNDED_PRECEDING; +import static org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo.FrameBoundType.CURRENT_ROW; +import static org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo.FrameBoundType.UNBOUNDED_FOLLOWING; +import static org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo.FrameBoundType.UNBOUNDED_PRECEDING; public class RangeFrame implements Frame { private final Partition partition; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RowsFrame.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/RowsFrame.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RowsFrame.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/RowsFrame.java index 51f386e4f6577..6b87a5de9db07 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RowsFrame.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/partition/frame/RowsFrame.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame; +package org.apache.iotdb.calc.execution.operator.process.window.partition.frame; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.Range; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.utils.Range; +import org.apache.iotdb.commons.exception.SemanticException; import static com.google.common.base.Preconditions.checkArgument; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/utils/ColumnList.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/utils/ColumnList.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/utils/ColumnList.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/utils/ColumnList.java index 97152b715d804..8a6da136464cd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/utils/ColumnList.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/utils/ColumnList.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.utils; +package org.apache.iotdb.calc.execution.operator.process.window.utils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnEncoding; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/utils/Range.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/utils/Range.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/utils/Range.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/utils/Range.java index 9994742bbfee4..e7d462d109916 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/utils/Range.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/utils/Range.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.utils; +package org.apache.iotdb.calc.execution.operator.process.window.utils; public class Range { private final int start; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/utils/RowComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/utils/RowComparator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/utils/RowComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/utils/RowComparator.java index 73ff0fe60e64c..6f01fb96d94ec 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/utils/RowComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/process/window/utils/RowComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.process.window.utils; +package org.apache.iotdb.calc.execution.operator.process.window.utils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractAsofMergeSortJoinOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/AbstractAsofMergeSortJoinOperator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractAsofMergeSortJoinOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/AbstractAsofMergeSortJoinOperator.java index 0f880ba2f8886..23e1a9c69c3b7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractAsofMergeSortJoinOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/AbstractAsofMergeSortJoinOperator.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +package org.apache.iotdb.calc.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.join.merge.comparator.JoinKeyComparator; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; @@ -34,7 +34,7 @@ public abstract class AbstractAsofMergeSortJoinOperator extends AbstractMergeSor private final int rightAsofJoinKeyIndex; public AbstractAsofMergeSortJoinOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator leftChild, int[] leftJoinKeyPositions, int[] leftOutputSymbolIdx, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractMergeSortJoinOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/AbstractMergeSortJoinOperator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractMergeSortJoinOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/AbstractMergeSortJoinOperator.java index 1f41ddaeb8150..bd12e7fc71ed5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractMergeSortJoinOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/AbstractMergeSortJoinOperator.java @@ -17,13 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +package org.apache.iotdb.calc.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.operator.AbstractOperator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator.JoinKeyComparator; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.calc.execution.operator.AbstractOperator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.ColumnBuilder; @@ -37,8 +38,7 @@ import java.util.concurrent.TimeUnit; import static com.google.common.util.concurrent.Futures.successfulAsList; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; -import static org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter.MAX_RESERVED_MEMORY; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.MAX_RESERVED_MEMORY; public abstract class AbstractMergeSortJoinOperator extends AbstractOperator { protected boolean leftFinished; @@ -67,7 +67,7 @@ public abstract class AbstractMergeSortJoinOperator extends AbstractOperator { protected long usedMemory; protected AbstractMergeSortJoinOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator leftChild, int[] leftJoinKeyPositions, int[] leftOutputSymbolIdx, @@ -85,11 +85,7 @@ protected AbstractMergeSortJoinOperator( this.rightOutputSymbolIdx = rightOutputSymbolIdx; this.comparators = comparators; - this.memoryReservationManager = - operatorContext - .getDriverContext() - .getFragmentInstanceContext() - .getMemoryReservationContext(); + this.memoryReservationManager = operatorContext.getMemoryReservationContext(); this.resultBuilder = new TsBlockBuilder(dataTypes); } @@ -564,7 +560,8 @@ protected void appendOneLeftRowWithEmptyRight() { protected void buildResultTsBlock() { resultTsBlock = resultBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); resultBuilder.reset(); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AsofMergeSortInnerJoinOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/AsofMergeSortInnerJoinOperator.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AsofMergeSortInnerJoinOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/AsofMergeSortInnerJoinOperator.java index f8a57dd3c4076..2090fdf055f03 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AsofMergeSortInnerJoinOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/AsofMergeSortInnerJoinOperator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +package org.apache.iotdb.calc.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.RamUsageEstimator; @@ -34,7 +34,7 @@ public class AsofMergeSortInnerJoinOperator extends AbstractAsofMergeSortJoinOpe RamUsageEstimator.shallowSizeOfInstance(AsofMergeSortInnerJoinOperator.class); public AsofMergeSortInnerJoinOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator leftChild, int[] leftJoinKeyPositions, int[] leftOutputSymbolIdx, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AsofMergeSortLeftJoinOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/AsofMergeSortLeftJoinOperator.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AsofMergeSortLeftJoinOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/AsofMergeSortLeftJoinOperator.java index 8307c242163cc..7658aa2f5a373 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AsofMergeSortLeftJoinOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/AsofMergeSortLeftJoinOperator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +package org.apache.iotdb.calc.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.RamUsageEstimator; @@ -34,7 +34,7 @@ public class AsofMergeSortLeftJoinOperator extends AbstractAsofMergeSortJoinOper RamUsageEstimator.shallowSizeOfInstance(AsofMergeSortLeftJoinOperator.class); public AsofMergeSortLeftJoinOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator leftChild, int[] leftJoinKeyPositions, int[] leftOutputSymbolIdx, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MarkDistinctOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MarkDistinctOperator.java similarity index 81% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MarkDistinctOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MarkDistinctOperator.java index 4794f97c885d0..c37015ee1f5f4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MarkDistinctOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MarkDistinctOperator.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +package org.apache.iotdb.calc.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.MarkDistinctHash; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.MarkDistinctHash; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; @@ -40,13 +40,13 @@ import java.util.Optional; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter.CURRENT_USED_MEMORY; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.CURRENT_USED_MEMORY; public class MarkDistinctOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(MarkDistinctOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final Operator child; @@ -61,7 +61,7 @@ public class MarkDistinctOperator implements ProcessOperator { TSFileDescriptor.getInstance().getConfig().getMaxTsBlockLineNumber(); public MarkDistinctOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator child, List types, List markDistinctChannels, @@ -88,15 +88,11 @@ public MarkDistinctOperator( this.markDistinctHash = new MarkDistinctHash(distinctTypes.build(), hashChannel.isPresent(), UpdateMemory.NOOP); - this.memoryReservationManager = - operatorContext - .getDriverContext() - .getFragmentInstanceContext() - .getMemoryReservationContext(); + this.memoryReservationManager = operatorContext.getMemoryReservationContext(); } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MergeSortFullOuterJoinOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MergeSortFullOuterJoinOperator.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MergeSortFullOuterJoinOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MergeSortFullOuterJoinOperator.java index 337d90eebac7f..278d87ea02155 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MergeSortFullOuterJoinOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MergeSortFullOuterJoinOperator.java @@ -17,12 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +package org.apache.iotdb.calc.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -33,8 +34,6 @@ import java.util.List; import java.util.function.BiFunction; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class MergeSortFullOuterJoinOperator extends AbstractMergeSortJoinOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(MergeSortFullOuterJoinOperator.class); @@ -45,7 +44,7 @@ public class MergeSortFullOuterJoinOperator extends AbstractMergeSortJoinOperato private final List> updateLastMatchedRowFunctions; public MergeSortFullOuterJoinOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator leftChild, int[] leftJoinKeyPositions, int[] leftOutputSymbolIdx, @@ -190,7 +189,7 @@ protected void recordsWhenDataMatches() { .get(i) .apply(leftBlock.getColumn(leftJoinKeyPositions[i]), leftIndex); } - lastMatchedRightBlock = new TsBlock(1, TIME_COLUMN_TEMPLATE, valueColumns); + lastMatchedRightBlock = new TsBlock(1, CommonOperatorUtils.TIME_COLUMN_TEMPLATE, valueColumns); } private void buildUseRemainingBlocks() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MergeSortInnerJoinOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MergeSortInnerJoinOperator.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MergeSortInnerJoinOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MergeSortInnerJoinOperator.java index 3b7e17fae110c..03611237960b8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MergeSortInnerJoinOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MergeSortInnerJoinOperator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +package org.apache.iotdb.calc.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; @@ -35,7 +35,7 @@ public class MergeSortInnerJoinOperator extends AbstractMergeSortJoinOperator { RamUsageEstimator.shallowSizeOfInstance(MergeSortInnerJoinOperator.class); public MergeSortInnerJoinOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator leftChild, int[] leftJoinKeyPositions, int[] leftOutputSymbolIdx, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MergeSortLeftJoinOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MergeSortLeftJoinOperator.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MergeSortLeftJoinOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MergeSortLeftJoinOperator.java index be6cb2f3a51be..6461606095afb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MergeSortLeftJoinOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MergeSortLeftJoinOperator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +package org.apache.iotdb.calc.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.RamUsageEstimator; @@ -34,7 +34,7 @@ public class MergeSortLeftJoinOperator extends AbstractMergeSortJoinOperator { RamUsageEstimator.shallowSizeOfInstance(MergeSortLeftJoinOperator.class); public MergeSortLeftJoinOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator leftChild, int[] leftJoinKeyPositions, int[] leftOutputSymbolIdx, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MergeSortSemiJoinOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MergeSortSemiJoinOperator.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MergeSortSemiJoinOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MergeSortSemiJoinOperator.java index b21ed578965fe..35d9c061b38b9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MergeSortSemiJoinOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/MergeSortSemiJoinOperator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +package org.apache.iotdb.calc.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.join.merge.comparator.JoinKeyComparator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; @@ -40,7 +40,7 @@ public class MergeSortSemiJoinOperator extends AbstractMergeSortJoinOperator { private boolean rightHasNullValue = false; public MergeSortSemiJoinOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator leftChild, int leftJoinKeyPosition, int[] leftOutputSymbolIdx, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AbstractApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AbstractApproxMostFrequentAccumulator.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AbstractApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AbstractApproxMostFrequentAccumulator.java index 68128c94f58c5..07c640f95caad 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AbstractApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AbstractApproxMostFrequentAccumulator.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; import com.google.gson.Gson; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AbstractApproxPercentileAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AbstractApproxPercentileAccumulator.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AbstractApproxPercentileAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AbstractApproxPercentileAccumulator.java index df8b723638281..cec628de50a70 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AbstractApproxPercentileAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AbstractApproxPercentileAccumulator.java @@ -12,10 +12,10 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.TDigest; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.TDigest; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AccumulatorFactory.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AccumulatorFactory.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AccumulatorFactory.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AccumulatorFactory.java index 15b3d8da38fdd..48a1abc83f38e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AccumulatorFactory.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AccumulatorFactory.java @@ -17,44 +17,44 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; - +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; + +import org.apache.iotdb.calc.execution.aggregation.VarianceAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.BinaryGroupedApproxMostFrequentAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.BlobGroupedApproxMostFrequentAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.BooleanGroupedApproxMostFrequentAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.DoubleGroupedApproxMostFrequentAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.FloatGroupedApproxMostFrequentAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedApproxCountDistinctAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedApproxPercentileAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedApproxPercentileWithWeightAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedAvgAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedCountAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedCountAllAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedCountIfAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedExtremeAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedFirstAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedFirstByAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedLastAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedLastByAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedMaxAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedMaxByAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedMinAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedMinByAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedModeAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedSumAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedUserDefinedAggregateAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedVarianceAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.IntGroupedApproxMostFrequentAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.LongGroupedApproxMostFrequentAccumulator; import org.apache.iotdb.common.rpc.thrift.TAggregationType; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.MarkDistinctHash; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; +import org.apache.iotdb.commons.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; -import org.apache.iotdb.db.queryengine.execution.aggregation.VarianceAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.BinaryGroupedApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.BlobGroupedApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.BooleanGroupedApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.DoubleGroupedApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.FloatGroupedApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedApproxCountDistinctAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedApproxPercentileAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedApproxPercentileWithWeightAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedAvgAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedCountAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedCountAllAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedCountIfAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedExtremeAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedFirstAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedFirstByAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedLastAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedLastByAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedMaxAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedMaxByAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedMinAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedMinByAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedModeAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedSumAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedUserDefinedAggregateAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedVarianceAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.IntGroupedApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.LongGroupedApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.MarkDistinctHash; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; -import org.apache.iotdb.db.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.udf.api.customizer.parameter.FunctionArguments; import org.apache.iotdb.udf.api.relational.AggregateFunction; @@ -78,12 +78,12 @@ import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.planner.ir.GlobalTimePredicateExtractVisitor.isMeasurementColumn; +import static org.apache.iotdb.calc.plan.relational.planner.ir.GlobalTimePredicateExtractVisitor.isTimeColumn; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.FIRST; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.FIRST_BY; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.LAST; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.LAST_BY; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.GlobalTimePredicateExtractVisitor.isMeasurementColumn; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.GlobalTimePredicateExtractVisitor.isTimeColumn; import static org.apache.tsfile.read.common.type.IntType.INT32; public class AccumulatorFactory { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AggregationMask.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AggregationMask.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AggregationMask.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AggregationMask.java index 8b439f5d0d746..fd8e6db4e7d2f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AggregationMask.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AggregationMask.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.RunLengthEncodedColumn; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AggregationOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AggregationOperator.java similarity index 80% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AggregationOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AggregationOperator.java index d2ec8af83ffc3..e65ee82517d4c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AggregationOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AggregationOperator.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.Column; @@ -43,7 +43,7 @@ public class AggregationOperator implements ProcessOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(AggregationOperator.class); - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private final Operator child; @@ -61,7 +61,7 @@ public class AggregationOperator implements ProcessOperator { private boolean finished = false; public AggregationOperator( - OperatorContext operatorContext, Operator child, List aggregators) { + CommonOperatorContext operatorContext, Operator child, List aggregators) { this.operatorContext = operatorContext; this.child = child; this.aggregators = aggregators; @@ -69,11 +69,7 @@ public AggregationOperator( new TsBlockBuilder( aggregators.stream().map(TableAggregator::getType).collect(toImmutableList())); this.resultColumnsBuilder = resultBuilder.getValueColumnBuilders(); - this.memoryReservationManager = - operatorContext - .getDriverContext() - .getFragmentInstanceContext() - .getMemoryReservationContext(); + this.memoryReservationManager = operatorContext.getMemoryReservationContext(); } @Override @@ -111,7 +107,7 @@ public TsBlock next() throws Exception { finished = true; return TsBlock.wrapBlocksWithoutCopy( - 1, new RunLengthEncodedColumn(TableScanOperator.TIME_COLUMN_TEMPLATE, 1), valueColumns); + 1, new RunLengthEncodedColumn(CommonOperatorUtils.TIME_COLUMN_TEMPLATE, 1), valueColumns); } } @@ -127,7 +123,7 @@ public void close() throws Exception { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ApproxCountDistinctAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/ApproxCountDistinctAccumulator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ApproxCountDistinctAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/ApproxCountDistinctAccumulator.java index ef31759ee677b..5c2dfcf62d72c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ApproxCountDistinctAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/ApproxCountDistinctAccumulator.java @@ -12,10 +12,10 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.HyperLogLog; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.HyperLogLogStateFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.HyperLogLog; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.HyperLogLogStateFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -27,7 +27,7 @@ import org.apache.tsfile.write.UnSupportedDataTypeException; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.HyperLogLog.DEFAULT_STANDARD_ERROR; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.HyperLogLog.DEFAULT_STANDARD_ERROR; public class ApproxCountDistinctAccumulator implements TableAccumulator { private static final long INSTANCE_SIZE = diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ApproxPercentileAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/ApproxPercentileAccumulator.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ApproxPercentileAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/ApproxPercentileAccumulator.java index 2f95942caa4a1..3fb28f95d54c4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ApproxPercentileAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/ApproxPercentileAccumulator.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ApproxPercentileWithWeightAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/ApproxPercentileWithWeightAccumulator.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ApproxPercentileWithWeightAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/ApproxPercentileWithWeightAccumulator.java index f52165472f7ec..604971b0d6b0a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ApproxPercentileWithWeightAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/ApproxPercentileWithWeightAccumulator.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AvgAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AvgAccumulator.java similarity index 99% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AvgAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AvgAccumulator.java index 7bb03faadeb7d..9d142151a1053 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/AvgAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/AvgAccumulator.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/BinaryApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/BinaryApproxMostFrequentAccumulator.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/BinaryApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/BinaryApproxMostFrequentAccumulator.java index 1fe0370a4dba4..43be7d759f516 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/BinaryApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/BinaryApproxMostFrequentAccumulator.java @@ -12,12 +12,12 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.Counter; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.Counter; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.utils.Binary; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/BlobApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/BlobApproxMostFrequentAccumulator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/BlobApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/BlobApproxMostFrequentAccumulator.java index 67ce419e2839c..f0c8a768f4306 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/BlobApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/BlobApproxMostFrequentAccumulator.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import com.google.gson.Gson; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/BooleanApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/BooleanApproxMostFrequentAccumulator.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/BooleanApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/BooleanApproxMostFrequentAccumulator.java index f080157e82f94..94c01c33abdb6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/BooleanApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/BooleanApproxMostFrequentAccumulator.java @@ -12,12 +12,12 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.Counter; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.Counter; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/CountAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/CountAccumulator.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/CountAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/CountAccumulator.java index ce85c22363232..68918a1e68ab8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/CountAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/CountAccumulator.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/CountAllAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/CountAllAccumulator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/CountAllAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/CountAllAccumulator.java index f72cea243580d..f7bae4c3bba55 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/CountAllAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/CountAllAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/CountIfAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/CountIfAccumulator.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/CountIfAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/CountIfAccumulator.java index 1aff9106c7284..db7e958ddc799 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/CountIfAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/CountIfAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/DoubleApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/DoubleApproxMostFrequentAccumulator.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/DoubleApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/DoubleApproxMostFrequentAccumulator.java index 52444a88d9a27..acde2e22314c1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/DoubleApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/DoubleApproxMostFrequentAccumulator.java @@ -12,12 +12,12 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.Counter; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.Counter; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ExtremeAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/ExtremeAccumulator.java similarity index 99% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ExtremeAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/ExtremeAccumulator.java index f2fdf2439bae3..85fbee4bd5ea9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/ExtremeAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/ExtremeAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FirstAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FirstAccumulator.java index d1f04cfdc920f..778b6b9253137 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FirstAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -36,7 +36,7 @@ import java.nio.charset.StandardCharsets; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.Utils.serializeTimeValueWithNull; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.Utils.serializeTimeValueWithNull; public class FirstAccumulator implements TableAccumulator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstByAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FirstByAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstByAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FirstByAccumulator.java index 90057390a9b25..81482c897b41a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstByAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FirstByAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -35,7 +35,7 @@ import java.nio.charset.StandardCharsets; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.Utils.serializeTimeValueWithNull; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.Utils.serializeTimeValueWithNull; public class FirstByAccumulator implements TableAccumulator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstByDescAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FirstByDescAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstByDescAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FirstByDescAccumulator.java index c6f310048adb0..c45a9255dc2dc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstByDescAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FirstByDescAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstDescAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FirstDescAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstDescAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FirstDescAccumulator.java index 17103ab683898..1066c91614562 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FirstDescAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FirstDescAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FloatApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FloatApproxMostFrequentAccumulator.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FloatApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FloatApproxMostFrequentAccumulator.java index 5515158516628..7c3d581e597f9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/FloatApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/FloatApproxMostFrequentAccumulator.java @@ -12,12 +12,12 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.Counter; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.Counter; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/IntApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/IntApproxMostFrequentAccumulator.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/IntApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/IntApproxMostFrequentAccumulator.java index 283cbd18d6997..76ab725dd1034 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/IntApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/IntApproxMostFrequentAccumulator.java @@ -12,12 +12,12 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.Counter; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.Counter; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LastAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LastAccumulator.java index 4da324e8b0372..0899f38993d6d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LastAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -36,7 +36,7 @@ import java.nio.charset.StandardCharsets; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.Utils.serializeTimeValueWithNull; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.Utils.serializeTimeValueWithNull; public class LastAccumulator implements TableAccumulator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastByAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LastByAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastByAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LastByAccumulator.java index 711b5efd13a2e..580bebcc59160 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastByAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LastByAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -33,7 +33,7 @@ import org.apache.tsfile.write.UnSupportedDataTypeException; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.Utils.serializeTimeValueWithNull; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.Utils.serializeTimeValueWithNull; public class LastByAccumulator implements TableAccumulator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastByDescAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LastByDescAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastByDescAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LastByDescAccumulator.java index d664f2286d6a8..edb7165f9c41c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastByDescAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LastByDescAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastDescAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LastDescAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastDescAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LastDescAccumulator.java index 80c1227056f49..de1d6dfd18ef5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LastDescAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LastDescAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LongApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LongApproxMostFrequentAccumulator.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LongApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LongApproxMostFrequentAccumulator.java index 348a6aeb646ef..bbb11f213e7c2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/LongApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/LongApproxMostFrequentAccumulator.java @@ -12,12 +12,12 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.Counter; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.Counter; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MaskedRecordIterator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/MaskedRecordIterator.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MaskedRecordIterator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/MaskedRecordIterator.java index 48095927eda56..2534b995a2883 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MaskedRecordIterator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/MaskedRecordIterator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MaxAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/MaxAccumulator.java similarity index 99% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MaxAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/MaxAccumulator.java index 373fc9bd26437..26b599fbb730f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MaxAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/MaxAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MinAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/MinAccumulator.java similarity index 99% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MinAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/MinAccumulator.java index 8f2a7113b7bcc..00a922c4eac47 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/MinAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/MinAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/RecordIterator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/RecordIterator.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/RecordIterator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/RecordIterator.java index fcb0bf93cfd9b..e0e27aa763cac 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/RecordIterator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/RecordIterator.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; +import org.apache.iotdb.calc.utils.ObjectTypeUtils; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; -import org.apache.iotdb.db.utils.ObjectTypeUtils; import org.apache.iotdb.udf.api.relational.access.Record; import org.apache.iotdb.udf.api.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/SumAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/SumAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/SumAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/SumAccumulator.java index 6f42e1a9995f3..0c392ebaa2b68 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/SumAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/SumAccumulator.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableAccumulator.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableAccumulator.java index 7858c53c0331b..9699ba1782933 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableAggregator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableAggregator.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableAggregator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableAggregator.java index 955532cea6d71..1df3f6fb159b4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableAggregator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableAggregator.java @@ -17,9 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.calc.metric.QueryExecutionMetricSet; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import com.google.common.primitives.Ints; import org.apache.tsfile.block.column.Column; @@ -34,11 +36,13 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator.QUERY_EXECUTION_METRICS; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; -import static org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet.AGGREGATION_FROM_RAW_DATA; +import static org.apache.iotdb.calc.metric.QueryExecutionMetricSet.AGGREGATION_FROM_RAW_DATA; public class TableAggregator { + + public static final QueryExecutionMetricSet QUERY_EXECUTION_METRICS = + QueryExecutionMetricSet.getInstance(); + private final TableAccumulator accumulator; private final AggregationNode.Step step; private final TSDataType outputType; @@ -74,7 +78,8 @@ public void processBlock(TsBlock block) { if (arguments.length == 0) { arguments = new Column[] { - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, block.getPositionCount()) + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, block.getPositionCount()) }; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableMaxByAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableMaxByAccumulator.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableMaxByAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableMaxByAccumulator.java index ef0ebbb2b7955..6fb43a11b67a6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableMaxByAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableMaxByAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.Binary; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableMaxMinByBaseAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableMaxMinByBaseAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableMaxMinByBaseAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableMaxMinByBaseAccumulator.java index c6002304b1070..d6df22858df4b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableMaxMinByBaseAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableMaxMinByBaseAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -35,8 +35,8 @@ import java.util.Collections; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.Utils.calcTypeSize; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.Utils.serializeValue; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.Utils.calcTypeSize; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.Utils.serializeValue; /** max(x,y) returns the value of x associated with the maximum value of y over all input values. */ public abstract class TableMaxMinByBaseAccumulator implements TableAccumulator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableMinByAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableMinByAccumulator.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableMinByAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableMinByAccumulator.java index d4fbadae512e2..4de2b2e66b834 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableMinByAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableMinByAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.Binary; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableModeAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableModeAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableModeAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableModeAccumulator.java index adb47e41231a7..c7d1a13039110 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableModeAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableModeAccumulator.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.conf.IoTDBDescriptor; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -36,15 +36,15 @@ import java.util.Map; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.Utils.UNSUPPORTED_TYPE_MESSAGE; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.Utils.serializeBinaryValue; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.Utils.UNSUPPORTED_TYPE_MESSAGE; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.Utils.serializeBinaryValue; import static org.apache.tsfile.utils.BytesUtils.bytesToBool; import static org.apache.tsfile.utils.BytesUtils.bytesToLongFromOffset; public class TableModeAccumulator implements TableAccumulator { private final int MAP_SIZE_THRESHOLD = - IoTDBDescriptor.getInstance().getConfig().getModeMapSizeThreshold(); + CommonDescriptor.getInstance().getConfig().getModeMapSizeThreshold(); private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(TableModeAccumulator.class); private final TSDataType seriesDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableVarianceAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableVarianceAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableVarianceAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableVarianceAccumulator.java index 92ea803f2d0ac..ef186d8d3fbcb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/TableVarianceAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/TableVarianceAccumulator.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; -import org.apache.iotdb.db.queryengine.execution.aggregation.VarianceAccumulator; +import org.apache.iotdb.calc.execution.aggregation.VarianceAccumulator; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/UserDefinedAggregateFunctionAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/UserDefinedAggregateFunctionAccumulator.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/UserDefinedAggregateFunctionAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/UserDefinedAggregateFunctionAccumulator.java index 70e1c0c5d4432..234b1bae2580e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/UserDefinedAggregateFunctionAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/UserDefinedAggregateFunctionAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.iotdb.udf.api.State; import org.apache.iotdb.udf.api.customizer.analysis.AggregateFunctionAnalysis; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/Utils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/Utils.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/Utils.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/Utils.java index c6c4b365637ca..a74d402f54088 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/Utils.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/Utils.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.Binary; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ApproxMostFrequentBucketDeserializer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ApproxMostFrequentBucketDeserializer.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ApproxMostFrequentBucketDeserializer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ApproxMostFrequentBucketDeserializer.java index 6a2b4ad4d2b7a..cdcb48938d6b0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ApproxMostFrequentBucketDeserializer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ApproxMostFrequentBucketDeserializer.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; import java.nio.ByteBuffer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ApproxMostFrequentBucketSerializer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ApproxMostFrequentBucketSerializer.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ApproxMostFrequentBucketSerializer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ApproxMostFrequentBucketSerializer.java index 87377252bf3a1..3aa721b24f24f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ApproxMostFrequentBucketSerializer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ApproxMostFrequentBucketSerializer.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; import java.nio.ByteBuffer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/Counter.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/Counter.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/Counter.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/Counter.java index 319c8bc8e31c5..93d1c9514478e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/Counter.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/Counter.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; import java.io.Externalizable; import java.io.IOException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/DoublyLinkedList.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/DoublyLinkedList.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/DoublyLinkedList.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/DoublyLinkedList.java index 2aa2e47efcdae..ef4bf76496b1e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/DoublyLinkedList.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/DoublyLinkedList.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; import java.util.ConcurrentModificationException; import java.util.Iterator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ExternalizableUtil.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ExternalizableUtil.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ExternalizableUtil.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ExternalizableUtil.java index e0de4b6e66ffe..0f8bbd56a9379 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ExternalizableUtil.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ExternalizableUtil.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; import java.io.ByteArrayOutputStream; import java.io.Externalizable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/HyperLogLog.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/HyperLogLog.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/HyperLogLog.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/HyperLogLog.java index e4ffb4a71880c..588f8fdb9baab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/HyperLogLog.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/HyperLogLog.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/HyperLogLogStateFactory.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/HyperLogLogStateFactory.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/HyperLogLogStateFactory.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/HyperLogLogStateFactory.java index b7e88d0c3a79a..77cf63096e31a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/HyperLogLogStateFactory.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/HyperLogLogStateFactory.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.HyperLogLogBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.HyperLogLogBigArray; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ITopK.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ITopK.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ITopK.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ITopK.java index 8624551aa5415..560ae76511989 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ITopK.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ITopK.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ListNode2.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ListNode2.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ListNode2.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ListNode2.java index 09c5c7d449730..57683f9ebceab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/ListNode2.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/ListNode2.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; public class ListNode2 { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/Pair.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/Pair.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/Pair.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/Pair.java index 3bb4d8000f0be..efa9ec8386da6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/Pair.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/Pair.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; public class Pair { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/SpaceSaving.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/SpaceSaving.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/SpaceSaving.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/SpaceSaving.java index 5f5cddf574725..640c81d7908d3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/SpaceSaving.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/SpaceSaving.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; import com.google.common.collect.ImmutableMap; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/SpaceSavingByteCalculator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/SpaceSavingByteCalculator.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/SpaceSavingByteCalculator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/SpaceSavingByteCalculator.java index a2388cf02c236..617250a17d15c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/SpaceSavingByteCalculator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/SpaceSavingByteCalculator.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/SpaceSavingStateFactory.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/SpaceSavingStateFactory.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/SpaceSavingStateFactory.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/SpaceSavingStateFactory.java index 4a13fc316c610..82ad8411b5cf8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/SpaceSavingStateFactory.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/SpaceSavingStateFactory.java @@ -12,14 +12,14 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; import org.apache.tsfile.utils.RamUsageEstimator; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving.getDefaultEstimatedSize; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving.getDefaultEstimatedSize; public class SpaceSavingStateFactory { public static SingleSpaceSavingState createSingleState() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/StreamSummary.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/StreamSummary.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/StreamSummary.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/StreamSummary.java index afd1c7468ced6..e91d8c4bd51e6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/StreamSummary.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/StreamSummary.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; import java.io.ByteArrayInputStream; import java.io.Externalizable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/TDigest.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/TDigest.java similarity index 99% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/TDigest.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/TDigest.java index f240c156c5234..7578238a84a5f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/approximate/TDigest.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/approximate/TDigest.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/AbstractGroupedApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/AbstractGroupedApproxMostFrequentAccumulator.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/AbstractGroupedApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/AbstractGroupedApproxMostFrequentAccumulator.java index 30542c0e87586..6a8a33079f296 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/AbstractGroupedApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/AbstractGroupedApproxMostFrequentAccumulator.java @@ -12,10 +12,10 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSavingStateFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; import com.google.gson.Gson; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/AbstractGroupedApproxPercentileAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/AbstractGroupedApproxPercentileAccumulator.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/AbstractGroupedApproxPercentileAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/AbstractGroupedApproxPercentileAccumulator.java index 4350c7a7aed2f..dd02ccda123e5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/AbstractGroupedApproxPercentileAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/AbstractGroupedApproxPercentileAccumulator.java @@ -12,11 +12,11 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.TDigest; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.TDigestBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.TDigest; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.TDigestBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/BinaryGroupedApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/BinaryGroupedApproxMostFrequentAccumulator.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/BinaryGroupedApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/BinaryGroupedApproxMostFrequentAccumulator.java index 85a39f1b51432..e70614133edd7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/BinaryGroupedApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/BinaryGroupedApproxMostFrequentAccumulator.java @@ -12,13 +12,13 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.BinaryApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.BinaryApproxMostFrequentAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.utils.Binary; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/BlobGroupedApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/BlobGroupedApproxMostFrequentAccumulator.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/BlobGroupedApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/BlobGroupedApproxMostFrequentAccumulator.java index 1fb15d57444b6..0fd2de97e24ae 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/BlobGroupedApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/BlobGroupedApproxMostFrequentAccumulator.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; import com.google.gson.Gson; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/BooleanGroupedApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/BooleanGroupedApproxMostFrequentAccumulator.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/BooleanGroupedApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/BooleanGroupedApproxMostFrequentAccumulator.java index 59e01206d4364..2678bc4d7d841 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/BooleanGroupedApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/BooleanGroupedApproxMostFrequentAccumulator.java @@ -12,13 +12,13 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.BooleanApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.BooleanApproxMostFrequentAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/DoubleGroupedApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/DoubleGroupedApproxMostFrequentAccumulator.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/DoubleGroupedApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/DoubleGroupedApproxMostFrequentAccumulator.java index 94fbc900855fc..fd8b19d2ed0ae 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/DoubleGroupedApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/DoubleGroupedApproxMostFrequentAccumulator.java @@ -12,13 +12,13 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.DoubleApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.DoubleApproxMostFrequentAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/FloatGroupedApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/FloatGroupedApproxMostFrequentAccumulator.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/FloatGroupedApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/FloatGroupedApproxMostFrequentAccumulator.java index d463f7c280802..2df414c1dc623 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/FloatGroupedApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/FloatGroupedApproxMostFrequentAccumulator.java @@ -12,13 +12,13 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.FloatApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.FloatApproxMostFrequentAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedAccumulator.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedAccumulator.java index c9c0c73d5c22d..0ec85621ac97b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedAccumulator.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAggregator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedAggregator.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAggregator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedAggregator.java index e416d4f43f0ce..927d0249682fc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAggregator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedAggregator.java @@ -17,10 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import com.google.common.primitives.Ints; import org.apache.tsfile.block.column.Column; @@ -34,7 +35,6 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; public class GroupedAggregator { private final GroupedAccumulator accumulator; @@ -70,7 +70,10 @@ public void processBlock(int groupCount, int[] groupIds, TsBlock block) { // process count(*) if (arguments.length == 0) { arguments = - new Column[] {new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, block.getPositionCount())}; + new Column[] { + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, block.getPositionCount()) + }; } if (step.isInputRaw()) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedApproxCountDistinctAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedApproxCountDistinctAccumulator.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedApproxCountDistinctAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedApproxCountDistinctAccumulator.java index 9fac50c2ad24c..c2422fbd3e3ab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedApproxCountDistinctAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedApproxCountDistinctAccumulator.java @@ -12,12 +12,12 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.HyperLogLog; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.HyperLogLogStateFactory; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.HyperLogLogBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.HyperLogLog; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.HyperLogLogStateFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.HyperLogLogBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -26,7 +26,7 @@ import org.apache.tsfile.utils.RamUsageEstimator; import org.apache.tsfile.write.UnSupportedDataTypeException; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.HyperLogLog.DEFAULT_STANDARD_ERROR; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.HyperLogLog.DEFAULT_STANDARD_ERROR; public class GroupedApproxCountDistinctAccumulator implements GroupedAccumulator { private static final long INSTANCE_SIZE = diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedApproxPercentileAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedApproxPercentileAccumulator.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedApproxPercentileAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedApproxPercentileAccumulator.java index 9a2bfedf4eaf0..7899b963ea3c3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedApproxPercentileAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedApproxPercentileAccumulator.java @@ -12,10 +12,10 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.TDigest; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.TDigest; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedApproxPercentileWithWeightAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedApproxPercentileWithWeightAccumulator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedApproxPercentileWithWeightAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedApproxPercentileWithWeightAccumulator.java index b7c587df0d0b4..d44b8a7d06710 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedApproxPercentileWithWeightAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedApproxPercentileWithWeightAccumulator.java @@ -12,11 +12,11 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.TDigest; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.TDigest; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAvgAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedAvgAccumulator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAvgAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedAvgAccumulator.java index 4e177c352b7de..0f23f7c913bc9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedAvgAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedAvgAccumulator.java @@ -16,11 +16,11 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedCountAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedCountAccumulator.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedCountAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedCountAccumulator.java index 7ffc10a08a4f4..5420dbd06054c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedCountAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedCountAccumulator.java @@ -16,10 +16,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedCountAllAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedCountAllAccumulator.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedCountAllAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedCountAllAccumulator.java index afa5c1e34e057..abd093ad22d2e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedCountAllAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedCountAllAccumulator.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedCountIfAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedCountIfAccumulator.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedCountIfAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedCountIfAccumulator.java index b7ab8b3882c85..c6a87c7c4d880 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedCountIfAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedCountIfAccumulator.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedExtremeAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedExtremeAccumulator.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedExtremeAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedExtremeAccumulator.java index f53ea59314231..bd5aca876b7af 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedExtremeAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedExtremeAccumulator.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedFirstAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedFirstAccumulator.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedFirstAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedFirstAccumulator.java index 456b46c24ac19..b0c52d525018c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedFirstAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedFirstAccumulator.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; - -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; + +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedFirstByAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedFirstByAccumulator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedFirstByAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedFirstByAccumulator.java index fa713d07c9cb6..8364971fcea13 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedFirstByAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedFirstByAccumulator.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; - -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; + +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedLastAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedLastAccumulator.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedLastAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedLastAccumulator.java index 632e9fdb50ee0..c5696464da464 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedLastAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedLastAccumulator.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; - -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; + +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedLastByAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedLastByAccumulator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedLastByAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedLastByAccumulator.java index cb628858d63ca..ab6ddae16cc72 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedLastByAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedLastByAccumulator.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; - -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; + +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMaxAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMaxAccumulator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMaxAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMaxAccumulator.java index ed47c96d25137..119501e421391 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMaxAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMaxAccumulator.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; - -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; + +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMaxByAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMaxByAccumulator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMaxByAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMaxByAccumulator.java index d46ad3ce41172..47c7297d54e58 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMaxByAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMaxByAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.Binary; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMaxMinByBaseAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMaxMinByBaseAccumulator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMaxMinByBaseAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMaxMinByBaseAccumulator.java index b9b25f6271552..0f59a575f45c6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMaxMinByBaseAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMaxMinByBaseAccumulator.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; - -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; + +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMinAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMinAccumulator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMinAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMinAccumulator.java index 8fa9b4d8fa018..1993e2142fc76 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMinAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMinAccumulator.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; - -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; + +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BinaryBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.FloatBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.IntBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMinByAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMinByAccumulator.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMinByAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMinByAccumulator.java index 3b8d48bbd4955..46f14dac9bf50 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedMinByAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedMinByAccumulator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.Binary; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedModeAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedModeAccumulator.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedModeAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedModeAccumulator.java index a5bf82c5f409b..4e6511ffff843 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedModeAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedModeAccumulator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.MapBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.MapBigArray; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -39,8 +39,8 @@ import java.util.Map; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.Utils.UNSUPPORTED_TYPE_MESSAGE; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.Utils.serializeBinaryValue; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.Utils.UNSUPPORTED_TYPE_MESSAGE; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.Utils.serializeBinaryValue; import static org.apache.tsfile.utils.BytesUtils.bytesToBool; import static org.apache.tsfile.utils.BytesUtils.bytesToLongFromOffset; import static org.apache.tsfile.utils.TsPrimitiveType.getByType; @@ -48,7 +48,7 @@ public class GroupedModeAccumulator implements GroupedAccumulator { private final int MAP_SIZE_THRESHOLD = - IoTDBDescriptor.getInstance().getConfig().getModeMapSizeThreshold(); + CommonDescriptor.getInstance().getConfig().getModeMapSizeThreshold(); private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(GroupedModeAccumulator.class); private final TSDataType seriesDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedSumAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedSumAccumulator.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedSumAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedSumAccumulator.java index 0c0325ebd0b30..5c7673d7c7502 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedSumAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedSumAccumulator.java @@ -16,11 +16,11 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BooleanBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedUserDefinedAggregateAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedUserDefinedAggregateAccumulator.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedUserDefinedAggregateAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedUserDefinedAggregateAccumulator.java index 9ac6b48db7cc4..4b2d13b4adcc3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedUserDefinedAggregateAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedUserDefinedAggregateAccumulator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.MaskedRecordIterator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.RecordIterator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.ObjectBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.MaskedRecordIterator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.RecordIterator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.ObjectBigArray; import org.apache.iotdb.udf.api.State; import org.apache.iotdb.udf.api.relational.AggregateFunction; import org.apache.iotdb.udf.api.utils.ResultValue; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedVarianceAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedVarianceAccumulator.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedVarianceAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedVarianceAccumulator.java index cb6123b636f33..75446b2cfab11 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/GroupedVarianceAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/GroupedVarianceAccumulator.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.aggregation.VarianceAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; +import org.apache.iotdb.calc.execution.aggregation.VarianceAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.DoubleBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.LongBigArray; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/HashAggregationOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/HashAggregationOperator.java similarity index 82% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/HashAggregationOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/HashAggregationOperator.java index ce7e91f84485a..997afd10f707d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/HashAggregationOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/HashAggregationOperator.java @@ -17,16 +17,16 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.AbstractOperator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.builder.HashAggregationBuilder; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.builder.InMemoryHashAggregationBuilder; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.calc.execution.operator.AbstractOperator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.builder.HashAggregationBuilder; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.builder.InMemoryHashAggregationBuilder; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; @@ -38,8 +38,8 @@ import java.util.Optional; import static com.google.common.base.Preconditions.checkState; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory.NOOP; -import static org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter.CURRENT_USED_MEMORY; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.CURRENT_USED_MEMORY; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory.NOOP; public class HashAggregationOperator extends AbstractOperator { private static final long INSTANCE_SIZE = @@ -69,7 +69,7 @@ public class HashAggregationOperator extends AbstractOperator { private boolean finished = false; public HashAggregationOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator child, List groupByTypes, List groupByChannels, @@ -89,11 +89,7 @@ public HashAggregationOperator( this.maxPartialMemory = maxPartialMemory; this.spillEnabled = spillEnabled; this.unspillMemoryLimit = unspillMemoryLimit; - this.memoryReservationManager = - operatorContext - .getDriverContext() - .getFragmentInstanceContext() - .getMemoryReservationContext(); + this.memoryReservationManager = operatorContext.getMemoryReservationContext(); } @Override @@ -199,7 +195,7 @@ public void close() throws Exception { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/IntGroupedApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/IntGroupedApproxMostFrequentAccumulator.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/IntGroupedApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/IntGroupedApproxMostFrequentAccumulator.java index 42ea037aecf9e..243c9704a08b8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/IntGroupedApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/IntGroupedApproxMostFrequentAccumulator.java @@ -12,13 +12,13 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.IntApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.IntApproxMostFrequentAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/LongGroupedApproxMostFrequentAccumulator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/LongGroupedApproxMostFrequentAccumulator.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/LongGroupedApproxMostFrequentAccumulator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/LongGroupedApproxMostFrequentAccumulator.java index 2e2d3dfb3c6ea..50899d0d25172 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/LongGroupedApproxMostFrequentAccumulator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/LongGroupedApproxMostFrequentAccumulator.java @@ -12,13 +12,13 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationMask; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.LongApproxMostFrequentAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationMask; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.LongApproxMostFrequentAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.SpaceSavingBigArray; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingAggregationOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/StreamingAggregationOperator.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingAggregationOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/StreamingAggregationOperator.java index 6f151ceef22b2..7609ac32926a4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingAggregationOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/StreamingAggregationOperator.java @@ -17,16 +17,16 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.AbstractOperator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.TableAggregator; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; -import org.apache.iotdb.db.utils.datastructure.SortKey; +import org.apache.iotdb.calc.execution.operator.AbstractOperator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.TableAggregator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import com.google.common.primitives.Ints; import com.google.common.util.concurrent.ListenableFuture; @@ -74,7 +74,7 @@ public class StreamingAggregationOperator extends AbstractOperator { private final Deque outputs = new LinkedList<>(); public StreamingAggregationOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator child, List groupByTypes, List groupByChannels, @@ -206,8 +206,7 @@ private void evaluateAndFlushGroup(TsBlock page, int position, boolean lastCalcu outputs.add( resultBuilder.build( new RunLengthEncodedColumn( - AbstractTableScanOperator.TIME_COLUMN_TEMPLATE, - resultBuilder.getPositionCount()))); + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount()))); resultBuilder.reset(); } @@ -257,7 +256,7 @@ public void close() throws Exception { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java index ee58c827e4640..49c41bf7fa30f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/StreamingHashAggregationOperator.java @@ -17,17 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; - -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.AbstractOperator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.builder.HashAggregationBuilder; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.builder.InMemoryHashAggregationBuilder; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.utils.datastructure.SortKey; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped; + +import org.apache.iotdb.calc.execution.operator.AbstractOperator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.builder.HashAggregationBuilder; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.builder.InMemoryHashAggregationBuilder; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import com.google.common.primitives.Ints; import com.google.common.util.concurrent.ListenableFuture; @@ -45,9 +45,9 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory.NOOP; -import static org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter.CURRENT_USED_MEMORY; -import static org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter.MAX_USED_MEMORY; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.CURRENT_USED_MEMORY; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.MAX_USED_MEMORY; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory.NOOP; public class StreamingHashAggregationOperator extends AbstractOperator { private static final long INSTANCE_SIZE = @@ -87,7 +87,7 @@ public class StreamingHashAggregationOperator extends AbstractOperator { private long maxUsedMemory; public StreamingHashAggregationOperator( - OperatorContext operatorContext, + CommonOperatorContext operatorContext, Operator child, List preGroupedChannels, List preGroupedIndexInResult, @@ -127,11 +127,7 @@ public StreamingHashAggregationOperator( operatorContext, maxPartialMemory, NOOP); - this.memoryReservationManager = - operatorContext - .getDriverContext() - .getFragmentInstanceContext() - .getMemoryReservationContext(); + this.memoryReservationManager = operatorContext.getMemoryReservationContext(); updateOccupiedMemorySize(); } @@ -327,7 +323,7 @@ public void close() throws Exception { } @Override - public OperatorContext getOperatorContext() { + public CommonOperatorContext getOperatorContext() { return operatorContext; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/BigArrays.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/BigArrays.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/BigArrays.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/BigArrays.java index ffc84077341fa..b86a8dae1840f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/BigArrays.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/BigArrays.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; // Note: this code was forked from fastutil (http://fastutil.di.unimi.it/) // Copyright (C) 2010-2013 Sebastiano Vigna diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/BinaryBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/BinaryBigArray.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/BinaryBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/BinaryBigArray.java index f008e704618c0..3996b19725431 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/BinaryBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/BinaryBigArray.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; import org.apache.tsfile.utils.Binary; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/BooleanBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/BooleanBigArray.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/BooleanBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/BooleanBigArray.java index 9439cf84020b6..267b918fad5e9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/BooleanBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/BooleanBigArray.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; import java.util.Arrays; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOfInstance; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOfBooleanArray; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/ByteBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/ByteBigArray.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/ByteBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/ByteBigArray.java index aeea9f985e698..321bca3c4b5ee 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/ByteBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/ByteBigArray.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; import java.util.Arrays; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOfInstance; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOfByteArray; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/DoubleBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/DoubleBigArray.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/DoubleBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/DoubleBigArray.java index df6b42005543c..492774879a8b7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/DoubleBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/DoubleBigArray.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; import java.util.Arrays; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOfInstance; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOfDoubleArray; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/FloatBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/FloatBigArray.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/FloatBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/FloatBigArray.java index e10c1a26710cc..d8597140c179e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/FloatBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/FloatBigArray.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; import java.util.Arrays; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOfInstance; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOfFloatArray; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/HyperLogLogBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/HyperLogLogBigArray.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/HyperLogLogBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/HyperLogLogBigArray.java index eeca4f849ee99..7d6b3e4c6ec94 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/HyperLogLogBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/HyperLogLogBigArray.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.HyperLogLog; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.HyperLogLog; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOfInstance; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/IntArrayFIFOQueue.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/IntArrayFIFOQueue.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/IntArrayFIFOQueue.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/IntArrayFIFOQueue.java index b80b33ccde37e..94eca74cbdc22 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/IntArrayFIFOQueue.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/IntArrayFIFOQueue.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; import java.io.IOException; import java.io.ObjectInputStream; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/IntBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/IntBigArray.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/IntBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/IntBigArray.java index e124612b721ce..236bd7d55a02f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/IntBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/IntBigArray.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; import java.util.Arrays; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOfInstance; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOfIntArray; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/IntBigArrays.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/IntBigArrays.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/IntBigArrays.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/IntBigArrays.java index fbc2a4f185276..c68341c8c77a1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/IntBigArrays.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/IntBigArrays.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SHIFT; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SHIFT; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; // Note: this code was forked from fastutil (http://fastutil.di.unimi.it/) // Copyright (C) 2010-2013 Sebastiano Vigna diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/IntComparator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/IntComparator.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/IntComparator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/IntComparator.java index e562d49b0ed6a..d45b5e2c8098a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/IntComparator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/IntComparator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; // Note: this code was forked from fastutil (http://fastutil.di.unimi.it/) // Copyright (C) 2010-2013 Sebastiano Vigna diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/LongBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/LongBigArray.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/LongBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/LongBigArray.java index 5f35525d1e4af..7a65b49218b3d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/LongBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/LongBigArray.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; import java.util.Arrays; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOfInstance; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOfLongArray; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/LongBigArrayFIFOQueue.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/LongBigArrayFIFOQueue.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/LongBigArrayFIFOQueue.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/LongBigArrayFIFOQueue.java index 24c25dfb62c63..a9232024ef55c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/LongBigArrayFIFOQueue.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/LongBigArrayFIFOQueue.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; import java.util.NoSuchElementException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/MapBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/MapBigArray.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/MapBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/MapBigArray.java index 1be73705b31a3..f6e4c8d750bc4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/MapBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/MapBigArray.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; import org.apache.tsfile.utils.TsPrimitiveType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/ObjectBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/ObjectBigArray.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/ObjectBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/ObjectBigArray.java index b5585824e431d..0c5330b5a614b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/ObjectBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/ObjectBigArray.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; import java.util.Arrays; import java.util.function.Consumer; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOfInstance; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOfObjectArray; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/ShortBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/ShortBigArray.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/ShortBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/ShortBigArray.java index 38bdb76b7331d..ce4b5bb69b8b9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/ShortBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/ShortBigArray.java @@ -17,16 +17,16 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; import com.google.common.primitives.Shorts; import java.util.Arrays; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.INITIAL_SEGMENTS; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.SEGMENT_SIZE; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.offset; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array.BigArrays.segment; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOfInstance; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOfShortArray; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/SpaceSavingBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/SpaceSavingBigArray.java similarity index 80% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/SpaceSavingBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/SpaceSavingBigArray.java index 1c120271d95ea..959398873e6b4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/SpaceSavingBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/SpaceSavingBigArray.java @@ -12,12 +12,12 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.ApproxMostFrequentBucketDeserializer; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.ApproxMostFrequentBucketSerializer; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSaving; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.SpaceSavingByteCalculator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.ApproxMostFrequentBucketDeserializer; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.ApproxMostFrequentBucketSerializer; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSaving; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.SpaceSavingByteCalculator; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOfInstance; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/TDigestBigArray.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/TDigestBigArray.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/TDigestBigArray.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/TDigestBigArray.java index 81ab7cf92141a..06eab4e57e1d8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/array/TDigestBigArray.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/array/TDigestBigArray.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.array; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.array; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.approximate.TDigest; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.approximate.TDigest; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.shallowSizeOfInstance; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/builder/HashAggregationBuilder.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/builder/HashAggregationBuilder.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/builder/HashAggregationBuilder.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/builder/HashAggregationBuilder.java index 0fc8ab0a4d9b3..660ed74adb685 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/builder/HashAggregationBuilder.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/builder/HashAggregationBuilder.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.builder; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.builder; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/builder/InMemoryHashAggregationBuilder.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/builder/InMemoryHashAggregationBuilder.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/builder/InMemoryHashAggregationBuilder.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/builder/InMemoryHashAggregationBuilder.java index 3103055023b0e..f372717a92fab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/builder/InMemoryHashAggregationBuilder.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/operator/source/relational/aggregation/grouped/builder/InMemoryHashAggregationBuilder.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.builder; +package org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.builder; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedAggregator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedAggregator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; @@ -47,7 +47,7 @@ import java.util.stream.IntStream; import java.util.stream.Stream; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash.createGroupByHash; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash.createGroupByHash; public class InMemoryHashAggregationBuilder implements HashAggregationBuilder { private final int[] groupByChannels; @@ -66,7 +66,7 @@ public class InMemoryHashAggregationBuilder implements HashAggregationBuilder { private final int expectedGroups; private final Optional hashChannel; - private final OperatorContext operatorContext; + private final CommonOperatorContext operatorContext; private static final String CURRENT_GROUP_NUMBER = "CurrentGroupNumber"; private static final String MAX_GROUP_NUMBER = "MaxGroupNumber"; @@ -79,7 +79,7 @@ public InMemoryHashAggregationBuilder( List groupByTypes, List groupByChannels, Optional hashChannel, - OperatorContext operatorContext, + CommonOperatorContext operatorContext, long maxPartialMemory, UpdateMemory updateMemory) { this( @@ -102,7 +102,7 @@ public InMemoryHashAggregationBuilder( List groupByTypes, List groupByChannels, Optional hashChannel, - OperatorContext operatorContext, + CommonOperatorContext operatorContext, long maxPartialMemory, Optional unspillIntermediateChannelOffset, UpdateMemory updateMemory) { @@ -252,7 +252,7 @@ private TsBlock buildResult(Iterator groupIds) { return TsBlock.wrapBlocksWithoutCopy( pageBuilder.getPositionCount(), new RunLengthEncodedColumn( - TableScanOperator.TIME_COLUMN_TEMPLATE, pageBuilder.getPositionCount()), + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, pageBuilder.getPositionCount()), Arrays.stream(pageBuilder.getValueColumnBuilders()) .map(ColumnBuilder::build) .toArray(Column[]::new)); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/relational/ColumnTransformerBuilder.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/relational/ColumnTransformerBuilder.java similarity index 77% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/relational/ColumnTransformerBuilder.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/relational/ColumnTransformerBuilder.java index cf416a184a9ce..42f8f8bed59dc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/relational/ColumnTransformerBuilder.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/execution/relational/ColumnTransformerBuilder.java @@ -17,186 +17,185 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.relational; - +package org.apache.iotdb.calc.execution.relational; + +import org.apache.iotdb.calc.plan.relational.metadata.ITypeMetadata; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.FailFunctionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.TableCaseWhenThenColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.ArithmeticColumnTransformerApi; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareEqualToColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareGreaterEqualColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareGreaterThanColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareLessEqualColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareLessThanColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareNonEqualColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.HmacColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.Like2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.factory.HmacStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.leaf.ConstantColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.IdentityColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.NullColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.TimeColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.AbstractGreatestLeastColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.CoalesceColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.InBinaryMultiColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.InBooleanMultiColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.InDoubleMultiColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.InFloatMultiColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.InInt32MultiColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.InInt64MultiColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.InMultiColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.LogicalAndMultiColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.LogicalOrMultiColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ternary.BetweenColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ternary.Like3ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ternary.LpadColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ternary.RpadColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.udf.UserDefineScalarFunctionTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.IsNullColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.LikeColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.LogicNotColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.AbsColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.AcosColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.AsinColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.AtanColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitCount2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitCountColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseAnd2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseAndColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseLeftShift2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseLeftShiftColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseNotColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseOr2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseOrColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseRightShift2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseRightShiftArithmetic2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseRightShiftArithmeticColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseRightShiftColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseXor2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BitwiseXorColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BlobLengthColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BytesToDoubleColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BytesToFloatColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BytesToIntColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BytesToLongColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.CRC32Transformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.CastFunctionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.CeilColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.Concat2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.ConcatColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.ConcatMultiColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.CosColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.CoshColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DegreesColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DiffColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DiffFunctionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DoubleToBytesColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.EndsWith2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.EndsWithColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.ExpColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.ExtractTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.FloatToBytesColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.FloorColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.FormatColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.HmacConstantKeyColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.IntToBytesColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.LTrim2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.LTrimColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.LengthColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.LnColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.Log10ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.LongToBytesColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.LowerColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.ObjectLengthColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.RTrim2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.RTrimColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.RadiansColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.RegexpLike2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.RegexpLikeColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.Replace2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.Replace3ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.ReplaceFunctionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.RoundColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.RoundFunctionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.SignColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.SinColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.SinhColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.SqrtColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.StartsWith2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.StartsWithColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.Strcmp2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.StrcmpColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.Strpos2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.StrposColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.SubString2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.SubString3ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.SubStringColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.TanColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.TanhColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.Trim2ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.TrimColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.TryCastFunctionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.UpperColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.commons.conf.CommonDescriptor; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.analyze.ITableTypeProvider; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.AdditionResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.DivisionResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.ModulusResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.MultiplicationResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.SubtractionResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentDatabase; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentTime; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentUser; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DecimalLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Trim; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeNotFoundException; +import org.apache.iotdb.commons.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; -import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; -import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.AdditionResolver; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.DivisionResolver; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.ModulusResolver; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.MultiplicationResolver; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.SubtractionResolver; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentDatabase; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentTime; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentUser; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DecimalLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Trim; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeNotFoundException; -import org.apache.iotdb.db.queryengine.plan.udf.TableUDFUtils; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.FailFunctionColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.TableCaseWhenThenColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.ArithmeticColumnTransformerApi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareEqualToColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareGreaterEqualColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareGreaterThanColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareLessEqualColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareLessThanColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareNonEqualColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.HmacColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.Like2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.factory.HmacStrategiesFactory; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.ConstantColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.IdentityColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.LeafColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.NullColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.TimeColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.AbstractGreatestLeastColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.CoalesceColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.InBinaryMultiColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.InBooleanMultiColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.InDoubleMultiColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.InFloatMultiColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.InInt32MultiColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.InInt64MultiColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.InMultiColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.LogicalAndMultiColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.LogicalOrMultiColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ternary.BetweenColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ternary.Like3ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ternary.LpadColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ternary.RpadColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.udf.UserDefineScalarFunctionTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.IsNullColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.LikeColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.LogicNotColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.AbsColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.AcosColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.AsinColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.AtanColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitCount2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitCountColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseAnd2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseAndColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseLeftShift2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseLeftShiftColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseNotColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseOr2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseOrColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseRightShift2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseRightShiftArithmetic2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseRightShiftArithmeticColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseRightShiftColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseXor2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BitwiseXorColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BlobLengthColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BytesToDoubleColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BytesToFloatColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BytesToIntColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BytesToLongColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.CRC32Transformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.CastFunctionColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.CeilColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.Concat2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.ConcatColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.ConcatMultiColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.CosColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.CoshColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DegreesColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DiffColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DiffFunctionColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DoubleToBytesColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.EndsWith2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.EndsWithColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.ExpColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.ExtractTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.FloatToBytesColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.FloorColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.FormatColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.HmacConstantKeyColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntToBytesColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.LTrim2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.LTrimColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.LengthColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.LnColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.Log10ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.LongToBytesColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.LowerColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.ObjectLengthColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.RTrim2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.RTrimColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.RadiansColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.RegexpLike2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.RegexpLikeColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.Replace2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.Replace3ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.ReplaceFunctionColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.RoundColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.RoundFunctionColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.SignColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.SinColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.SinhColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.SqrtColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.StartsWith2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.StartsWithColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.Strcmp2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.StrcmpColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.Strpos2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.StrposColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.SubString2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.SubString3ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.SubStringColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.TanColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.TanhColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.Trim2ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.TrimColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.TryCastFunctionColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.UpperColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; import org.apache.iotdb.udf.api.customizer.analysis.ScalarFunctionAnalysis; import org.apache.iotdb.udf.api.customizer.parameter.FunctionArguments; import org.apache.iotdb.udf.api.relational.ScalarFunction; @@ -216,8 +215,6 @@ import org.apache.tsfile.read.common.type.TypeEnum; import org.apache.tsfile.utils.Binary; -import javax.annotation.Nullable; - import java.time.ZoneId; import java.util.ArrayList; import java.util.Arrays; @@ -230,17 +227,17 @@ import java.util.stream.Collectors; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.plan.expression.unary.LikeExpression.getEscapeCharacter; -import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.PredicatePushIntoMetadataChecker.isStringLiteral; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isBlobType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isCharType; -import static org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toTypeSignature; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.FailFunctionColumnTransformer.FAIL_FUNCTION_NAME; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.binary.factory.HmacStrategiesFactory.createConstantKeyHmacMd5Strategy; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.binary.factory.HmacStrategiesFactory.createConstantKeyHmacSha1Strategy; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.binary.factory.HmacStrategiesFactory.createConstantKeyHmacSha256Strategy; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.binary.factory.HmacStrategiesFactory.createConstantKeyHmacSha512Strategy; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isBlobType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isCharType; +import static org.apache.iotdb.calc.transformation.dag.column.FailFunctionColumnTransformer.FAIL_FUNCTION_NAME; +import static org.apache.iotdb.calc.transformation.dag.column.binary.factory.HmacStrategiesFactory.createConstantKeyHmacMd5Strategy; +import static org.apache.iotdb.calc.transformation.dag.column.binary.factory.HmacStrategiesFactory.createConstantKeyHmacSha1Strategy; +import static org.apache.iotdb.calc.transformation.dag.column.binary.factory.HmacStrategiesFactory.createConstantKeyHmacSha256Strategy; +import static org.apache.iotdb.calc.transformation.dag.column.binary.factory.HmacStrategiesFactory.createConstantKeyHmacSha512Strategy; +import static org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils.getEscapeCharacter; +import static org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils.isStringLiteral; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureTranslator.toTypeSignature; import static org.apache.tsfile.read.common.type.BlobType.BLOB; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; @@ -250,7 +247,7 @@ import static org.apache.tsfile.read.common.type.StringType.STRING; public class ColumnTransformerBuilder - extends AstVisitor { + implements CommonQueryAstVisitor { private static final String UNSUPPORTED_EXPRESSION = "Unsupported expression: %s"; @@ -261,8 +258,7 @@ public ColumnTransformer visitExpression(Expression expression, Context context) } @Override - protected ColumnTransformer visitArithmeticBinary( - ArithmeticBinaryExpression node, Context context) { + public ColumnTransformer visitArithmeticBinary(ArithmeticBinaryExpression node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { ColumnTransformer left = process(node.getLeft(), context); @@ -324,8 +320,7 @@ protected ColumnTransformer visitArithmeticBinary( } @Override - protected ColumnTransformer visitArithmeticUnary( - ArithmeticUnaryExpression node, Context context) { + public ColumnTransformer visitArithmeticUnary(ArithmeticUnaryExpression node, Context context) { switch (node.getSign()) { case PLUS: return process(node.getValue(), context); @@ -347,7 +342,7 @@ protected ColumnTransformer visitArithmeticUnary( } @Override - protected ColumnTransformer visitBetweenPredicate(BetweenPredicate node, Context context) { + public ColumnTransformer visitBetweenPredicate(BetweenPredicate node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { appendIdentityColumnTransformer(node, BOOLEAN, TSDataType.BOOLEAN, context); @@ -362,7 +357,7 @@ protected ColumnTransformer visitBetweenPredicate(BetweenPredicate node, Context } @Override - protected ColumnTransformer visitCast(Cast node, Context context) { + public ColumnTransformer visitCast(Cast node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { @@ -392,7 +387,7 @@ protected ColumnTransformer visitCast(Cast node, Context context) { } @Override - protected ColumnTransformer visitExtract(Extract node, Context context) { + public ColumnTransformer visitExtract(Extract node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { ColumnTransformer columnTransformer = context.hasSeen.get(node); @@ -413,7 +408,7 @@ protected ColumnTransformer visitExtract(Extract node, Context context) { } @Override - protected ColumnTransformer visitBooleanLiteral(BooleanLiteral node, Context context) { + public ColumnTransformer visitBooleanLiteral(BooleanLiteral node, Context context) { ColumnTransformer res = context.cache.computeIfAbsent( node, @@ -430,7 +425,7 @@ protected ColumnTransformer visitBooleanLiteral(BooleanLiteral node, Context con } @Override - protected ColumnTransformer visitBinaryLiteral(BinaryLiteral node, Context context) { + public ColumnTransformer visitBinaryLiteral(BinaryLiteral node, Context context) { ColumnTransformer res = context.cache.computeIfAbsent( node, @@ -448,7 +443,7 @@ protected ColumnTransformer visitBinaryLiteral(BinaryLiteral node, Context conte } @Override - protected ColumnTransformer visitStringLiteral(StringLiteral node, Context context) { + public ColumnTransformer visitStringLiteral(StringLiteral node, Context context) { ColumnTransformer res = context.cache.computeIfAbsent( node, @@ -468,7 +463,7 @@ protected ColumnTransformer visitStringLiteral(StringLiteral node, Context conte } @Override - protected ColumnTransformer visitLongLiteral(LongLiteral node, Context context) { + public ColumnTransformer visitLongLiteral(LongLiteral node, Context context) { ColumnTransformer res = context.cache.computeIfAbsent( node, @@ -495,7 +490,7 @@ protected ColumnTransformer visitLongLiteral(LongLiteral node, Context context) } @Override - protected ColumnTransformer visitDoubleLiteral(DoubleLiteral node, Context context) { + public ColumnTransformer visitDoubleLiteral(DoubleLiteral node, Context context) { ColumnTransformer res = context.cache.computeIfAbsent( node, @@ -512,7 +507,7 @@ protected ColumnTransformer visitDoubleLiteral(DoubleLiteral node, Context conte } @Override - protected ColumnTransformer visitFloatLiteral(FloatLiteral node, Context context) { + public ColumnTransformer visitFloatLiteral(FloatLiteral node, Context context) { ColumnTransformer res = context.cache.computeIfAbsent( node, @@ -528,12 +523,12 @@ protected ColumnTransformer visitFloatLiteral(FloatLiteral node, Context context } @Override - protected ColumnTransformer visitDecimalLiteral(DecimalLiteral node, Context context) { + public ColumnTransformer visitDecimalLiteral(DecimalLiteral node, Context context) { throw new UnsupportedOperationException(); } @Override - protected ColumnTransformer visitGenericLiteral(GenericLiteral node, Context context) { + public ColumnTransformer visitGenericLiteral(GenericLiteral node, Context context) { ColumnTransformer res = context.cache.computeIfAbsent( node, @@ -570,7 +565,7 @@ private static ConstantColumnTransformer getColumnTransformerForGenericLiteral( } @Override - protected ColumnTransformer visitNullLiteral(NullLiteral node, Context context) { + public ColumnTransformer visitNullLiteral(NullLiteral node, Context context) { ColumnTransformer res = context.cache.computeIfAbsent( node, @@ -584,8 +579,7 @@ protected ColumnTransformer visitNullLiteral(NullLiteral node, Context context) } @Override - protected ColumnTransformer visitComparisonExpression( - ComparisonExpression node, Context context) { + public ColumnTransformer visitComparisonExpression(ComparisonExpression node, Context context) { ColumnTransformer comparisonTransformer; if (context.cache.containsKey(node)) { comparisonTransformer = context.cache.get(node); @@ -632,7 +626,7 @@ private ColumnTransformer getColumnTransformer(ComparisonExpression node, Contex } @Override - protected ColumnTransformer visitCurrentDatabase(CurrentDatabase node, Context context) { + public ColumnTransformer visitCurrentDatabase(CurrentDatabase node, Context context) { Optional currentDatabase = context.sessionInfo.getDatabaseName(); ColumnTransformer res; res = @@ -666,12 +660,12 @@ protected ColumnTransformer visitCurrentDatabase(CurrentDatabase node, Context c } @Override - protected ColumnTransformer visitCurrentTime(CurrentTime node, Context context) { + public ColumnTransformer visitCurrentTime(CurrentTime node, Context context) { throw new UnsupportedOperationException(String.format(UNSUPPORTED_EXPRESSION, node)); } @Override - protected ColumnTransformer visitCurrentUser(CurrentUser node, Context context) { + public ColumnTransformer visitCurrentUser(CurrentUser node, Context context) { String currentUser = context.sessionInfo.getUserName(); ColumnTransformer res = context.cache.computeIfAbsent( @@ -692,7 +686,7 @@ protected ColumnTransformer visitCurrentUser(CurrentUser node, Context context) } @Override - protected ColumnTransformer visitFunctionCall(FunctionCall node, Context context) { + public ColumnTransformer visitFunctionCall(FunctionCall node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { ColumnTransformer columnTransformer = context.hasSeen.get(node); @@ -1499,12 +1493,12 @@ private ColumnTransformer getFunctionColumnTransformer( } throw new IllegalArgumentException( String.format( - "Unknown function %s on DataNode: %d.", - functionName, IoTDBDescriptor.getInstance().getConfig().getDataNodeId())); + "Unknown function %s on Node: %d.", + functionName, CommonDescriptor.getInstance().getConfig().getNodeId())); } @Override - protected ColumnTransformer visitInPredicate(InPredicate node, Context context) { + public ColumnTransformer visitInPredicate(InPredicate node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { appendIdentityColumnTransformer(node, BOOLEAN, TSDataType.BOOLEAN, context); @@ -1638,7 +1632,7 @@ private static InMultiColumnTransformer constructInColumnTransformer( } @Override - protected ColumnTransformer visitNotExpression(NotExpression node, Context context) { + public ColumnTransformer visitNotExpression(NotExpression node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { appendIdentityColumnTransformer(node, BOOLEAN, TSDataType.BOOLEAN, context); @@ -1651,7 +1645,7 @@ protected ColumnTransformer visitNotExpression(NotExpression node, Context conte } @Override - protected ColumnTransformer visitLikePredicate(LikePredicate node, Context context) { + public ColumnTransformer visitLikePredicate(LikePredicate node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { appendIdentityColumnTransformer(node, BOOLEAN, TSDataType.BOOLEAN, context); @@ -1693,7 +1687,7 @@ protected ColumnTransformer visitLikePredicate(LikePredicate node, Context conte } @Override - protected ColumnTransformer visitIsNotNullPredicate(IsNotNullPredicate node, Context context) { + public ColumnTransformer visitIsNotNullPredicate(IsNotNullPredicate node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { appendIdentityColumnTransformer(node, BOOLEAN, TSDataType.BOOLEAN, context); @@ -1706,7 +1700,7 @@ protected ColumnTransformer visitIsNotNullPredicate(IsNotNullPredicate node, Con } @Override - protected ColumnTransformer visitIsNullPredicate(IsNullPredicate node, Context context) { + public ColumnTransformer visitIsNullPredicate(IsNullPredicate node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { appendIdentityColumnTransformer(node, BOOLEAN, TSDataType.BOOLEAN, context); @@ -1720,7 +1714,7 @@ protected ColumnTransformer visitIsNullPredicate(IsNullPredicate node, Context c } @Override - protected ColumnTransformer visitLogicalExpression(LogicalExpression node, Context context) { + public ColumnTransformer visitLogicalExpression(LogicalExpression node, Context context) { ColumnTransformer logicalTransformer; if (context.cache.containsKey(node)) { logicalTransformer = context.cache.get(node); @@ -1759,7 +1753,7 @@ private ColumnTransformer getColumnTransformer(LogicalExpression node, Context c } @Override - protected ColumnTransformer visitSymbolReference(SymbolReference node, Context context) { + public ColumnTransformer visitSymbolReference(SymbolReference node, Context context) { ColumnTransformer res = context.cache.computeIfAbsent( node, @@ -1782,7 +1776,7 @@ protected ColumnTransformer visitSymbolReference(SymbolReference node, Context c } @Override - protected ColumnTransformer visitCoalesceExpression(CoalesceExpression node, Context context) { + public ColumnTransformer visitCoalesceExpression(CoalesceExpression node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { ColumnTransformer columnTransformer = context.hasSeen.get(node); @@ -1804,8 +1798,7 @@ protected ColumnTransformer visitCoalesceExpression(CoalesceExpression node, Con } @Override - protected ColumnTransformer visitSimpleCaseExpression( - SimpleCaseExpression node, Context context) { + public ColumnTransformer visitSimpleCaseExpression(SimpleCaseExpression node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { ColumnTransformer columnTransformer = context.hasSeen.get(node); @@ -1841,7 +1834,7 @@ protected ColumnTransformer visitSimpleCaseExpression( } @Override - protected ColumnTransformer visitSearchedCaseExpression( + public ColumnTransformer visitSearchedCaseExpression( SearchedCaseExpression node, Context context) { if (!context.cache.containsKey(node)) { if (context.hasSeen.containsKey(node)) { @@ -1873,17 +1866,17 @@ protected ColumnTransformer visitSearchedCaseExpression( } @Override - protected ColumnTransformer visitTrim(Trim node, Context context) { + public ColumnTransformer visitTrim(Trim node, Context context) { throw new UnsupportedOperationException(String.format(UNSUPPORTED_EXPRESSION, node)); } @Override - protected ColumnTransformer visitIfExpression(IfExpression node, Context context) { + public ColumnTransformer visitIfExpression(IfExpression node, Context context) { throw new UnsupportedOperationException(String.format(UNSUPPORTED_EXPRESSION, node)); } @Override - protected ColumnTransformer visitNullIfExpression(NullIfExpression node, Context context) { + public ColumnTransformer visitNullIfExpression(NullIfExpression node, Context context) { throw new UnsupportedOperationException(String.format(UNSUPPORTED_EXPRESSION, node)); } @@ -1947,11 +1940,9 @@ public static class Context { private final int originSize; - private final TypeProvider typeProvider; - - private final Metadata metadata; + private final ITableTypeProvider typeProvider; - private final Optional fragmentInstanceContext; + private final ITypeMetadata metadata; public Context( SessionInfo sessionInfo, @@ -1962,9 +1953,8 @@ public Context( List commonTransformerList, List inputDataTypes, int originSize, - TypeProvider typeProvider, - Metadata metadata, - @Nullable FragmentInstanceContext fragmentInstanceContext) { + ITableTypeProvider typeProvider, + ITypeMetadata metadata) { this.sessionInfo = sessionInfo; this.leafList = leafList; this.inputLocations = inputLocations; @@ -1975,7 +1965,6 @@ public Context( this.originSize = originSize; this.typeProvider = typeProvider; this.metadata = metadata; - this.fragmentInstanceContext = Optional.ofNullable(fragmentInstanceContext); } public Type getType(SymbolReference symbolReference) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/metric/QueryExecutionMetricSet.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/metric/QueryExecutionMetricSet.java similarity index 99% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/metric/QueryExecutionMetricSet.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/metric/QueryExecutionMetricSet.java index 27a238d3d8cc0..636b11b4cc02d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/metric/QueryExecutionMetricSet.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/metric/QueryExecutionMetricSet.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.metric; +package org.apache.iotdb.calc.metric; import org.apache.iotdb.commons.service.metric.enums.Metric; import org.apache.iotdb.commons.service.metric.enums.Tag; diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/planner/CommonOperatorUtils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/planner/CommonOperatorUtils.java new file mode 100644 index 0000000000000..ac29fef3ebe98 --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/planner/CommonOperatorUtils.java @@ -0,0 +1,184 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.calc.plan.planner; + +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; +import org.apache.iotdb.calc.execution.operator.process.fill.IFillFilter; +import org.apache.iotdb.calc.execution.operator.process.fill.ILinearFill; +import org.apache.iotdb.calc.execution.operator.process.fill.filter.FixedIntervalFillFilter; +import org.apache.iotdb.calc.execution.operator.process.fill.filter.MonthIntervalMSFillFilter; +import org.apache.iotdb.calc.execution.operator.process.fill.filter.MonthIntervalNSFillFilter; +import org.apache.iotdb.calc.execution.operator.process.fill.filter.MonthIntervalUSFillFilter; +import org.apache.iotdb.calc.execution.operator.process.fill.identity.IdentityFill; +import org.apache.iotdb.calc.execution.operator.process.fill.identity.IdentityLinearFill; +import org.apache.iotdb.calc.execution.operator.process.fill.linear.DoubleLinearFill; +import org.apache.iotdb.calc.execution.operator.process.fill.linear.FloatLinearFill; +import org.apache.iotdb.calc.execution.operator.process.fill.linear.IntLinearFill; +import org.apache.iotdb.calc.execution.operator.process.fill.linear.LongLinearFill; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.BinaryPreviousFill; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.BinaryPreviousFillWithTimeDuration; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.BooleanPreviousFill; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.BooleanPreviousFillWithTimeDuration; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.DoublePreviousFill; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.DoublePreviousFillWithTimeDuration; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.FloatPreviousFill; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.FloatPreviousFillWithTimeDuration; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.IntPreviousFill; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.IntPreviousFillWithTimeDuration; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.LongPreviousFill; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.LongPreviousFillWithTimeDuration; + +import org.apache.tsfile.enums.TSDataType; +import org.apache.tsfile.read.common.block.column.LongColumn; +import org.apache.tsfile.utils.TimeDuration; + +import java.time.ZoneId; +import java.util.List; +import java.util.Optional; + +import static org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils.TIMESTAMP_PRECISION; + +public class CommonOperatorUtils { + public static final IdentityLinearFill IDENTITY_LINEAR_FILL = new IdentityLinearFill(); + public static final String UNKNOWN_DATATYPE = "Unknown data type: "; + public static final String CURRENT_DEVICE_INDEX_STRING = "CurrentDeviceIndex"; + public static final LongColumn TIME_COLUMN_TEMPLATE = + new LongColumn(1, Optional.empty(), new long[] {0}); + public static final String CURRENT_USED_MEMORY = "CurrentUsedMemory"; + public static final String MAX_USED_MEMORY = "MaxUsedMemory"; + public static final String MAX_RESERVED_MEMORY = "MaxReservedMemory"; + public static final IdentityFill IDENTITY_FILL = new IdentityFill(); + + public static ILinearFill[] getLinearFill(int inputColumns, List inputDataTypes) { + ILinearFill[] linearFill = new ILinearFill[inputColumns]; + for (int i = 0; i < inputColumns; i++) { + switch (inputDataTypes.get(i)) { + case INT32: + case DATE: + linearFill[i] = new IntLinearFill(); + break; + case INT64: + case TIMESTAMP: + linearFill[i] = new LongLinearFill(); + break; + case FLOAT: + linearFill[i] = new FloatLinearFill(); + break; + case DOUBLE: + linearFill[i] = new DoubleLinearFill(); + break; + case BOOLEAN: + case TEXT: + case STRING: + case BLOB: + case OBJECT: + linearFill[i] = IDENTITY_LINEAR_FILL; + break; + default: + throw new IllegalArgumentException(UNKNOWN_DATATYPE + inputDataTypes.get(i)); + } + } + return linearFill; + } + + public static IFill[] getPreviousFill( + int inputColumns, + List inputDataTypes, + TimeDuration timeDurationThreshold, + ZoneId zoneId) { + IFillFilter filter; + if (timeDurationThreshold == null) { + filter = null; + } else if (!timeDurationThreshold.containsMonth()) { + filter = new FixedIntervalFillFilter(timeDurationThreshold.nonMonthDuration); + } else { + switch (TIMESTAMP_PRECISION) { + case "ms": + filter = + new MonthIntervalMSFillFilter( + timeDurationThreshold.monthDuration, + timeDurationThreshold.nonMonthDuration, + zoneId); + break; + case "us": + filter = + new MonthIntervalUSFillFilter( + timeDurationThreshold.monthDuration, + timeDurationThreshold.nonMonthDuration, + zoneId); + break; + case "ns": + filter = + new MonthIntervalNSFillFilter( + timeDurationThreshold.monthDuration, + timeDurationThreshold.nonMonthDuration, + zoneId); + break; + default: + // this case will never reach + throw new UnsupportedOperationException( + "not supported time_precision: " + TIMESTAMP_PRECISION); + } + } + + IFill[] previousFill = new IFill[inputColumns]; + for (int i = 0; i < inputColumns; i++) { + switch (inputDataTypes.get(i)) { + case BOOLEAN: + previousFill[i] = + filter == null + ? new BooleanPreviousFill() + : new BooleanPreviousFillWithTimeDuration(filter); + break; + case TEXT: + case STRING: + case BLOB: + case OBJECT: + previousFill[i] = + filter == null + ? new BinaryPreviousFill() + : new BinaryPreviousFillWithTimeDuration(filter); + break; + case INT32: + case DATE: + previousFill[i] = + filter == null ? new IntPreviousFill() : new IntPreviousFillWithTimeDuration(filter); + break; + case INT64: + case TIMESTAMP: + previousFill[i] = + filter == null + ? new LongPreviousFill() + : new LongPreviousFillWithTimeDuration(filter); + break; + case FLOAT: + previousFill[i] = + filter == null + ? new FloatPreviousFill() + : new FloatPreviousFillWithTimeDuration(filter); + break; + case DOUBLE: + previousFill[i] = + filter == null + ? new DoublePreviousFill() + : new DoublePreviousFillWithTimeDuration(filter); + break; + default: + throw new IllegalArgumentException(UNKNOWN_DATATYPE + inputDataTypes.get(i)); + } + } + return previousFill; + } +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/planner/ITableOperatorGeneratorContext.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/planner/ITableOperatorGeneratorContext.java new file mode 100644 index 0000000000000..ffee1d2e8dace --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/planner/ITableOperatorGeneratorContext.java @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.plan.planner; + +import org.apache.iotdb.commons.queryengine.plan.analyze.ITableTypeProvider; + +import java.time.ZoneId; + +public interface ITableOperatorGeneratorContext { + ITableTypeProvider getTableTypeProvider(); + + ZoneId getZoneId(); +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/planner/TableOperatorGenerator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/planner/TableOperatorGenerator.java new file mode 100644 index 0000000000000..aebce95bdb9e3 --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/planner/TableOperatorGenerator.java @@ -0,0 +1,2280 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.plan.planner; + +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.AssignUniqueIdOperator; +import org.apache.iotdb.calc.execution.operator.process.CollectOperator; +import org.apache.iotdb.calc.execution.operator.process.EnforceSingleRowOperator; +import org.apache.iotdb.calc.execution.operator.process.FilterAndProjectOperator; +import org.apache.iotdb.calc.execution.operator.process.LimitOperator; +import org.apache.iotdb.calc.execution.operator.process.MappingCollectOperator; +import org.apache.iotdb.calc.execution.operator.process.OffsetOperator; +import org.apache.iotdb.calc.execution.operator.process.PatternRecognitionOperator; +import org.apache.iotdb.calc.execution.operator.process.PreviousFillWithGroupOperator; +import org.apache.iotdb.calc.execution.operator.process.TableFillOperator; +import org.apache.iotdb.calc.execution.operator.process.TableLinearFillOperator; +import org.apache.iotdb.calc.execution.operator.process.TableLinearFillWithGroupOperator; +import org.apache.iotdb.calc.execution.operator.process.TableMergeSortOperator; +import org.apache.iotdb.calc.execution.operator.process.TableSortOperator; +import org.apache.iotdb.calc.execution.operator.process.TableStreamSortOperator; +import org.apache.iotdb.calc.execution.operator.process.TableTopKOperator; +import org.apache.iotdb.calc.execution.operator.process.ValuesOperator; +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; +import org.apache.iotdb.calc.execution.operator.process.fill.ILinearFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.BinaryConstantFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.BooleanConstantFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.DoubleConstantFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.FloatConstantFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.IntConstantFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.LongConstantFill; +import org.apache.iotdb.calc.execution.operator.process.function.TableFunctionLeafOperator; +import org.apache.iotdb.calc.execution.operator.process.function.TableFunctionOperator; +import org.apache.iotdb.calc.execution.operator.process.gapfill.GapFillWGroupWMoOperator; +import org.apache.iotdb.calc.execution.operator.process.gapfill.GapFillWGroupWoMoOperator; +import org.apache.iotdb.calc.execution.operator.process.gapfill.GapFillWoGroupWMoOperator; +import org.apache.iotdb.calc.execution.operator.process.gapfill.GapFillWoGroupWoMoOperator; +import org.apache.iotdb.calc.execution.operator.process.join.SimpleNestedLoopCrossJoinOperator; +import org.apache.iotdb.calc.execution.operator.process.join.merge.comparator.JoinKeyComparatorFactory; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.LogicalIndexNavigation; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternAggregationTracker; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternAggregator; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternVariableRecognizer; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PhysicalAggregationPointer; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PhysicalValueAccessor; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PhysicalValuePointer; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.expression.Computation; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.expression.PatternExpressionComputation; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.IrRowPatternToProgramRewriter; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.Matcher; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.Program; +import org.apache.iotdb.calc.execution.operator.process.window.RowNumberOperator; +import org.apache.iotdb.calc.execution.operator.process.window.TableWindowOperator; +import org.apache.iotdb.calc.execution.operator.process.window.TopKRankingOperator; +import org.apache.iotdb.calc.execution.operator.process.window.function.WindowFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.WindowFunctionFactory; +import org.apache.iotdb.calc.execution.operator.process.window.function.aggregate.AggregationWindowFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.aggregate.WindowAggregator; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; +import org.apache.iotdb.calc.execution.operator.source.relational.AsofMergeSortInnerJoinOperator; +import org.apache.iotdb.calc.execution.operator.source.relational.AsofMergeSortLeftJoinOperator; +import org.apache.iotdb.calc.execution.operator.source.relational.MarkDistinctOperator; +import org.apache.iotdb.calc.execution.operator.source.relational.MergeSortFullOuterJoinOperator; +import org.apache.iotdb.calc.execution.operator.source.relational.MergeSortInnerJoinOperator; +import org.apache.iotdb.calc.execution.operator.source.relational.MergeSortLeftJoinOperator; +import org.apache.iotdb.calc.execution.operator.source.relational.MergeSortSemiJoinOperator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AggregationOperator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.LastByDescAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.LastDescAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.TableAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.TableAggregator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedAggregator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.HashAggregationOperator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.StreamingAggregationOperator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.StreamingHashAggregationOperator; +import org.apache.iotdb.calc.execution.relational.ColumnTransformerBuilder; +import org.apache.iotdb.calc.plan.relational.metadata.ITypeMetadata; +import org.apache.iotdb.calc.plan.relational.planner.CastToBlobLiteralVisitor; +import org.apache.iotdb.calc.plan.relational.planner.CastToBooleanLiteralVisitor; +import org.apache.iotdb.calc.plan.relational.planner.CastToDateLiteralVisitor; +import org.apache.iotdb.calc.plan.relational.planner.CastToDoubleLiteralVisitor; +import org.apache.iotdb.calc.plan.relational.planner.CastToFloatLiteralVisitor; +import org.apache.iotdb.calc.plan.relational.planner.CastToInt32LiteralVisitor; +import org.apache.iotdb.calc.plan.relational.planner.CastToInt64LiteralVisitor; +import org.apache.iotdb.calc.plan.relational.planner.CastToStringLiteralVisitor; +import org.apache.iotdb.calc.plan.relational.planner.CastToTimestampLiteralVisitor; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.analyze.ITableTypeProvider; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionKind; +import org.apache.iotdb.commons.queryengine.plan.relational.function.ITableFunctionFactory; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CollectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GapFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LinearFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MarkDistinctNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.Measure; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PreviousFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowNumberNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValueFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValuesNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.AggregationLabelSet; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.AggregationValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ClassifierValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrLabel; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.LogicalIndexPointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.MatchNumberValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ScalarValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; +import org.apache.iotdb.udf.api.relational.TableFunction; +import org.apache.iotdb.udf.api.relational.table.TableFunctionProcessorProvider; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ListMultimap; +import org.apache.tsfile.block.column.Column; +import org.apache.tsfile.common.conf.TSFileConfig; +import org.apache.tsfile.common.conf.TSFileDescriptor; +import org.apache.tsfile.enums.TSDataType; +import org.apache.tsfile.read.common.block.column.BinaryColumn; +import org.apache.tsfile.read.common.block.column.BooleanColumn; +import org.apache.tsfile.read.common.block.column.DoubleColumn; +import org.apache.tsfile.read.common.block.column.FloatColumn; +import org.apache.tsfile.read.common.block.column.IntColumn; +import org.apache.tsfile.read.common.block.column.LongColumn; +import org.apache.tsfile.read.common.type.Type; +import org.apache.tsfile.utils.Binary; + +import java.util.AbstractMap; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.OptionalInt; +import java.util.Set; +import java.util.function.BiFunction; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.collect.ImmutableList.toImmutableList; +import static com.google.common.collect.Iterables.getOnlyElement; +import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.execution.operator.process.join.merge.MergeSortComparator.getComparatorForTable; +import static org.apache.iotdb.calc.execution.operator.process.rowpattern.PhysicalValuePointer.CLASSIFIER; +import static org.apache.iotdb.calc.execution.operator.process.rowpattern.PhysicalValuePointer.MATCH_NUMBER; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AccumulatorFactory.createAccumulator; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AccumulatorFactory.createBuiltinAccumulator; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AccumulatorFactory.createGroupedAccumulator; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.IDENTITY_FILL; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.UNKNOWN_DATATYPE; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.getLinearFill; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.getPreviousFill; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.FIRST_AGGREGATION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.FIRST_BY_AGGREGATION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.LAST_AGGREGATION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.LAST_BY_AGGREGATION; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash.DEFAULT_GROUP_NUMBER; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_FIRST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.DESC_NULLS_FIRST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.DESC_NULLS_LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowsPerMatch.ONE; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SkipToPosition.LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; +import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.getAggregationTypeByFuncName; +import static org.apache.tsfile.read.common.type.LongType.INT64; +import static org.apache.tsfile.read.common.type.StringType.STRING; +import static org.apache.tsfile.read.common.type.TimestampType.TIMESTAMP; + +/** This Visitor is responsible for transferring Table PlanNode Tree to Table Operator Tree. */ +public abstract class TableOperatorGenerator< + C extends ITableOperatorGeneratorContext, M extends ITypeMetadata & ITableFunctionFactory> + implements ICoreQueryPlanVisitor { + + protected final M metadata; + + public TableOperatorGenerator(M metadata) { + this.metadata = metadata; + } + + @Override + public Operator visitPlan(PlanNode node, C context) { + throw new UnsupportedOperationException("should call the concrete visitXX() method"); + } + + public static Map> makeLayout(final List children) { + final Map> outputMappings = new LinkedHashMap<>(); + int tsBlockIndex = 0; + for (final PlanNode childNode : children) { + int valueColumnIndex = 0; + for (final Symbol columnName : childNode.getOutputSymbols()) { + outputMappings + .computeIfAbsent(columnName, key -> new ArrayList<>()) + .add(new InputLocation(tsBlockIndex, valueColumnIndex)); + valueColumnIndex++; + } + tsBlockIndex++; + } + return outputMappings; + } + + protected ImmutableMap makeLayoutFromOutputSymbols(List outputSymbols) { + if (outputSymbols == null) { + return ImmutableMap.of(); + } + ImmutableMap.Builder outputMappings = ImmutableMap.builder(); + int channel = 0; + for (Symbol symbol : outputSymbols) { + outputMappings.put(symbol, channel); + channel++; + } + return outputMappings.buildOrThrow(); + } + + @Override + public Operator visitFilter(FilterNode node, C context) { + ITableTypeProvider typeProvider = context.getTableTypeProvider(); + Optional predicate = Optional.of(node.getPredicate()); + Operator inputOperator = node.getChild().accept(this, context); + List inputDataTypes = getInputColumnTypes(node, typeProvider); + Map> inputLocations = makeLayout(node.getChildren()); + + return constructFilterAndProjectOperator( + predicate, + inputOperator, + node.getOutputSymbols().stream().map(Symbol::toSymbolReference).toArray(Expression[]::new), + inputDataTypes, + inputLocations, + node.getPlanNodeId(), + context); + } + + protected Operator constructFilterAndProjectOperator( + Optional predicate, + Operator inputOperator, + Expression[] projectExpressions, + List inputDataTypes, + Map> inputLocations, + PlanNodeId planNodeId, + C context) { + + final List filterOutputDataTypes = new ArrayList<>(inputDataTypes); + + // records LeafColumnTransformer of filter + List filterLeafColumnTransformerList = new ArrayList<>(); + + // records subexpression -> ColumnTransformer for filter + Map filterExpressionColumnTransformerMap = new HashMap<>(); + + ColumnTransformerBuilder visitor = new ColumnTransformerBuilder(); + + SessionInfo sessionInfo = getSessionInfo(context); + ColumnTransformer filterOutputTransformer = + predicate + .map( + p -> { + ColumnTransformerBuilder.Context filterColumnTransformerContext = + new ColumnTransformerBuilder.Context( + sessionInfo, + filterLeafColumnTransformerList, + inputLocations, + filterExpressionColumnTransformerMap, + ImmutableMap.of(), + ImmutableList.of(), + ImmutableList.of(), + 0, + context.getTableTypeProvider(), + metadata); + + return visitor.process(p, filterColumnTransformerContext); + }) + .orElse(null); + + // records LeafColumnTransformer of project expressions + List projectLeafColumnTransformerList = new ArrayList<>(); + + List projectOutputTransformerList = new ArrayList<>(); + + Map projectExpressionColumnTransformerMap = new HashMap<>(); + + // records common ColumnTransformer between filter and project expressions + List commonTransformerList = new ArrayList<>(); + + ColumnTransformerBuilder.Context projectColumnTransformerContext = + new ColumnTransformerBuilder.Context( + sessionInfo, + projectLeafColumnTransformerList, + inputLocations, + projectExpressionColumnTransformerMap, + filterExpressionColumnTransformerMap, + commonTransformerList, + filterOutputDataTypes, + inputLocations.size(), + context.getTableTypeProvider(), + metadata); + + for (Expression expression : projectExpressions) { + projectOutputTransformerList.add( + visitor.process(expression, projectColumnTransformerContext)); + } + + final CommonOperatorContext operatorContext = + addOperatorContext(context, planNodeId, FilterAndProjectOperator.class.getSimpleName()); + + // Project expressions don't contain Non-Mappable UDF, TransformOperator is not needed + return new FilterAndProjectOperator( + operatorContext, + inputOperator, + filterOutputDataTypes, + filterLeafColumnTransformerList, + filterOutputTransformer, + commonTransformerList, + projectLeafColumnTransformerList, + projectOutputTransformerList, + false, + predicate.isPresent()); + } + + @Override + public Operator visitProject(ProjectNode node, C context) { + ITableTypeProvider typeProvider = context.getTableTypeProvider(); + Optional predicate; + Operator inputOperator; + List inputDataTypes; + Map> inputLocations; + if (node.getChild() instanceof FilterNode) { + FilterNode filterNode = (FilterNode) node.getChild(); + predicate = Optional.of(filterNode.getPredicate()); + inputOperator = filterNode.getChild().accept(this, context); + inputDataTypes = getInputColumnTypes(filterNode, typeProvider); + inputLocations = makeLayout(filterNode.getChildren()); + } else { + predicate = Optional.empty(); + inputOperator = node.getChild().accept(this, context); + inputDataTypes = getInputColumnTypes(node, typeProvider); + inputLocations = makeLayout(node.getChildren()); + } + + return constructFilterAndProjectOperator( + predicate, + inputOperator, + node.getAssignments().getMap().values().toArray(new Expression[0]), + inputDataTypes, + inputLocations, + node.getPlanNodeId(), + context); + } + + private List getInputColumnTypes(PlanNode node, ITableTypeProvider typeProvider) { + // ignore "time" column + return node.getChildren().stream() + .map(PlanNode::getOutputSymbols) + .flatMap(List::stream) + .map(s -> getTSDataType(typeProvider.getTableModelType(s))) + .collect(Collectors.toList()); + } + + @Override + public Operator visitGapFill(GapFillNode node, C context) { + Operator child = node.getChild().accept(this, context); + List inputDataTypes = + getOutputColumnTypes(node.getChild(), context.getTableTypeProvider()); + int timeColumnIndex = getColumnIndex(node.getGapFillColumn(), node.getChild()); + if (node.getGapFillGroupingKeys().isEmpty()) { // without group keys + if (node.getMonthDuration() == 0) { // without month interval + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), GapFillWoGroupWoMoOperator.class.getSimpleName()); + return new GapFillWoGroupWoMoOperator( + operatorContext, + child, + timeColumnIndex, + node.getStartTime(), + node.getEndTime(), + inputDataTypes, + node.getNonMonthDuration()); + } else { // with month interval + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), GapFillWoGroupWMoOperator.class.getSimpleName()); + return new GapFillWoGroupWMoOperator( + operatorContext, + child, + timeColumnIndex, + node.getStartTime(), + node.getEndTime(), + inputDataTypes, + node.getMonthDuration(), + context.getZoneId()); + } + + } else { // with group keys + Set groupingKeysIndexSet = new HashSet<>(); + Comparator groupKeyComparator = + genFillGroupKeyComparator( + node.getGapFillGroupingKeys(), node, inputDataTypes, groupingKeysIndexSet); + if (node.getMonthDuration() == 0) { // without month interval + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), GapFillWGroupWoMoOperator.class.getSimpleName()); + return new GapFillWGroupWoMoOperator( + operatorContext, + child, + timeColumnIndex, + node.getStartTime(), + node.getEndTime(), + groupKeyComparator, + inputDataTypes, + groupingKeysIndexSet, + node.getNonMonthDuration()); + } else { // with month interval + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), GapFillWGroupWMoOperator.class.getSimpleName()); + return new GapFillWGroupWMoOperator( + operatorContext, + child, + timeColumnIndex, + node.getStartTime(), + node.getEndTime(), + groupKeyComparator, + inputDataTypes, + groupingKeysIndexSet, + node.getMonthDuration(), + context.getZoneId()); + } + } + } + + @Override + public Operator visitPreviousFill(PreviousFillNode node, C context) { + Operator child = node.getChild().accept(this, context); + + List inputDataTypes = + getOutputColumnTypes(node.getChild(), context.getTableTypeProvider()); + int inputColumnCount = inputDataTypes.size(); + int helperColumnIndex = -1; + if (node.getHelperColumn().isPresent()) { + helperColumnIndex = getColumnIndex(node.getHelperColumn().get(), node.getChild()); + } + IFill[] fillArray = + getPreviousFill( + inputColumnCount, + inputDataTypes, + node.getTimeBound().orElse(null), + context.getZoneId()); + + if (node.getGroupingKeys().isPresent()) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), PreviousFillWithGroupOperator.class.getSimpleName()); + return new PreviousFillWithGroupOperator( + operatorContext, + fillArray, + child, + helperColumnIndex, + genFillGroupKeyComparator( + node.getGroupingKeys().get(), node, inputDataTypes, new HashSet<>()), + inputDataTypes); + } else { + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), TableFillOperator.class.getSimpleName()); + return new TableFillOperator(operatorContext, fillArray, child, helperColumnIndex); + } + } + + // used by fill and gapfill + private Comparator genFillGroupKeyComparator( + List groupingKeys, + SingleChildProcessNode node, + List inputDataTypes, + Set groupKeysIndex) { + int groupKeysCount = groupingKeys.size(); + List sortOrderList = new ArrayList<>(groupKeysCount); + List groupItemIndexList = new ArrayList<>(groupKeysCount); + List groupItemDataTypeList = new ArrayList<>(groupKeysCount); + Map columnIndex = + makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); + for (Symbol symbol : groupingKeys) { + // sort order for fill_group should always be ASC_NULLS_LAST, it should be same as + // QueryPlanner.fillGroup + sortOrderList.add(ASC_NULLS_LAST); + int index = columnIndex.get(symbol); + groupItemIndexList.add(index); + groupItemDataTypeList.add(inputDataTypes.get(index)); + } + groupKeysIndex.addAll(groupItemIndexList); + return getComparatorForTable(sortOrderList, groupItemIndexList, groupItemDataTypeList); + } + + // index starts from 0 + private int getColumnIndex(Symbol symbol, PlanNode node) { + String name = symbol.getName(); + int channel = 0; + for (Symbol columnName : node.getOutputSymbols()) { + if (columnName.getName().equals(name)) { + return channel; + } + channel++; + } + throw new IllegalStateException( + String.format("Found no column %s in %s", symbol, node.getOutputSymbols())); + } + + @Override + public Operator visitLinearFill(LinearFillNode node, C context) { + Operator child = node.getChild().accept(this, context); + + List inputDataTypes = + getOutputColumnTypes(node.getChild(), context.getTableTypeProvider()); + int inputColumnCount = inputDataTypes.size(); + int helperColumnIndex = getColumnIndex(node.getHelperColumn(), node.getChild()); + ILinearFill[] fillArray = getLinearFill(inputColumnCount, inputDataTypes); + + if (node.getGroupingKeys().isPresent()) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, + node.getPlanNodeId(), + TableLinearFillWithGroupOperator.class.getSimpleName()); + return new TableLinearFillWithGroupOperator( + operatorContext, + fillArray, + child, + helperColumnIndex, + genFillGroupKeyComparator( + node.getGroupingKeys().get(), node, inputDataTypes, new HashSet<>()), + inputDataTypes); + } else { + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), TableLinearFillOperator.class.getSimpleName()); + return new TableLinearFillOperator(operatorContext, fillArray, child, helperColumnIndex); + } + } + + @Override + public Operator visitValueFill(ValueFillNode node, C context) { + Operator child = node.getChild().accept(this, context); + CommonOperatorContext operatorContext = + addOperatorContext(context, node.getPlanNodeId(), TableFillOperator.class.getSimpleName()); + List inputDataTypes = + getOutputColumnTypes(node.getChild(), context.getTableTypeProvider()); + int inputColumnCount = inputDataTypes.size(); + Literal filledValue = node.getFilledValue(); + return new TableFillOperator( + operatorContext, + getValueFill(inputColumnCount, inputDataTypes, filledValue, context), + child, + -1); + } + + private IFill[] getValueFill( + int inputColumnCount, List inputDataTypes, Literal filledValue, C context) { + IFill[] constantFill = new IFill[inputColumnCount]; + for (int i = 0; i < inputColumnCount; i++) { + switch (inputDataTypes.get(i)) { + case BOOLEAN: + Boolean bool = filledValue.accept(new CastToBooleanLiteralVisitor(), null); + if (bool == null) { + constantFill[i] = IDENTITY_FILL; + } else { + constantFill[i] = new BooleanConstantFill(bool); + } + break; + case TEXT: + case STRING: + Binary binary = + filledValue.accept(new CastToStringLiteralVisitor(TSFileConfig.STRING_CHARSET), null); + if (binary == null) { + constantFill[i] = IDENTITY_FILL; + } else { + constantFill[i] = new BinaryConstantFill(binary); + } + break; + case BLOB: + Binary blob = filledValue.accept(new CastToBlobLiteralVisitor(), null); + if (blob == null) { + constantFill[i] = IDENTITY_FILL; + } else { + constantFill[i] = new BinaryConstantFill(blob); + } + break; + case INT32: + Integer intValue = filledValue.accept(new CastToInt32LiteralVisitor(), null); + if (intValue == null) { + constantFill[i] = IDENTITY_FILL; + } else { + constantFill[i] = new IntConstantFill(intValue); + } + break; + case DATE: + Integer dateValue = filledValue.accept(new CastToDateLiteralVisitor(), null); + if (dateValue == null) { + constantFill[i] = IDENTITY_FILL; + } else { + constantFill[i] = new IntConstantFill(dateValue); + } + break; + case INT64: + Long longValue = filledValue.accept(new CastToInt64LiteralVisitor(), null); + if (longValue == null) { + constantFill[i] = IDENTITY_FILL; + } else { + constantFill[i] = new LongConstantFill(longValue); + } + break; + case TIMESTAMP: + Long timestampValue = + filledValue.accept(new CastToTimestampLiteralVisitor(context.getZoneId()), null); + if (timestampValue == null) { + constantFill[i] = IDENTITY_FILL; + } else { + constantFill[i] = new LongConstantFill(timestampValue); + } + break; + case FLOAT: + Float floatValue = filledValue.accept(new CastToFloatLiteralVisitor(), null); + if (floatValue == null) { + constantFill[i] = IDENTITY_FILL; + } else { + constantFill[i] = new FloatConstantFill(floatValue); + } + break; + case DOUBLE: + Double doubleValue = filledValue.accept(new CastToDoubleLiteralVisitor(), null); + if (doubleValue == null) { + constantFill[i] = IDENTITY_FILL; + } else { + constantFill[i] = new DoubleConstantFill(doubleValue); + } + break; + default: + throw new IllegalArgumentException(UNKNOWN_DATATYPE + inputDataTypes.get(i)); + } + } + return constantFill; + } + + @Override + public Operator visitLimit(LimitNode node, C context) { + Operator child = node.getChild().accept(this, context); + CommonOperatorContext operatorContext = + addOperatorContext(context, node.getPlanNodeId(), LimitOperator.class.getSimpleName()); + + return new LimitOperator(operatorContext, node.getCount(), child); + } + + @Override + public Operator visitOffset(OffsetNode node, C context) { + Operator child = node.getChild().accept(this, context); + CommonOperatorContext operatorContext = + addOperatorContext(context, node.getPlanNodeId(), OffsetOperator.class.getSimpleName()); + + return new OffsetOperator(operatorContext, node.getCount(), child); + } + + @Override + public Operator visitOutput(OutputNode node, C context) { + return node.getChild().accept(this, context); + } + + @Override + public Operator visitCollect(CollectNode node, C context) { + CommonOperatorContext operatorContext = + addOperatorContext(context, node.getPlanNodeId(), CollectOperator.class.getSimpleName()); + List children = new ArrayList<>(node.getChildren().size()); + for (PlanNode child : node.getChildren()) { + children.add(this.process(child, context)); + } + return new CollectOperator(operatorContext, children); + } + + @Override + public Operator visitMergeSort(MergeSortNode node, C context) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), TableMergeSortOperator.class.getSimpleName()); + List children = new ArrayList<>(node.getChildren().size()); + for (PlanNode child : node.getChildren()) { + children.add(this.process(child, context)); + } + List dataTypes = getOutputColumnTypes(node, context.getTableTypeProvider()); + int sortItemsCount = node.getOrderingScheme().getOrderBy().size(); + + List sortItemIndexList = new ArrayList<>(sortItemsCount); + List sortItemDataTypeList = new ArrayList<>(sortItemsCount); + genSortInformation( + node.getOutputSymbols(), + node.getOrderingScheme(), + sortItemIndexList, + sortItemDataTypeList, + context.getTableTypeProvider()); + + return new TableMergeSortOperator( + operatorContext, + children, + dataTypes, + getComparatorForTable( + node.getOrderingScheme().getOrderingList(), sortItemIndexList, sortItemDataTypeList)); + } + + @Override + public Operator visitSort(SortNode node, C context) { + CommonOperatorContext operatorContext = + addOperatorContext(context, node.getPlanNodeId(), TableSortOperator.class.getSimpleName()); + List dataTypes = getOutputColumnTypes(node, context.getTableTypeProvider()); + int sortItemsCount = node.getOrderingScheme().getOrderBy().size(); + + List sortItemIndexList = new ArrayList<>(sortItemsCount); + List sortItemDataTypeList = new ArrayList<>(sortItemsCount); + genSortInformation( + node.getOutputSymbols(), + node.getOrderingScheme(), + sortItemIndexList, + sortItemDataTypeList, + context.getTableTypeProvider()); + + Operator child = node.getChild().accept(this, context); + + return new TableSortOperator( + operatorContext, + child, + dataTypes, + getSortTmpDir(operatorContext), + getComparatorForTable( + node.getOrderingScheme().getOrderingList(), sortItemIndexList, sortItemDataTypeList)); + } + + protected abstract String getSortTmpDir(CommonOperatorContext operatorContext); + + protected abstract CommonOperatorContext addOperatorContext( + C context, PlanNodeId planNodeId, String operatorType); + + @Override + public Operator visitTopK(TopKNode node, C context) { + CommonOperatorContext operatorContext = + addOperatorContext(context, node.getPlanNodeId(), TableTopKOperator.class.getSimpleName()); + List children = new ArrayList<>(node.getChildren().size()); + for (PlanNode child : node.getChildren()) { + children.add(this.process(child, context)); + } + List dataTypes = getOutputColumnTypes(node, context.getTableTypeProvider()); + int sortItemsCount = node.getOrderingScheme().getOrderBy().size(); + + List sortItemIndexList = new ArrayList<>(sortItemsCount); + List sortItemDataTypeList = new ArrayList<>(sortItemsCount); + genSortInformation( + node.getOutputSymbols(), + node.getOrderingScheme(), + sortItemIndexList, + sortItemDataTypeList, + context.getTableTypeProvider()); + return new TableTopKOperator( + operatorContext, + children, + dataTypes, + getComparatorForTable( + node.getOrderingScheme().getOrderingList(), sortItemIndexList, sortItemDataTypeList), + (int) node.getCount(), + node.isChildrenDataInOrder()); + } + + protected List getOutputColumnTypes(PlanNode node, ITableTypeProvider typeProvider) { + return node.getOutputSymbols().stream() + .map(s -> getTSDataType(typeProvider.getTableModelType(s))) + .collect(Collectors.toList()); + } + + protected void genSortInformation( + List outputSymbols, + OrderingScheme orderingScheme, + List sortItemIndexList, + List sortItemDataTypeList, + ITableTypeProvider typeProvider) { + Map columnIndex = new HashMap<>(); + int index = 0; + for (Symbol symbol : outputSymbols) { + columnIndex.put(symbol, index++); + } + orderingScheme + .getOrderBy() + .forEach( + sortItem -> { + Integer i = columnIndex.get(sortItem); + if (i == null) { + throw new IllegalStateException( + String.format( + "Sort Item %s is not included in children's output columns", sortItem)); + } + sortItemIndexList.add(i); + sortItemDataTypeList.add(getTSDataType(typeProvider.getTableModelType(sortItem))); + }); + } + + @Override + public Operator visitStreamSort(StreamSortNode node, C context) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), TableStreamSortOperator.class.getSimpleName()); + List dataTypes = getOutputColumnTypes(node, context.getTableTypeProvider()); + int sortItemsCount = node.getOrderingScheme().getOrderBy().size(); + + List sortItemIndexList = new ArrayList<>(sortItemsCount); + List sortItemDataTypeList = new ArrayList<>(sortItemsCount); + genSortInformation( + node.getOutputSymbols(), + node.getOrderingScheme(), + sortItemIndexList, + sortItemDataTypeList, + context.getTableTypeProvider()); + + Operator child = node.getChild().accept(this, context); + + return new TableStreamSortOperator( + operatorContext, + child, + dataTypes, + getSortTmpDir(operatorContext), + getComparatorForTable( + node.getOrderingScheme().getOrderingList(), sortItemIndexList, sortItemDataTypeList), + getComparatorForTable( + node.getOrderingScheme() + .getOrderingList() + .subList(0, node.getStreamCompareKeyEndIndex() + 1), + sortItemIndexList.subList(0, node.getStreamCompareKeyEndIndex() + 1), + sortItemDataTypeList.subList(0, node.getStreamCompareKeyEndIndex() + 1)), + TSFileDescriptor.getInstance().getConfig().getMaxTsBlockLineNumber()); + } + + @Override + public Operator visitGroup(GroupNode node, C context) { + if (node.getPartitionKeyCount() == 0) { + SortNode sortNode = + new SortNode( + node.getPlanNodeId(), node.getChild(), node.getOrderingScheme(), false, false); + return visitSort(sortNode, context); + } else { + StreamSortNode streamSortNode = + new StreamSortNode( + node.getPlanNodeId(), + node.getChild(), + node.getOrderingScheme(), + false, + false, + node.getPartitionKeyCount() - 1); + return visitStreamSort(streamSortNode, context); + } + } + + @Override + public Operator visitJoin(JoinNode node, C context) { + List dataTypes = getOutputColumnTypes(node, context.getTableTypeProvider()); + + Operator leftChild = node.getLeftChild().accept(this, context); + Operator rightChild = node.getRightChild().accept(this, context); + + ImmutableMap leftColumnNamesMap = + makeLayoutFromOutputSymbols(node.getLeftChild().getOutputSymbols()); + int[] leftOutputSymbolIdx = new int[node.getLeftOutputSymbols().size()]; + for (int i = 0; i < leftOutputSymbolIdx.length; i++) { + Integer index = leftColumnNamesMap.get(node.getLeftOutputSymbols().get(i)); + if (index == null) { + throw new IllegalStateException( + "Left child of JoinNode doesn't contain LeftOutputSymbol " + + node.getLeftOutputSymbols().get(i)); + } + leftOutputSymbolIdx[i] = index; + } + + ImmutableMap rightColumnNamesMap = + makeLayoutFromOutputSymbols(node.getRightChild().getOutputSymbols()); + int[] rightOutputSymbolIdx = new int[node.getRightOutputSymbols().size()]; + for (int i = 0; i < rightOutputSymbolIdx.length; i++) { + Integer index = rightColumnNamesMap.get(node.getRightOutputSymbols().get(i)); + if (index == null) { + throw new IllegalStateException( + "Right child of JoinNode doesn't contain RightOutputSymbol " + + node.getLeftOutputSymbols().get(i)); + } + rightOutputSymbolIdx[i] = index; + } + + // cross join does not need time column + if (node.isCrossJoin()) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, + node.getPlanNodeId(), + SimpleNestedLoopCrossJoinOperator.class.getSimpleName()); + return new SimpleNestedLoopCrossJoinOperator( + operatorContext, + leftChild, + rightChild, + leftOutputSymbolIdx, + rightOutputSymbolIdx, + dataTypes); + } + + semanticCheckForJoin(node); + + JoinNode.AsofJoinClause asofJoinClause = node.getAsofCriteria().orElse(null); + int equiSize = node.getCriteria().size(); + int size = equiSize + (asofJoinClause == null ? 0 : 1); + int[] leftJoinKeyPositions = new int[size]; + for (int i = 0; i < equiSize; i++) { + Integer leftJoinKeyPosition = leftColumnNamesMap.get(node.getCriteria().get(i).getLeft()); + if (leftJoinKeyPosition == null) { + throw new IllegalStateException("Left child of JoinNode doesn't contain left join key."); + } + leftJoinKeyPositions[i] = leftJoinKeyPosition; + } + + List joinKeyTypes = new ArrayList<>(size); + int[] rightJoinKeyPositions = new int[size]; + for (int i = 0; i < equiSize; i++) { + Integer rightJoinKeyPosition = rightColumnNamesMap.get(node.getCriteria().get(i).getRight()); + if (rightJoinKeyPosition == null) { + throw new IllegalStateException("Right child of JoinNode doesn't contain right join key."); + } + rightJoinKeyPositions[i] = rightJoinKeyPosition; + + Type leftJoinKeyType = + context.getTableTypeProvider().getTableModelType(node.getCriteria().get(i).getLeft()); + checkIfJoinKeyTypeMatches( + leftJoinKeyType, + context.getTableTypeProvider().getTableModelType(node.getCriteria().get(i).getRight())); + joinKeyTypes.add(leftJoinKeyType); + } + + if (asofJoinClause != null) { + Integer leftAsofJoinKeyPosition = leftColumnNamesMap.get(asofJoinClause.getLeft()); + if (leftAsofJoinKeyPosition == null) { + throw new IllegalStateException( + "Left child of JoinNode doesn't contain left ASOF main join key."); + } + leftJoinKeyPositions[equiSize] = leftAsofJoinKeyPosition; + Integer rightAsofJoinKeyPosition = rightColumnNamesMap.get(asofJoinClause.getRight()); + if (rightAsofJoinKeyPosition == null) { + throw new IllegalStateException( + "Right child of JoinNode doesn't contain right ASOF main join key."); + } + rightJoinKeyPositions[equiSize] = rightAsofJoinKeyPosition; + + if (context.getTableTypeProvider().getTableModelType(asofJoinClause.getLeft()) != TIMESTAMP) { + throw new IllegalStateException("Type of left ASOF Join key is not TIMESTAMP"); + } + if (context.getTableTypeProvider().getTableModelType(asofJoinClause.getRight()) + != TIMESTAMP) { + throw new IllegalStateException("Type of right ASOF Join key is not TIMESTAMP"); + } + + ComparisonExpression.Operator asofOperator = asofJoinClause.getOperator(); + + if (requireNonNull(node.getJoinType()) == JoinNode.JoinType.INNER) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, + node.getPlanNodeId(), + AsofMergeSortInnerJoinOperator.class.getSimpleName()); + return new AsofMergeSortInnerJoinOperator( + operatorContext, + leftChild, + leftJoinKeyPositions, + leftOutputSymbolIdx, + rightChild, + rightJoinKeyPositions, + rightOutputSymbolIdx, + JoinKeyComparatorFactory.getAsofComparators( + joinKeyTypes, + asofOperator == ComparisonExpression.Operator.LESS_THAN_OR_EQUAL + || asofOperator == ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL, + !asofJoinClause.isOperatorContainsGreater()), + dataTypes); + } else if (requireNonNull(node.getJoinType()) == JoinNode.JoinType.LEFT) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), AsofMergeSortLeftJoinOperator.class.getSimpleName()); + return new AsofMergeSortLeftJoinOperator( + operatorContext, + leftChild, + leftJoinKeyPositions, + leftOutputSymbolIdx, + rightChild, + rightJoinKeyPositions, + rightOutputSymbolIdx, + JoinKeyComparatorFactory.getAsofComparators( + joinKeyTypes, + asofOperator == ComparisonExpression.Operator.LESS_THAN_OR_EQUAL + || asofOperator == ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL, + !asofJoinClause.isOperatorContainsGreater()), + dataTypes); + } else { + throw new IllegalStateException("Unsupported ASOF join type: " + node.getJoinType()); + } + } + + if (requireNonNull(node.getJoinType()) == JoinNode.JoinType.INNER) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), MergeSortInnerJoinOperator.class.getSimpleName()); + return new MergeSortInnerJoinOperator( + operatorContext, + leftChild, + leftJoinKeyPositions, + leftOutputSymbolIdx, + rightChild, + rightJoinKeyPositions, + rightOutputSymbolIdx, + JoinKeyComparatorFactory.getComparators(joinKeyTypes, true), + dataTypes); + } else if (requireNonNull(node.getJoinType()) == JoinNode.JoinType.FULL) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), MergeSortFullOuterJoinOperator.class.getSimpleName()); + return new MergeSortFullOuterJoinOperator( + operatorContext, + leftChild, + leftJoinKeyPositions, + leftOutputSymbolIdx, + rightChild, + rightJoinKeyPositions, + rightOutputSymbolIdx, + JoinKeyComparatorFactory.getComparators(joinKeyTypes, true), + dataTypes, + joinKeyTypes.stream().map(this::buildUpdateLastRowFunction).collect(Collectors.toList())); + } else if (requireNonNull(node.getJoinType()) == JoinNode.JoinType.LEFT) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), MergeSortLeftJoinOperator.class.getSimpleName()); + return new MergeSortLeftJoinOperator( + operatorContext, + leftChild, + leftJoinKeyPositions, + leftOutputSymbolIdx, + rightChild, + rightJoinKeyPositions, + rightOutputSymbolIdx, + JoinKeyComparatorFactory.getComparators(joinKeyTypes, true), + dataTypes); + } + + throw new IllegalStateException("Unsupported join type: " + node.getJoinType()); + } + + protected void semanticCheckForJoin(JoinNode node) { + try { + checkArgument( + !node.getFilter().isPresent() || node.getFilter().get().equals(TRUE_LITERAL), + String.format( + "Filter is not supported in %s. Filter is %s.", + node.getJoinType(), node.getFilter().map(Expression::toString).orElse("null"))); + checkArgument( + !node.getCriteria().isEmpty() || node.getAsofCriteria().isPresent(), + String.format("%s must have join keys.", node.getJoinType())); + } catch (IllegalArgumentException e) { + throw new SemanticException(e.getMessage()); + } + } + + protected BiFunction buildUpdateLastRowFunction(Type joinKeyType) { + switch (joinKeyType.getTypeEnum()) { + case INT32: + return (inputColumn, rowIndex) -> + new IntColumn( + 1, Optional.empty(), new int[] {inputColumn.getInt(rowIndex)}, TSDataType.INT32); + case DATE: + return (inputColumn, rowIndex) -> + new IntColumn( + 1, Optional.empty(), new int[] {inputColumn.getInt(rowIndex)}, TSDataType.DATE); + case INT64: + case TIMESTAMP: + return (inputColumn, rowIndex) -> + new LongColumn(1, Optional.empty(), new long[] {inputColumn.getLong(rowIndex)}); + case FLOAT: + return (inputColumn, rowIndex) -> + new FloatColumn(1, Optional.empty(), new float[] {inputColumn.getFloat(rowIndex)}); + case DOUBLE: + return (inputColumn, rowIndex) -> + new DoubleColumn(1, Optional.empty(), new double[] {inputColumn.getDouble(rowIndex)}); + case BOOLEAN: + return (inputColumn, rowIndex) -> + new BooleanColumn( + 1, Optional.empty(), new boolean[] {inputColumn.getBoolean(rowIndex)}); + case STRING: + case TEXT: + case BLOB: + return (inputColumn, rowIndex) -> + new BinaryColumn(1, Optional.empty(), new Binary[] {inputColumn.getBinary(rowIndex)}); + default: + throw new UnsupportedOperationException("Unsupported data type: " + joinKeyType); + } + } + + @Override + public Operator visitSemiJoin(SemiJoinNode node, C context) { + List dataTypes = getOutputColumnTypes(node, context.getTableTypeProvider()); + + Operator leftChild = node.getLeftChild().accept(this, context); + Operator rightChild = node.getRightChild().accept(this, context); + + ImmutableMap sourceColumnNamesMap = + makeLayoutFromOutputSymbols(node.getSource().getOutputSymbols()); + List sourceOutputSymbols = node.getSource().getOutputSymbols(); + int[] sourceOutputSymbolIdx = new int[node.getSource().getOutputSymbols().size()]; + for (int i = 0; i < sourceOutputSymbolIdx.length; i++) { + Integer index = sourceColumnNamesMap.get(sourceOutputSymbols.get(i)); + checkNotNull(index, "Source of SemiJoinNode doesn't contain sourceOutputSymbol."); + sourceOutputSymbolIdx[i] = index; + } + + ImmutableMap filteringSourceColumnNamesMap = + makeLayoutFromOutputSymbols(node.getRightChild().getOutputSymbols()); + + Integer sourceJoinKeyPosition = sourceColumnNamesMap.get(node.getSourceJoinSymbol()); + checkNotNull(sourceJoinKeyPosition, "Source of SemiJoinNode doesn't contain sourceJoinSymbol."); + + Integer filteringSourceJoinKeyPosition = + filteringSourceColumnNamesMap.get(node.getFilteringSourceJoinSymbol()); + checkNotNull( + filteringSourceJoinKeyPosition, + "FilteringSource of SemiJoinNode doesn't contain filteringSourceJoinSymbol."); + + Type sourceJoinKeyType = + context.getTableTypeProvider().getTableModelType(node.getSourceJoinSymbol()); + + checkIfJoinKeyTypeMatches( + sourceJoinKeyType, + context.getTableTypeProvider().getTableModelType(node.getFilteringSourceJoinSymbol())); + + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), MergeSortSemiJoinOperator.class.getSimpleName()); + return new MergeSortSemiJoinOperator( + operatorContext, + leftChild, + sourceJoinKeyPosition, + sourceOutputSymbolIdx, + rightChild, + filteringSourceJoinKeyPosition, + JoinKeyComparatorFactory.getComparator(sourceJoinKeyType, true), + dataTypes); + } + + protected void checkIfJoinKeyTypeMatches(Type leftJoinKeyType, Type rightJoinKeyType) { + if (leftJoinKeyType != rightJoinKeyType) { + throw new SemanticException( + "Join key type mismatch. Left join key type: " + + leftJoinKeyType + + ", right join key type: " + + rightJoinKeyType); + } + } + + @Override + public Operator visitEnforceSingleRow(EnforceSingleRowNode node, C context) { + Operator child = node.getChild().accept(this, context); + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), EnforceSingleRowOperator.class.getSimpleName()); + + return new EnforceSingleRowOperator(operatorContext, child); + } + + @Override + public Operator visitAssignUniqueId(AssignUniqueId node, C context) { + Operator child = node.getChild().accept(this, context); + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), EnforceSingleRowOperator.class.getSimpleName()); + + return new AssignUniqueIdOperator(operatorContext, child); + } + + @Override + public Operator visitAggregation(AggregationNode node, C context) { + + Operator child = node.getChild().accept(this, context); + + if (node.getGroupingKeys().isEmpty()) { + return planGlobalAggregation(node, child, context.getTableTypeProvider(), context); + } + + return planGroupByAggregation(node, child, context.getTableTypeProvider(), context); + } + + private Operator planGlobalAggregation( + AggregationNode node, Operator child, ITableTypeProvider typeProvider, C context) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), AggregationOperator.class.getSimpleName()); + Map aggregationMap = node.getAggregations(); + ImmutableList.Builder aggregatorBuilder = new ImmutableList.Builder<>(); + Map childLayout = + makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); + + node.getOutputSymbols() + .forEach( + symbol -> + aggregatorBuilder.add( + buildAggregator( + childLayout, + symbol, + aggregationMap.get(symbol), + node.getStep(), + typeProvider, + true, + false, + null, + Collections.emptySet()))); + return new AggregationOperator(operatorContext, child, aggregatorBuilder.build()); + } + + // timeColumnName and measurementColumnNames will only be set for AggTableScan. + protected TableAggregator buildAggregator( + Map childLayout, + Symbol symbol, + AggregationNode.Aggregation aggregation, + AggregationNode.Step step, + ITableTypeProvider typeProvider, + boolean scanAscending, + boolean isAggTableScan, + String timeColumnName, + Set measurementColumnNames) { + List argumentChannels = new ArrayList<>(); + for (Expression argument : aggregation.getArguments()) { + Symbol argumentSymbol = Symbol.from(argument); + argumentChannels.add(childLayout.get(argumentSymbol)); + } + + String functionName = aggregation.getResolvedFunction().getSignature().getName(); + List originalArgumentTypes = + aggregation.getResolvedFunction().getSignature().getArgumentTypes().stream() + .map(InternalTypeManager::getTSDataType) + .collect(Collectors.toList()); + TableAccumulator accumulator = + createAccumulator( + functionName, + getAggregationTypeByFuncName(functionName), + originalArgumentTypes, + aggregation.getArguments(), + Collections.emptyMap(), + scanAscending, + isAggTableScan, + timeColumnName, + measurementColumnNames, + aggregation.isDistinct()); + + OptionalInt maskChannel = OptionalInt.empty(); + if (aggregation.hasMask()) { + maskChannel = OptionalInt.of(childLayout.get(aggregation.getMask().get())); + } + + return new TableAggregator( + accumulator, + step, + getTSDataType(typeProvider.getTableModelType(symbol)), + argumentChannels, + maskChannel); + } + + protected Operator planGroupByAggregation( + AggregationNode node, Operator child, ITableTypeProvider typeProvider, C context) { + Map childLayout = + makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); + + List groupByChannels = getChannelsForSymbols(node.getGroupingKeys(), childLayout); + List groupByTypes = + node.getGroupingKeys().stream() + .map(typeProvider::getTableModelType) + .collect(toImmutableList()); + + if (node.isStreamable()) { + if (groupByTypes.size() == node.getPreGroupedSymbols().size()) { + ImmutableList.Builder aggregatorBuilder = new ImmutableList.Builder<>(); + node.getAggregations() + .forEach( + (k, v) -> + aggregatorBuilder.add( + buildAggregator( + childLayout, + k, + v, + node.getStep(), + typeProvider, + true, + false, + null, + Collections.emptySet()))); + + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), StreamingAggregationOperator.class.getSimpleName()); + return new StreamingAggregationOperator( + operatorContext, + child, + groupByTypes, + groupByChannels, + genGroupKeyComparator(groupByTypes, groupByChannels), + aggregatorBuilder.build(), + Long.MAX_VALUE, + false, + Long.MAX_VALUE); + } + + ImmutableList.Builder aggregatorBuilder = new ImmutableList.Builder<>(); + node.getAggregations() + .forEach( + (k, v) -> + aggregatorBuilder.add( + buildGroupByAggregator(childLayout, k, v, node.getStep(), typeProvider))); + + Set preGroupedKeys = ImmutableSet.copyOf(node.getPreGroupedSymbols()); + List groupingKeys = node.getGroupingKeys(); + ImmutableList.Builder preGroupedTypesBuilder = new ImmutableList.Builder<>(); + ImmutableList.Builder preGroupedChannelsBuilder = new ImmutableList.Builder<>(); + ImmutableList.Builder preGroupedIndexInResultBuilder = new ImmutableList.Builder<>(); + ImmutableList.Builder unPreGroupedTypesBuilder = new ImmutableList.Builder<>(); + ImmutableList.Builder unPreGroupedChannelsBuilder = new ImmutableList.Builder<>(); + ImmutableList.Builder unPreGroupedIndexInResultBuilder = + new ImmutableList.Builder<>(); + for (int i = 0; i < groupByTypes.size(); i++) { + if (preGroupedKeys.contains(groupingKeys.get(i))) { + preGroupedTypesBuilder.add(groupByTypes.get(i)); + preGroupedChannelsBuilder.add(groupByChannels.get(i)); + preGroupedIndexInResultBuilder.add(i); + } else { + unPreGroupedTypesBuilder.add(groupByTypes.get(i)); + unPreGroupedChannelsBuilder.add(groupByChannels.get(i)); + unPreGroupedIndexInResultBuilder.add(i); + } + } + + List preGroupedChannels = preGroupedChannelsBuilder.build(); + CommonOperatorContext operatorContext = + addOperatorContext( + context, + node.getPlanNodeId(), + StreamingHashAggregationOperator.class.getSimpleName()); + return new StreamingHashAggregationOperator( + operatorContext, + child, + preGroupedChannels, + preGroupedIndexInResultBuilder.build(), + unPreGroupedTypesBuilder.build(), + unPreGroupedChannelsBuilder.build(), + unPreGroupedIndexInResultBuilder.build(), + genGroupKeyComparator(preGroupedTypesBuilder.build(), preGroupedChannels), + aggregatorBuilder.build(), + node.getStep(), + DEFAULT_GROUP_NUMBER, + Long.MAX_VALUE, + false, + Long.MAX_VALUE); + } + + ImmutableList.Builder aggregatorBuilder = new ImmutableList.Builder<>(); + node.getAggregations() + .forEach( + (k, v) -> + aggregatorBuilder.add( + buildGroupByAggregator(childLayout, k, v, node.getStep(), typeProvider))); + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), HashAggregationOperator.class.getSimpleName()); + + return new HashAggregationOperator( + operatorContext, + child, + groupByTypes, + groupByChannels, + aggregatorBuilder.build(), + node.getStep(), + DEFAULT_GROUP_NUMBER, + Long.MAX_VALUE, + false, + Long.MAX_VALUE); + } + + protected Comparator genGroupKeyComparator( + List groupTypes, List groupByChannels) { + return getComparatorForTable( + // SortOrder is not sensitive here, the comparator is just used to judge equality. + groupTypes.stream().map(k -> ASC_NULLS_LAST).collect(Collectors.toList()), + groupByChannels, + groupTypes.stream().map(InternalTypeManager::getTSDataType).collect(Collectors.toList())); + } + + protected static List getChannelsForSymbols( + List symbols, Map layout) { + ImmutableList.Builder builder = ImmutableList.builder(); + for (Symbol symbol : symbols) { + builder.add(layout.get(symbol)); + } + return builder.build(); + } + + protected GroupedAggregator buildGroupByAggregator( + Map childLayout, + Symbol symbol, + AggregationNode.Aggregation aggregation, + AggregationNode.Step step, + ITableTypeProvider typeProvider) { + List argumentChannels = new ArrayList<>(); + for (Expression argument : aggregation.getArguments()) { + Symbol argumentSymbol = Symbol.from(argument); + argumentChannels.add(childLayout.get(argumentSymbol)); + } + + String functionName = aggregation.getResolvedFunction().getSignature().getName(); + List originalArgumentTypes = + aggregation.getResolvedFunction().getSignature().getArgumentTypes().stream() + .map(InternalTypeManager::getTSDataType) + .collect(Collectors.toList()); + GroupedAccumulator accumulator = + createGroupedAccumulator( + functionName, + getAggregationTypeByFuncName(functionName), + originalArgumentTypes, + Collections.emptyList(), + Collections.emptyMap(), + true, + aggregation.isDistinct()); + + OptionalInt maskChannel = OptionalInt.empty(); + if (aggregation.hasMask()) { + maskChannel = OptionalInt.of(childLayout.get(aggregation.getMask().get())); + } + + return new GroupedAggregator( + accumulator, + step, + getTSDataType(typeProvider.getTableModelType(symbol)), + argumentChannels, + maskChannel); + } + + @Override + public Operator visitTableFunctionProcessor(TableFunctionProcessorNode node, C context) { + TableFunction tableFunction = metadata.getTableFunction(node.getName()); + TableFunctionProcessorProvider processorProvider = + tableFunction.getProcessorProvider(node.getTableFunctionHandle()); + if (node.getChildren().isEmpty()) { + List outputDataTypes = + node.getOutputSymbols().stream() + .map(context.getTableTypeProvider()::getTableModelType) + .map(InternalTypeManager::getTSDataType) + .collect(Collectors.toList()); + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), TableFunctionLeafOperator.class.getSimpleName()); + return new TableFunctionLeafOperator(operatorContext, processorProvider, outputDataTypes); + } else { + Operator operator = node.getChild().accept(this, context); + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), TableFunctionOperator.class.getSimpleName()); + + List inputDataTypes = + node.getChild().getOutputSymbols().stream() + .map(context.getTableTypeProvider()::getTableModelType) + .map(InternalTypeManager::getTSDataType) + .collect(Collectors.toList()); + + List outputDataTypes = + node.getOutputSymbols().stream() + .map(context.getTableTypeProvider()::getTableModelType) + .map(InternalTypeManager::getTSDataType) + .collect(Collectors.toList()); + + int properChannelCount = node.getProperOutputs().size(); + Optional passThroughSpecification = + node.getPassThroughSpecification(); + + Map childLayout = + makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); + List requiredChannels = + getChannelsForSymbols(node.getRequiredSymbols(), childLayout); + List passThroughChannels = + passThroughSpecification + .map( + passThrough -> + getChannelsForSymbols( + passThrough.getColumns().stream() + .map(TableFunctionNode.PassThroughColumn::getSymbol) + .collect(Collectors.toList()), + childLayout)) + .orElse(Collections.emptyList()); + List partitionChannels; + if (node.getDataOrganizationSpecification().isPresent()) { + partitionChannels = + getChannelsForSymbols( + node.getDataOrganizationSpecification().get().getPartitionBy(), childLayout); + } else { + partitionChannels = Collections.emptyList(); + } + return new TableFunctionOperator( + operatorContext, + processorProvider, + operator, + inputDataTypes, + outputDataTypes, + properChannelCount, + requiredChannels, + passThroughChannels, + passThroughSpecification + .map(TableFunctionNode.PassThroughSpecification::isDeclaredAsPassThrough) + .orElse(false), + partitionChannels, + node.isRequireRecordSnapshot()); + } + } + + private PatternAggregator buildPatternAggregator( + ResolvedFunction resolvedFunction, + List> arguments, + List argumentChannels, + PatternAggregationTracker patternAggregationTracker) { + String functionName = resolvedFunction.getSignature().getName(); + List originalArgumentTypes = + resolvedFunction.getSignature().getArgumentTypes().stream() + .map(InternalTypeManager::getTSDataType) + .collect(Collectors.toList()); + + TableAccumulator accumulator = + createBuiltinAccumulator(getAggregationTypeByFuncName(functionName), originalArgumentTypes); + + BoundSignature signature = resolvedFunction.getSignature(); + + return new PatternAggregator( + signature, accumulator, argumentChannels, patternAggregationTracker); + } + + @Override + public Operator visitPatternRecognition(PatternRecognitionNode node, C context) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), PatternRecognitionOperator.class.getSimpleName()); + + Operator child = node.getChild().accept(this, context); + + Map childLayout = + makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); + + List partitionBySymbols = node.getPartitionBy(); + List partitionChannels = + ImmutableList.copyOf(getChannelsForSymbols(partitionBySymbols, childLayout)); + + List sortChannels = ImmutableList.of(); + List sortOrder = ImmutableList.of(); + + if (node.getOrderingScheme().isPresent()) { + OrderingScheme orderingScheme = node.getOrderingScheme().get(); + sortChannels = getChannelsForSymbols(orderingScheme.getOrderBy(), childLayout); + sortOrder = orderingScheme.getOrderingList(); + } + + // The output order for pattern recognition operation is defined as follows: + // - for ONE ROW PER MATCH: partition by symbols, then measures, + // - for ALL ROWS PER MATCH: partition by symbols, order by symbols, measures, remaining input + // symbols. + + // all output column types of the input table + List inputDataTypes = + getOutputColumnTypes(node.getChild(), context.getTableTypeProvider()); + + // input channels to be passed directly to output, excluding MEASURES columns + ImmutableList.Builder outputChannels = ImmutableList.builder(); + // output dataTypes, used to construct the output TsBlock, including MEASURES columns + ImmutableList.Builder outputDataTypes = ImmutableList.builder(); + + if (node.getRowsPerMatch() == ONE) { + // ONE ROW PER MATCH: partition columns, MEASURES + + // add all partition columns + outputChannels.addAll(partitionChannels); + for (int i = 0; i < partitionBySymbols.size(); i++) { + Symbol symbol = partitionBySymbols.get(i); + // obtain the absolute index of the symbol in the base table through `childLayout` + outputDataTypes.add(inputDataTypes.get(childLayout.get(symbol))); + } + } else { + // ALL ROWS PER MATCH: all input columns, MEASURES + + outputChannels.addAll( + IntStream.range(0, inputDataTypes.size()).boxed().collect(toImmutableList())); + outputDataTypes.addAll(inputDataTypes); + } + + // add MEASURES columns + for (Map.Entry measure : node.getMeasures().entrySet()) { + outputDataTypes.add(getTSDataType(measure.getValue().getType())); + } + + // prepare structures specific to PatternRecognitionNode + // 1. establish a two-way mapping of IrLabels to `int` + List primaryLabels = ImmutableList.copyOf(node.getVariableDefinitions().keySet()); + ImmutableList.Builder labelNamesBuilder = ImmutableList.builder(); + ImmutableMap.Builder mappingBuilder = ImmutableMap.builder(); + for (int i = 0; i < primaryLabels.size(); i++) { + IrLabel label = primaryLabels.get(i); + labelNamesBuilder.add(label.getName()); + mappingBuilder.put(label, i); + } + Map mapping = mappingBuilder.buildOrThrow(); + List labelNames = labelNamesBuilder.build(); + + // 2. rewrite pattern to program + Program program = IrRowPatternToProgramRewriter.rewrite(node.getPattern(), mapping); + + // 3. DEFINE: prepare patternVariableComputation (PatternVariableRecognizer is to be + // instantiated once per partition) + + // during pattern matching, each thread will have a list of aggregations necessary for label + // evaluations. + // the list of aggregations for a thread will be produced at thread creation time from this + // supplier list, respecting the order. + // pointers in LabelEvaluator and ThreadEquivalence will access aggregations by position in + // list. + int matchAggregationIndex = 0; + ImmutableList.Builder variableRecognizerAggregatorBuilder = + ImmutableList.builder(); + List variableRecognizerAggregators = ImmutableList.of(); + + ImmutableList.Builder evaluationsBuilder = + ImmutableList.builder(); + + for (Map.Entry entry : + node.getVariableDefinitions().entrySet()) { + String variableName = entry.getKey().getName(); + ExpressionAndValuePointers expressionAndValuePointers = entry.getValue(); + + // convert the `ValuePointer` in the `Assignment` to `PhysicalValueAccessor` + List valueAccessors = new ArrayList<>(); + for (ExpressionAndValuePointers.Assignment assignment : + expressionAndValuePointers.getAssignments()) { + ValuePointer pointer = assignment.getValuePointer(); + if (pointer instanceof MatchNumberValuePointer) { + valueAccessors.add( + new PhysicalValuePointer(MATCH_NUMBER, INT64, LogicalIndexNavigation.NO_OP)); + } else if (pointer instanceof ClassifierValuePointer) { + ClassifierValuePointer classifierPointer = (ClassifierValuePointer) pointer; + valueAccessors.add( + new PhysicalValuePointer( + CLASSIFIER, + STRING, + new LogicalIndexNavigation(classifierPointer.getLogicalIndexPointer(), mapping))); + } else if (pointer instanceof ScalarValuePointer) { + ScalarValuePointer scalarPointer = (ScalarValuePointer) pointer; + valueAccessors.add( + new PhysicalValuePointer( + getOnlyElement( + getChannelsForSymbols( + ImmutableList.of(scalarPointer.getInputSymbol()), childLayout)), + context.getTableTypeProvider().getTableModelType(scalarPointer.getInputSymbol()), + new LogicalIndexNavigation(scalarPointer.getLogicalIndexPointer(), mapping))); + } else if (pointer instanceof AggregationValuePointer) { + AggregationValuePointer aggregationPointer = (AggregationValuePointer) pointer; + + ResolvedFunction resolvedFunction = aggregationPointer.getFunction(); + + ImmutableList.Builder> builder = ImmutableList.builder(); + List signatureTypes = resolvedFunction.getSignature().getArgumentTypes(); + for (int i = 0; i < aggregationPointer.getArguments().size(); i++) { + builder.add( + new AbstractMap.SimpleEntry<>( + aggregationPointer.getArguments().get(i), signatureTypes.get(i))); + } + List> arguments = builder.build(); + + List valueChannels = new ArrayList<>(); + + for (Map.Entry argumentWithType : arguments) { + Expression argument = argumentWithType.getKey(); + valueChannels.add(childLayout.get(Symbol.from(argument))); + } + + AggregationLabelSet labelSet = aggregationPointer.getSetDescriptor(); + Set labels = + labelSet.getLabels().stream().map(mapping::get).collect(Collectors.toSet()); + PatternAggregationTracker patternAggregationTracker = + new PatternAggregationTracker( + labels, aggregationPointer.getSetDescriptor().isRunning()); + + PatternAggregator variableRecognizerAggregator = + buildPatternAggregator( + resolvedFunction, arguments, valueChannels, patternAggregationTracker); + + variableRecognizerAggregatorBuilder.add(variableRecognizerAggregator); + + valueAccessors.add(new PhysicalAggregationPointer(matchAggregationIndex)); + matchAggregationIndex++; + } + } + + variableRecognizerAggregators = variableRecognizerAggregatorBuilder.build(); + + // transform the symbolic expression tree in the logical planning stage into a parametric + // expression tree + Computation computation = Computation.ComputationParser.parse(expressionAndValuePointers); + + // construct a `PatternVariableComputation` object, where valueAccessors is a parameter list + // and computation is a parametric expression tree, encapsulating the computation logic + PatternVariableRecognizer.PatternVariableComputation patternVariableComputation = + new PatternVariableRecognizer.PatternVariableComputation( + valueAccessors, computation, ImmutableList.of(), labelNames); + + evaluationsBuilder.add(patternVariableComputation); + } + + // 4. MEASURES: prepare measures computations + ImmutableList.Builder measureComputationsBuilder = + ImmutableList.builder(); + + matchAggregationIndex = 0; + ImmutableList.Builder measurePatternAggregatorBuilder = + ImmutableList.builder(); + List measurePatternAggregators = ImmutableList.of(); + + for (Measure measure : node.getMeasures().values()) { + ExpressionAndValuePointers expressionAndValuePointers = + measure.getExpressionAndValuePointers(); + + // convert the `ValuePointer` in the `Assignment` to `PhysicalValueAccessor` + List valueAccessors = new ArrayList<>(); + for (ExpressionAndValuePointers.Assignment assignment : + expressionAndValuePointers.getAssignments()) { + ValuePointer pointer = assignment.getValuePointer(); + if (pointer instanceof MatchNumberValuePointer) { + valueAccessors.add( + new PhysicalValuePointer(MATCH_NUMBER, INT64, LogicalIndexNavigation.NO_OP)); + } else if (pointer instanceof ClassifierValuePointer) { + ClassifierValuePointer classifierPointer = (ClassifierValuePointer) pointer; + valueAccessors.add( + new PhysicalValuePointer( + CLASSIFIER, + STRING, + new LogicalIndexNavigation(classifierPointer.getLogicalIndexPointer(), mapping))); + } else if (pointer instanceof ScalarValuePointer) { + ScalarValuePointer scalarPointer = (ScalarValuePointer) pointer; + valueAccessors.add( + new PhysicalValuePointer( + getOnlyElement( + getChannelsForSymbols( + ImmutableList.of(scalarPointer.getInputSymbol()), childLayout)), + context.getTableTypeProvider().getTableModelType(scalarPointer.getInputSymbol()), + new LogicalIndexNavigation(scalarPointer.getLogicalIndexPointer(), mapping))); + } else if (pointer instanceof AggregationValuePointer) { + AggregationValuePointer aggregationPointer = (AggregationValuePointer) pointer; + + ResolvedFunction resolvedFunction = aggregationPointer.getFunction(); + + ImmutableList.Builder> builder = ImmutableList.builder(); + List signatureTypes = resolvedFunction.getSignature().getArgumentTypes(); + for (int i = 0; i < aggregationPointer.getArguments().size(); i++) { + builder.add( + new AbstractMap.SimpleEntry<>( + aggregationPointer.getArguments().get(i), signatureTypes.get(i))); + } + List> arguments = builder.build(); + + List valueChannels = new ArrayList<>(); + + for (Map.Entry argumentWithType : arguments) { + Expression argument = argumentWithType.getKey(); + valueChannels.add(childLayout.get(Symbol.from(argument))); + } + + AggregationLabelSet labelSet = aggregationPointer.getSetDescriptor(); + Set labels = + labelSet.getLabels().stream().map(mapping::get).collect(Collectors.toSet()); + PatternAggregationTracker patternAggregationTracker = + new PatternAggregationTracker( + labels, aggregationPointer.getSetDescriptor().isRunning()); + + PatternAggregator measurePatternAggregator = + buildPatternAggregator( + resolvedFunction, arguments, valueChannels, patternAggregationTracker); + + measurePatternAggregatorBuilder.add(measurePatternAggregator); + + valueAccessors.add(new PhysicalAggregationPointer(matchAggregationIndex)); + matchAggregationIndex++; + } + } + + measurePatternAggregators = measurePatternAggregatorBuilder.build(); + + // transform the symbolic expression tree in the logical planning stage into a parametric + // expression tree + Computation computation = Computation.ComputationParser.parse(expressionAndValuePointers); + + // construct a `PatternExpressionComputation` object, where valueAccessors is a parameter + // list and computation is a parametric expression tree, encapsulating the computation logic. + PatternExpressionComputation measureComputation = + new PatternExpressionComputation(valueAccessors, computation, measurePatternAggregators); + + measureComputationsBuilder.add(measureComputation); + } + + // 5. prepare SKIP TO navigation + Optional skipToNavigation = Optional.empty(); + if (!node.getSkipToLabels().isEmpty()) { + boolean last = node.getSkipToPosition().equals(LAST); + skipToNavigation = + Optional.of( + new LogicalIndexNavigation( + new LogicalIndexPointer(node.getSkipToLabels(), last, false, 0, 0), mapping)); + } + + return new PatternRecognitionOperator( + operatorContext, + child, + inputDataTypes, + outputDataTypes.build(), + outputChannels.build(), + partitionChannels, + sortChannels, + node.getRowsPerMatch(), + node.getSkipToPosition(), + skipToNavigation, + new Matcher(program, variableRecognizerAggregators), + evaluationsBuilder.build(), + measurePatternAggregators, + measureComputationsBuilder.build(), + labelNames); + } + + /** + * Checks if the ordering column in aggregations matches the time column. only check for + * FIRST/LAST/FIRST_BY/LAST_BY + */ + protected boolean checkOrderColumnIsTime( + Map aggregations, String timeColumnName) { + + for (Map.Entry entry : aggregations.entrySet()) { + String functionName = + entry.getValue().getResolvedFunction().getSignature().getName().toLowerCase(); + List arguments = entry.getValue().getArguments(); + Expression lastParam = entry.getValue().getArguments().get(arguments.size() - 1); + + switch (functionName) { + case FIRST_AGGREGATION: + case LAST_AGGREGATION: + case FIRST_BY_AGGREGATION: + case LAST_BY_AGGREGATION: + if (!((SymbolReference) lastParam).getName().equalsIgnoreCase(timeColumnName)) { + return false; + } + break; + } + } + return true; + } + + protected boolean canUseLastRowOptimize(List aggregators) { + for (TableAggregator aggregator : aggregators) { + if (aggregator.getAccumulator() instanceof LastDescAccumulator) { + if (!((LastDescAccumulator) aggregator.getAccumulator()).isTimeColumn()) { + return false; + } + } else if (aggregator.getAccumulator() instanceof LastByDescAccumulator) { + if (!((LastByDescAccumulator) aggregator.getAccumulator()).yIsTimeColumn()) { + return false; + } + } else { + return false; + } + } + return true; + } + + protected boolean canUseLastValuesOptimize(List aggregators) { + for (TableAggregator aggregator : aggregators) { + if (aggregator.getAccumulator() instanceof LastByDescAccumulator) { + // cannot optimize when x is Measurement or y is not Measurement + if (((LastByDescAccumulator) aggregator.getAccumulator()).xIsMeasurementColumn() + || !((LastByDescAccumulator) aggregator.getAccumulator()).yIsMeasurementColumn()) { + return false; + } + } else if (!(aggregator.getAccumulator() instanceof LastDescAccumulator)) { + return false; + } + } + return true; + } + + protected enum OptimizeType { + LAST_ROW, + LAST_VALUES, + NOOP + } + + @Override + public Operator visitMarkDistinct(MarkDistinctNode node, C context) { + Operator child = node.getChild().accept(this, context); + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), MarkDistinctOperator.class.getSimpleName()); + + ITableTypeProvider typeProvider = context.getTableTypeProvider(); + Map childLayout = + makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); + + return new MarkDistinctOperator( + operatorContext, + child, + node.getChild().getOutputSymbols().stream() + .map(typeProvider::getTableModelType) + .collect(Collectors.toList()), + node.getDistinctSymbols().stream().map(childLayout::get).collect(Collectors.toList()), + Optional.empty()); + } + + @Override + public Operator visitWindowFunction(WindowNode node, C context) { + ITableTypeProvider typeProvider = context.getTableTypeProvider(); + Operator child = node.getChild().accept(this, context); + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), TableWindowOperator.class.getSimpleName()); + + Map childLayout = + makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); + + // Partition channel + List partitionBySymbols = node.getSpecification().getPartitionBy(); + List partitionChannels = + ImmutableList.copyOf(getChannelsForSymbols(partitionBySymbols, childLayout)); + + // Sort channel + List sortChannels = ImmutableList.of(); + List sortOrder = ImmutableList.of(); + if (node.getSpecification().getOrderingScheme().isPresent()) { + OrderingScheme orderingScheme = node.getSpecification().getOrderingScheme().get(); + sortChannels = getChannelsForSymbols(orderingScheme.getOrderBy(), childLayout); + sortOrder = orderingScheme.getOrderingList(); + } + + // Output channel + ImmutableList.Builder outputChannels = ImmutableList.builder(); + List outputDataTypes = new ArrayList<>(); + List inputDataTypes = + getOutputColumnTypes(node.getChild(), context.getTableTypeProvider()); + for (int i = 0; i < inputDataTypes.size(); i++) { + outputChannels.add(i); + outputDataTypes.add(inputDataTypes.get(i)); + } + + // Window functions + List frameInfoList = new ArrayList<>(); + List windowFunctions = new ArrayList<>(); + List windowFunctionOutputSymbols = new ArrayList<>(); + List windowFunctionOutputDataTypes = new ArrayList<>(); + for (Map.Entry entry : node.getWindowFunctions().entrySet()) { + // Create FrameInfo + WindowNode.Frame frame = entry.getValue().getFrame(); + + Optional frameStartChannel = Optional.empty(); + if (frame.getStartValue().isPresent()) { + frameStartChannel = Optional.ofNullable(childLayout.get(frame.getStartValue().get())); + } + Optional frameEndChannel = Optional.empty(); + if (frame.getEndValue().isPresent()) { + frameEndChannel = Optional.ofNullable(childLayout.get(frame.getEndValue().get())); + } + + Optional sortKeyChannel = Optional.empty(); + Optional ordering = Optional.empty(); + if (node.getSpecification().getOrderingScheme().isPresent()) { + sortKeyChannel = Optional.of(sortChannels.get(0)); + if (sortOrder.get(0).isNullsFirst()) { + if (sortOrder.get(0).isAscending()) { + ordering = Optional.of(ASC_NULLS_FIRST); + } else { + ordering = Optional.of(DESC_NULLS_FIRST); + } + } else { + if (sortOrder.get(0).isAscending()) { + ordering = Optional.of(ASC_NULLS_LAST); + } else { + ordering = Optional.of(DESC_NULLS_LAST); + } + } + } + FrameInfo frameInfo = + new FrameInfo( + frame.getType(), + frame.getStartType(), + frameStartChannel, + frame.getEndType(), + frameEndChannel, + sortKeyChannel, + ordering); + frameInfoList.add(frameInfo); + + // Arguments + WindowNode.Function function = entry.getValue(); + ResolvedFunction resolvedFunction = function.getResolvedFunction(); + List argumentChannels = new ArrayList<>(); + for (Expression argument : function.getArguments()) { + Symbol argumentSymbol = Symbol.from(argument); + argumentChannels.add(childLayout.get(argumentSymbol)); + } + + // Return value + Type returnType = resolvedFunction.getSignature().getReturnType(); + windowFunctionOutputDataTypes.add(getTSDataType(returnType)); + + // Window function + Symbol symbol = entry.getKey(); + WindowFunction windowFunction; + FunctionKind functionKind = resolvedFunction.getFunctionKind(); + if (functionKind == FunctionKind.AGGREGATE) { + WindowAggregator tableWindowAggregator = + buildWindowAggregator(symbol, function, typeProvider, argumentChannels); + windowFunction = new AggregationWindowFunction(tableWindowAggregator); + } else if (functionKind == FunctionKind.WINDOW) { + String functionName = function.getResolvedFunction().getSignature().getName(); + windowFunction = + WindowFunctionFactory.createBuiltinWindowFunction( + functionName, argumentChannels, function.isIgnoreNulls()); + } else { + throw new UnsupportedOperationException("Unsupported function kind: " + functionKind); + } + + windowFunctions.add(windowFunction); + windowFunctionOutputSymbols.add(symbol); + } + + // Compute layout + ImmutableMap.Builder outputMappings = ImmutableMap.builder(); + for (Symbol symbol : node.getChild().getOutputSymbols()) { + outputMappings.put(symbol, childLayout.get(symbol)); + } + int channel = inputDataTypes.size(); + + for (Symbol symbol : windowFunctionOutputSymbols) { + outputMappings.put(symbol, channel); + channel++; + } + + outputDataTypes.addAll(windowFunctionOutputDataTypes); + return new TableWindowOperator( + operatorContext, + child, + inputDataTypes, + outputDataTypes, + outputChannels.build(), + windowFunctions, + frameInfoList, + partitionChannels, + sortChannels); + } + + private WindowAggregator buildWindowAggregator( + Symbol symbol, + WindowNode.Function function, + ITableTypeProvider typeProvider, + List argumentChannels) { + // Create accumulator first + String functionName = function.getResolvedFunction().getSignature().getName(); + List originalArgumentTypes = + function.getResolvedFunction().getSignature().getArgumentTypes().stream() + .map(InternalTypeManager::getTSDataType) + .collect(Collectors.toList()); + TableAccumulator accumulator = + createBuiltinAccumulator(getAggregationTypeByFuncName(functionName), originalArgumentTypes); + + // Create aggregator by accumulator + return new WindowAggregator( + accumulator, getTSDataType(typeProvider.getTableModelType(symbol)), argumentChannels); + } + + @Override + public Operator visitUnion(UnionNode node, C context) { + List children = + node.getChildren().stream() + .map(child -> child.accept(this, context)) + .collect(Collectors.toList()); + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), MappingCollectOperator.class.getSimpleName()); + + int size = children.size(); + List> mappings = new ArrayList<>(size); + List unionOutputs = node.getOutputSymbols(); + ListMultimap outputToInputs = node.getSymbolMapping(); + for (int i = 0; i < size; i++) { + Map childOutputs = + makeLayoutFromOutputSymbols(node.getChildren().get(i).getOutputSymbols()); + int finalI = i; + mappings.add( + unionOutputs.stream() + .map(symbol -> childOutputs.get(outputToInputs.get(symbol).get(finalI))) + .collect(Collectors.toList())); + } + return new MappingCollectOperator(operatorContext, children, mappings); + } + + @Override + public Operator visitValuesNode(ValuesNode node, C context) { + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), MappingCollectOperator.class.getSimpleName()); + + // Currently we only support empty values operator + assert node.getRowCount() == 0; + return new ValuesOperator(operatorContext, ImmutableList.of()); + } + + @Override + public Operator visitRowNumber(RowNumberNode node, C context) { + Operator child = node.getChild().accept(this, context); + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), MappingCollectOperator.class.getSimpleName()); + + List partitionBySymbols = node.getPartitionBy(); + Map childLayout = + makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); + List partitionChannels = getChannelsForSymbols(partitionBySymbols, childLayout); + List inputDataTypes = + getOutputColumnTypes(node.getChild(), context.getTableTypeProvider()); + + ImmutableList.Builder outputChannels = ImmutableList.builder(); + for (int i = 0; i < inputDataTypes.size(); i++) { + outputChannels.add(i); + } + + // compute the layout of the output from the window operator + ImmutableMap.Builder outputMappings = ImmutableMap.builder(); + outputMappings.putAll(childLayout); + + // row number function goes in the last channel + int channel = inputDataTypes.size(); + outputMappings.put(node.getRowNumberSymbol(), channel); + + return new RowNumberOperator( + operatorContext, + child, + inputDataTypes, + outputChannels.build(), + partitionChannels, + node.getMaxRowCountPerPartition(), + 10_000); + } + + @Override + public Operator visitTopKRanking(TopKRankingNode node, C context) { + Operator child = node.getChild().accept(this, context); + CommonOperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), MappingCollectOperator.class.getSimpleName()); + + List partitionBySymbols = node.getSpecification().getPartitionBy(); + Map childLayout = + makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); + List partitionChannels = getChannelsForSymbols(partitionBySymbols, childLayout); + List inputDataTypes = + getOutputColumnTypes(node.getChild(), context.getTableTypeProvider()); + List partitionTypes = + partitionChannels.stream().map(inputDataTypes::get).collect(toImmutableList()); + + List orderBySymbols = new ArrayList<>(); + Optional orderingScheme = node.getSpecification().getOrderingScheme(); + if (orderingScheme.isPresent()) { + orderBySymbols = orderingScheme.get().getOrderBy(); + } + + List sortOrder = new ArrayList<>(); + List sortChannels = getChannelsForSymbols(orderBySymbols, childLayout); + if (orderingScheme.isPresent()) { + sortOrder = + orderBySymbols.stream() + .map(symbol -> orderingScheme.get().getOrdering(symbol)) + .collect(toImmutableList()); + } + + ImmutableList.Builder outputChannels = ImmutableList.builder(); + for (int i = 0; i < inputDataTypes.size(); i++) { + outputChannels.add(i); + } + + // compute the layout of the output from the window operator + ImmutableMap.Builder outputMappings = ImmutableMap.builder(); + outputMappings.putAll(childLayout); + + if (!node.isPartial() || !partitionChannels.isEmpty()) { + // ranking function goes in the last channel + int channel = inputDataTypes.size(); + outputMappings.put(node.getRankingSymbol(), channel); + } + + return new TopKRankingOperator( + operatorContext, + child, + node.getRankingType(), + inputDataTypes, + outputChannels.build(), + partitionChannels, + partitionTypes, + sortChannels, + sortOrder, + node.getMaxRankingPerPartition(), + node.isPartial(), + Optional.empty(), + 1000, + Optional.empty()); + } + + protected abstract SessionInfo getSessionInfo(C context); +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/MemoryReservationManager.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/planner/memory/MemoryReservationManager.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/MemoryReservationManager.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/planner/memory/MemoryReservationManager.java index 6239367312015..9df8d52131bb0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/MemoryReservationManager.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/planner/memory/MemoryReservationManager.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.planner.memory; +package org.apache.iotdb.calc.plan.planner.memory; import org.apache.tsfile.utils.Pair; diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/metadata/CommonMetadataUtils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/metadata/CommonMetadataUtils.java new file mode 100644 index 0000000000000..89a09cb7dcc2d --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/metadata/CommonMetadataUtils.java @@ -0,0 +1,185 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.calc.plan.relational.metadata; + +import org.apache.iotdb.commons.exception.IoTDBException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.exception.table.TableNotExistsException; +import org.apache.iotdb.rpc.TSStatusCode; + +import org.apache.tsfile.read.common.type.ObjectType; +import org.apache.tsfile.read.common.type.StringType; +import org.apache.tsfile.read.common.type.Type; + +import java.util.List; + +import static org.apache.tsfile.read.common.type.BinaryType.TEXT; +import static org.apache.tsfile.read.common.type.BlobType.BLOB; +import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; +import static org.apache.tsfile.read.common.type.DateType.DATE; +import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; +import static org.apache.tsfile.read.common.type.FloatType.FLOAT; +import static org.apache.tsfile.read.common.type.IntType.INT32; +import static org.apache.tsfile.read.common.type.LongType.INT64; +import static org.apache.tsfile.read.common.type.TimestampType.TIMESTAMP; +import static org.apache.tsfile.read.common.type.UnknownType.UNKNOWN; + +public class CommonMetadataUtils { + public static boolean isTwoNumericType(List argumentTypes) { + return argumentTypes.size() == 2 + && isNumericType(argumentTypes.get(0)) + && isNumericType(argumentTypes.get(1)); + } + + public static boolean isOneNumericType(List argumentTypes) { + return argumentTypes.size() == 1 && isNumericType(argumentTypes.get(0)); + } + + public static boolean isTwoSupportedMathNumericType(List argumentTypes) { + return argumentTypes.size() == 2 + && isSupportedMathNumericType(argumentTypes.get(0)) + && isSupportedMathNumericType(argumentTypes.get(1)); + } + + public static boolean isOneSupportedMathNumericType(List argumentTypes) { + return argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)); + } + + public static boolean isOneBooleanType(List argumentTypes) { + return argumentTypes.size() == 1 && BOOLEAN.equals(argumentTypes.get(0)); + } + + public static boolean isOneCharType(List argumentTypes) { + return argumentTypes.size() == 1 && isCharType(argumentTypes.get(0)); + } + + public static boolean isTwoCharType(List argumentTypes) { + return argumentTypes.size() == 2 + && isCharType(argumentTypes.get(0)) + && isCharType(argumentTypes.get(1)); + } + + public static boolean isThreeCharType(List argumentTypes) { + return argumentTypes.size() == 3 + && isCharType(argumentTypes.get(0)) + && isCharType(argumentTypes.get(1)) + && isCharType(argumentTypes.get(2)); + } + + public static boolean isCharType(Type type) { + return TEXT.equals(type) || StringType.STRING.equals(type); + } + + public static boolean isObjectType(Type type) { + return ObjectType.OBJECT.equals(type); + } + + public static boolean isBlobType(Type type) { + return BLOB.equals(type); + } + + public static boolean isBool(Type type) { + return BOOLEAN.equals(type); + } + + public static boolean isDecimalType(Type type) { + return DOUBLE.equals(type) || FLOAT.equals(type); + } + + public static boolean isSupportedMathNumericType(Type type) { + return DOUBLE.equals(type) || FLOAT.equals(type) || INT32.equals(type) || INT64.equals(type); + } + + public static boolean isNumericType(Type type) { + return DOUBLE.equals(type) + || FLOAT.equals(type) + || INT32.equals(type) + || INT64.equals(type) + || TIMESTAMP.equals(type); + } + + public static boolean isTimestampType(Type type) { + return TIMESTAMP.equals(type); + } + + public static boolean isUnknownType(Type type) { + return UNKNOWN.equals(type); + } + + public static boolean isIntegerNumber(Type type) { + return INT32.equals(type) || INT64.equals(type); + } + + public static boolean isTwoTypeComparable(List argumentTypes) { + if (argumentTypes.size() != 2) { + return false; + } + Type left = argumentTypes.get(0); + Type right = argumentTypes.get(1); + if (left.equals(right)) { + return true; + } + + // Boolean type and Binary Type can not be compared with other types + return (isNumericType(left) && isNumericType(right)) + || (isCharType(left) && isCharType(right)) + || (isUnknownType(left) && (isNumericType(right) || isCharType(right))) + || ((isNumericType(left) || isCharType(left)) && isUnknownType(right)); + } + + public static boolean areAllTypesSameAndComparable(List argumentTypes) { + if (argumentTypes == null || argumentTypes.isEmpty()) { + return true; + } + Type firstType = argumentTypes.get(0); + if (!firstType.isComparable()) { + return false; + } + return argumentTypes.stream().allMatch(type -> type.equals(firstType)); + } + + public static boolean isArithmeticType(Type type) { + return INT32.equals(type) + || INT64.equals(type) + || FLOAT.equals(type) + || DOUBLE.equals(type) + || DATE.equals(type) + || TIMESTAMP.equals(type); + } + + public static boolean isTwoTypeCalculable(List argumentTypes) { + if (argumentTypes.size() != 2) { + return false; + } + Type left = argumentTypes.get(0); + Type right = argumentTypes.get(1); + if ((isUnknownType(left) && isArithmeticType(right)) + || (isUnknownType(right) && isArithmeticType(left))) { + return true; + } + return isArithmeticType(left) && isArithmeticType(right); + } + + public static void throwTableNotExistsException(final String database, final String tableName) { + throw new SemanticException(new TableNotExistsException(database, tableName)); + } + + public static void throwColumnNotExistsException(final Object columnName) { + throw new SemanticException( + new IoTDBException( + String.format("Column '%s' cannot be resolved.", columnName), + TSStatusCode.COLUMN_NOT_EXISTS.getStatusCode())); + } +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/metadata/ITypeMetadata.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/metadata/ITypeMetadata.java new file mode 100644 index 0000000000000..b7f9405ad0c23 --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/metadata/ITypeMetadata.java @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.plan.relational.metadata; + +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeNotFoundException; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignature; + +import org.apache.tsfile.read.common.type.Type; + +public interface ITypeMetadata { + Type getType(TypeSignature signature) throws TypeNotFoundException; +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToBlobLiteralVisitor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToBlobLiteralVisitor.java new file mode 100644 index 0000000000000..e8c94bb0ecfe4 --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToBlobLiteralVisitor.java @@ -0,0 +1,90 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.plan.relational.planner; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; + +import org.apache.tsfile.utils.Binary; + +// return NULL, if we cannot parse literal to blob type +public class CastToBlobLiteralVisitor implements CommonQueryAstVisitor { + + @Override + public Binary visitLiteral(Literal node, Void context) { + throw new UnsupportedOperationException("Unhandled literal type: " + node); + } + + @Override + public Binary visitBooleanLiteral(BooleanLiteral node, Void context) { + return null; + } + + @Override + public Binary visitLongLiteral(LongLiteral node, Void context) { + return null; + } + + @Override + public Binary visitDoubleLiteral(DoubleLiteral node, Void context) { + return null; + } + + @Override + public Binary visitFloatLiteral(FloatLiteral node, Void context) { + return null; + } + + @Override + public Binary visitStringLiteral(StringLiteral node, Void context) { + try { + return new Binary(new BinaryLiteral(node.getValue()).getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Binary visitBinaryLiteral(BinaryLiteral node, Void context) { + return new Binary(node.getValue()); + } + + @Override + public Binary visitGenericLiteral(GenericLiteral node, Void context) { + try { + return new Binary(new BinaryLiteral(node.getValue()).getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Binary visitNullLiteral(NullLiteral node, Void context) { + return null; + } +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToBooleanLiteralVisitor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToBooleanLiteralVisitor.java new file mode 100644 index 0000000000000..0bd198954bd6c --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToBooleanLiteralVisitor.java @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.plan.relational.planner; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; + +// return NULL, if we cannot parse literal to boolean type +public class CastToBooleanLiteralVisitor implements CommonQueryAstVisitor { + + @Override + public Boolean visitLiteral(Literal node, Void context) { + throw new UnsupportedOperationException("Unhandled literal type: " + node); + } + + @Override + public Boolean visitBooleanLiteral(BooleanLiteral node, Void context) { + return node.getValue(); + } + + @Override + public Boolean visitLongLiteral(LongLiteral node, Void context) { + return node.getParsedValue() != 0; + } + + @Override + public Boolean visitDoubleLiteral(DoubleLiteral node, Void context) { + return node.getValue() != 0; + } + + @Override + public Boolean visitFloatLiteral(FloatLiteral node, Void context) { + return node.getValue() != 0; + } + + @Override + public Boolean visitStringLiteral(StringLiteral node, Void context) { + try { + return Boolean.parseBoolean(node.getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Boolean visitBinaryLiteral(BinaryLiteral node, Void context) { + return null; + } + + @Override + public Boolean visitGenericLiteral(GenericLiteral node, Void context) { + try { + return Boolean.parseBoolean(node.getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Boolean visitNullLiteral(NullLiteral node, Void context) { + return null; + } +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToDateLiteralVisitor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToDateLiteralVisitor.java new file mode 100644 index 0000000000000..8ad658e7118bc --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToDateLiteralVisitor.java @@ -0,0 +1,90 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.plan.relational.planner; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; + +import org.apache.tsfile.utils.DateUtils; + +// return NULL, if we cannot parse literal to date type +public class CastToDateLiteralVisitor implements CommonQueryAstVisitor { + + @Override + public Integer visitLiteral(Literal node, Void context) { + throw new UnsupportedOperationException("Unhandled literal type: " + node); + } + + @Override + public Integer visitBooleanLiteral(BooleanLiteral node, Void context) { + return null; + } + + @Override + public Integer visitLongLiteral(LongLiteral node, Void context) { + return (int) node.getParsedValue(); + } + + @Override + public Integer visitDoubleLiteral(DoubleLiteral node, Void context) { + return (int) node.getValue(); + } + + @Override + public Integer visitFloatLiteral(FloatLiteral node, Void context) { + return (int) node.getValue(); + } + + @Override + public Integer visitStringLiteral(StringLiteral node, Void context) { + try { + return DateUtils.parseDateExpressionToInt(node.getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Integer visitBinaryLiteral(BinaryLiteral node, Void context) { + return null; + } + + @Override + public Integer visitGenericLiteral(GenericLiteral node, Void context) { + try { + return DateUtils.parseDateExpressionToInt(node.getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Integer visitNullLiteral(NullLiteral node, Void context) { + return null; + } +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToDoubleLiteralVisitor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToDoubleLiteralVisitor.java new file mode 100644 index 0000000000000..f3b0e26512c7c --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToDoubleLiteralVisitor.java @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.plan.relational.planner; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; + +// return NULL, if we cannot parse literal to double type +public class CastToDoubleLiteralVisitor implements CommonQueryAstVisitor { + + @Override + public Double visitLiteral(Literal node, Void context) { + throw new UnsupportedOperationException("Unhandled literal type: " + node); + } + + @Override + public Double visitBooleanLiteral(BooleanLiteral node, Void context) { + return node.getValue() ? 1.0d : 0.0d; + } + + @Override + public Double visitLongLiteral(LongLiteral node, Void context) { + return (double) node.getParsedValue(); + } + + @Override + public Double visitDoubleLiteral(DoubleLiteral node, Void context) { + return node.getValue(); + } + + @Override + public Double visitFloatLiteral(FloatLiteral node, Void context) { + return (double) node.getValue(); + } + + @Override + public Double visitStringLiteral(StringLiteral node, Void context) { + try { + return Double.parseDouble(node.getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Double visitBinaryLiteral(BinaryLiteral node, Void context) { + return null; + } + + @Override + public Double visitGenericLiteral(GenericLiteral node, Void context) { + try { + return Double.parseDouble(node.getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Double visitNullLiteral(NullLiteral node, Void context) { + return null; + } +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToFloatLiteralVisitor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToFloatLiteralVisitor.java new file mode 100644 index 0000000000000..406aad21fa31e --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToFloatLiteralVisitor.java @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.plan.relational.planner; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; + +// return NULL, if we cannot parse literal to float type +public class CastToFloatLiteralVisitor implements CommonQueryAstVisitor { + + @Override + public Float visitLiteral(Literal node, Void context) { + throw new UnsupportedOperationException("Unhandled literal type: " + node); + } + + @Override + public Float visitBooleanLiteral(BooleanLiteral node, Void context) { + return node.getValue() ? 1.0f : 0.0f; + } + + @Override + public Float visitLongLiteral(LongLiteral node, Void context) { + return (float) node.getParsedValue(); + } + + @Override + public Float visitDoubleLiteral(DoubleLiteral node, Void context) { + return (float) node.getValue(); + } + + @Override + public Float visitFloatLiteral(FloatLiteral node, Void context) { + return node.getValue(); + } + + @Override + public Float visitStringLiteral(StringLiteral node, Void context) { + try { + return Float.parseFloat(node.getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Float visitBinaryLiteral(BinaryLiteral node, Void context) { + return null; + } + + @Override + public Float visitGenericLiteral(GenericLiteral node, Void context) { + try { + return Float.parseFloat(node.getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Float visitNullLiteral(NullLiteral node, Void context) { + return null; + } +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToInt32LiteralVisitor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToInt32LiteralVisitor.java new file mode 100644 index 0000000000000..2accba40d3447 --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToInt32LiteralVisitor.java @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.plan.relational.planner; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; + +// return NULL, if we cannot parse literal to INT32 type +public class CastToInt32LiteralVisitor implements CommonQueryAstVisitor { + + @Override + public Integer visitLiteral(Literal node, Void context) { + throw new UnsupportedOperationException("Unhandled literal type: " + node); + } + + @Override + public Integer visitBooleanLiteral(BooleanLiteral node, Void context) { + return node.getValue() ? 1 : 0; + } + + @Override + public Integer visitLongLiteral(LongLiteral node, Void context) { + return (int) node.getParsedValue(); + } + + @Override + public Integer visitDoubleLiteral(DoubleLiteral node, Void context) { + return (int) node.getValue(); + } + + @Override + public Integer visitFloatLiteral(FloatLiteral node, Void context) { + return (int) node.getValue(); + } + + @Override + public Integer visitStringLiteral(StringLiteral node, Void context) { + try { + return Integer.parseInt(node.getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Integer visitBinaryLiteral(BinaryLiteral node, Void context) { + return null; + } + + @Override + public Integer visitGenericLiteral(GenericLiteral node, Void context) { + try { + return Integer.parseInt(node.getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Integer visitNullLiteral(NullLiteral node, Void context) { + return null; + } +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToInt64LiteralVisitor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToInt64LiteralVisitor.java new file mode 100644 index 0000000000000..cfe7219f52f23 --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToInt64LiteralVisitor.java @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.plan.relational.planner; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; + +// return NULL, if we cannot parse literal to INT64 type +public class CastToInt64LiteralVisitor implements CommonQueryAstVisitor { + + @Override + public Long visitLiteral(Literal node, Void context) { + throw new UnsupportedOperationException("Unhandled literal type: " + node); + } + + @Override + public Long visitBooleanLiteral(BooleanLiteral node, Void context) { + return node.getValue() ? 1L : 0L; + } + + @Override + public Long visitLongLiteral(LongLiteral node, Void context) { + return node.getParsedValue(); + } + + @Override + public Long visitDoubleLiteral(DoubleLiteral node, Void context) { + return (long) node.getValue(); + } + + @Override + public Long visitFloatLiteral(FloatLiteral node, Void context) { + return (long) node.getValue(); + } + + @Override + public Long visitStringLiteral(StringLiteral node, Void context) { + try { + return Long.parseLong(node.getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Long visitBinaryLiteral(BinaryLiteral node, Void context) { + return null; + } + + @Override + public Long visitGenericLiteral(GenericLiteral node, Void context) { + try { + return Long.parseLong(node.getValue()); + } catch (Exception e) { + return null; + } + } + + @Override + public Long visitNullLiteral(NullLiteral node, Void context) { + return null; + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToStringLiteralVisitor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToStringLiteralVisitor.java similarity index 53% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToStringLiteralVisitor.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToStringLiteralVisitor.java index 726d817621a53..8ab893e3416be 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToStringLiteralVisitor.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToStringLiteralVisitor.java @@ -17,18 +17,18 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner; - -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; +package org.apache.iotdb.calc.plan.relational.planner; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; import org.apache.tsfile.utils.Binary; import org.apache.tsfile.utils.BytesUtils; @@ -36,7 +36,7 @@ import java.nio.charset.Charset; // return NULL, if we cannot parse literal to string/text type -public class CastToStringLiteralVisitor extends AstVisitor { +public class CastToStringLiteralVisitor implements CommonQueryAstVisitor { private final Charset charset; @@ -45,42 +45,42 @@ public CastToStringLiteralVisitor(Charset charset) { } @Override - protected Binary visitLiteral(Literal node, Void context) { + public Binary visitLiteral(Literal node, Void context) { throw new UnsupportedOperationException("Unhandled literal type: " + node); } @Override - protected Binary visitBooleanLiteral(BooleanLiteral node, Void context) { + public Binary visitBooleanLiteral(BooleanLiteral node, Void context) { return new Binary(String.valueOf(node.getValue()), charset); } @Override - protected Binary visitLongLiteral(LongLiteral node, Void context) { + public Binary visitLongLiteral(LongLiteral node, Void context) { return new Binary(node.getValue(), charset); } @Override - protected Binary visitDoubleLiteral(DoubleLiteral node, Void context) { + public Binary visitDoubleLiteral(DoubleLiteral node, Void context) { return new Binary(String.valueOf(node.getValue()), charset); } @Override - protected Binary visitFloatLiteral(FloatLiteral node, Void context) { + public Binary visitFloatLiteral(FloatLiteral node, Void context) { return new Binary(String.valueOf(node.getValue()), charset); } @Override - protected Binary visitStringLiteral(StringLiteral node, Void context) { + public Binary visitStringLiteral(StringLiteral node, Void context) { return new Binary(node.getValue(), charset); } @Override - protected Binary visitBinaryLiteral(BinaryLiteral node, Void context) { + public Binary visitBinaryLiteral(BinaryLiteral node, Void context) { return new Binary(BytesUtils.parseBlobByteArrayToString(node.getValue()), charset); } @Override - protected Binary visitGenericLiteral(GenericLiteral node, Void context) { + public Binary visitGenericLiteral(GenericLiteral node, Void context) { try { return new Binary(node.getValue(), charset); } catch (Exception e) { @@ -89,7 +89,7 @@ protected Binary visitGenericLiteral(GenericLiteral node, Void context) { } @Override - protected Binary visitNullLiteral(NullLiteral node, Void context) { + public Binary visitNullLiteral(NullLiteral node, Void context) { return null; } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToTimestampLiteralVisitor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToTimestampLiteralVisitor.java similarity index 50% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToTimestampLiteralVisitor.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToTimestampLiteralVisitor.java index 69fd8445a5765..554e8c9af4b83 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToTimestampLiteralVisitor.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/CastToTimestampLiteralVisitor.java @@ -17,24 +17,24 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner; +package org.apache.iotdb.calc.plan.relational.planner; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.utils.DateTimeUtils; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import java.time.ZoneId; // return NULL, if we cannot parse literal to timestamp type -public class CastToTimestampLiteralVisitor extends AstVisitor { +public class CastToTimestampLiteralVisitor implements CommonQueryAstVisitor { private final ZoneId zoneId; @@ -43,32 +43,32 @@ public CastToTimestampLiteralVisitor(ZoneId zoneId) { } @Override - protected Long visitLiteral(Literal node, Void context) { + public Long visitLiteral(Literal node, Void context) { throw new UnsupportedOperationException("Unhandled literal type: " + node); } @Override - protected Long visitBooleanLiteral(BooleanLiteral node, Void context) { + public Long visitBooleanLiteral(BooleanLiteral node, Void context) { return null; } @Override - protected Long visitLongLiteral(LongLiteral node, Void context) { + public Long visitLongLiteral(LongLiteral node, Void context) { return node.getParsedValue(); } @Override - protected Long visitDoubleLiteral(DoubleLiteral node, Void context) { + public Long visitDoubleLiteral(DoubleLiteral node, Void context) { return (long) node.getValue(); } @Override - protected Long visitFloatLiteral(FloatLiteral node, Void context) { + public Long visitFloatLiteral(FloatLiteral node, Void context) { return (long) node.getValue(); } @Override - protected Long visitStringLiteral(StringLiteral node, Void context) { + public Long visitStringLiteral(StringLiteral node, Void context) { try { return DateTimeUtils.convertDatetimeStrToLong(node.getValue(), zoneId); } catch (Exception e) { @@ -77,12 +77,12 @@ protected Long visitStringLiteral(StringLiteral node, Void context) { } @Override - protected Long visitBinaryLiteral(BinaryLiteral node, Void context) { + public Long visitBinaryLiteral(BinaryLiteral node, Void context) { return null; } @Override - protected Long visitGenericLiteral(GenericLiteral node, Void context) { + public Long visitGenericLiteral(GenericLiteral node, Void context) { try { return DateTimeUtils.convertDatetimeStrToLong(node.getValue(), zoneId); } catch (Exception e) { @@ -91,7 +91,7 @@ protected Long visitGenericLiteral(GenericLiteral node, Void context) { } @Override - protected Long visitNullLiteral(NullLiteral node, Void context) { + public Long visitNullLiteral(NullLiteral node, Void context) { return null; } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/GlobalTimePredicateExtractVisitor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/ir/GlobalTimePredicateExtractVisitor.java similarity index 72% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/GlobalTimePredicateExtractVisitor.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/ir/GlobalTimePredicateExtractVisitor.java index 2ab6cac846e5a..6026813a07ca2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/GlobalTimePredicateExtractVisitor.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/planner/ir/GlobalTimePredicateExtractVisitor.java @@ -17,28 +17,27 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; - -import org.apache.iotdb.db.queryengine.plan.expression.UnknownExpressionTypeException; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +package org.apache.iotdb.calc.plan.relational.planner.ir; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.tsfile.utils.Pair; @@ -47,12 +46,13 @@ import java.util.List; import java.util.Set; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.AND; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.OR; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.AND; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.OR; public class GlobalTimePredicateExtractVisitor - extends AstVisitor, GlobalTimePredicateExtractVisitor.Context> { + implements CommonQueryAstVisitor< + Pair, GlobalTimePredicateExtractVisitor.Context> { private static final String NOT_SUPPORTED = "visit() not implemented for %s in GlobalTimePredicateExtract."; @@ -62,7 +62,6 @@ public class GlobalTimePredicateExtractVisitor * * @param predicate raw query predicate * @return Pair, left is globalTimePredicate, right is if hasValueFilter. - * @throws UnknownExpressionTypeException unknown expression type */ public static Pair extractGlobalTimeFilter( Expression predicate, String timeColumnName) { @@ -71,14 +70,13 @@ public static Pair extractGlobalTimeFilter( predicate, new GlobalTimePredicateExtractVisitor.Context(true, true, timeColumnName)); } - protected Pair visitExpression( + public Pair visitExpression( Pair node, Context context) { throw new IllegalStateException(String.format(NOT_SUPPORTED, node.getClass())); } @Override - protected Pair visitLogicalExpression( - LogicalExpression node, Context context) { + public Pair visitLogicalExpression(LogicalExpression node, Context context) { if (node.getOperator() == AND) { List> resultPairs = new ArrayList<>(); for (Expression term : node.getTerms()) { @@ -158,7 +156,7 @@ private void getNewTimeValueExpressions( } @Override - protected Pair visitComparisonExpression( + public Pair visitComparisonExpression( ComparisonExpression node, Context context) { Expression leftExpression = node.getLeft(); Expression rightExpression = node.getRight(); @@ -170,30 +168,29 @@ protected Pair visitComparisonExpression( } @Override - protected Pair visitIsNullPredicate(IsNullPredicate node, Context context) { + public Pair visitIsNullPredicate(IsNullPredicate node, Context context) { // time filter don't support IS_NULL return new Pair<>(null, true); } @Override - protected Pair visitIsNotNullPredicate( + public Pair visitIsNotNullPredicate( IsNotNullPredicate node, Context context) { return new Pair<>(null, true); } @Override - protected Pair visitFunctionCall(FunctionCall node, Context context) { + public Pair visitFunctionCall(FunctionCall node, Context context) { return new Pair<>(null, true); } @Override - protected Pair visitLikePredicate(LikePredicate node, Context context) { + public Pair visitLikePredicate(LikePredicate node, Context context) { return new Pair<>(null, true); } @Override - protected Pair visitBetweenPredicate( - BetweenPredicate node, Context context) { + public Pair visitBetweenPredicate(BetweenPredicate node, Context context) { Expression firstExpression = node.getValue(); Expression secondExpression = node.getMin(); Expression thirdExpression = node.getMax(); @@ -216,7 +213,7 @@ protected Pair visitBetweenPredicate( } @Override - protected Pair visitInPredicate(InPredicate node, Context context) { + public Pair visitInPredicate(InPredicate node, Context context) { if (isTimeColumn(node.getValue(), context.timeColumnName)) { return new Pair<>(node, false); } @@ -225,7 +222,7 @@ protected Pair visitInPredicate(InPredicate node, Context c } @Override - protected Pair visitNotExpression(NotExpression node, Context context) { + public Pair visitNotExpression(NotExpression node, Context context) { Pair result = process( node.getValue(), @@ -239,31 +236,30 @@ protected Pair visitNotExpression(NotExpression node, Conte // ============================ not implemented ======================================= @Override - protected Pair visitArithmeticBinary( + public Pair visitArithmeticBinary( ArithmeticBinaryExpression node, Context context) { throw new IllegalStateException(String.format(NOT_SUPPORTED, node.getClass())); } @Override - protected Pair visitSimpleCaseExpression( + public Pair visitSimpleCaseExpression( SimpleCaseExpression node, Context context) { throw new IllegalStateException(String.format(NOT_SUPPORTED, node.getClass())); } @Override - protected Pair visitSearchedCaseExpression( + public Pair visitSearchedCaseExpression( SearchedCaseExpression node, Context context) { throw new IllegalStateException(String.format(NOT_SUPPORTED, node.getClass())); } @Override - protected Pair visitIfExpression(IfExpression node, Context context) { + public Pair visitIfExpression(IfExpression node, Context context) { throw new IllegalStateException(String.format(NOT_SUPPORTED, node.getClass())); } @Override - protected Pair visitNullIfExpression( - NullIfExpression node, Context context) { + public Pair visitNullIfExpression(NullIfExpression node, Context context) { throw new IllegalStateException(String.format(NOT_SUPPORTED, node.getClass())); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Capture.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Capture.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Capture.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Capture.java index 572b84d3119c1..f3bbf498d1c7b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Capture.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Capture.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching; +package org.apache.iotdb.calc.plan.relational.utils.matching; import java.util.concurrent.atomic.AtomicInteger; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Captures.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Captures.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Captures.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Captures.java index a3f731aea3397..ae8762c7a91b2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Captures.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Captures.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching; +package org.apache.iotdb.calc.plan.relational.utils.matching; import java.util.NoSuchElementException; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/DefaultPrinter.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/DefaultPrinter.java similarity index 80% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/DefaultPrinter.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/DefaultPrinter.java index f858e2b82d178..38bcf96719995 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/DefaultPrinter.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/DefaultPrinter.java @@ -16,13 +16,13 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching; +package org.apache.iotdb.calc.plan.relational.utils.matching; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.CapturePattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.EqualsPattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.FilterPattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.TypeOfPattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.WithPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.CapturePattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.EqualsPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.FilterPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.TypeOfPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.WithPattern; import java.util.Collections; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Match.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Match.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Match.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Match.java index 6b47686bcd1e8..a2d90d860a475 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Match.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Match.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching; +package org.apache.iotdb.calc.plan.relational.utils.matching; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Pattern.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Pattern.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Pattern.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Pattern.java index 9cd8dc869de6f..4fc225b7773d9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Pattern.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Pattern.java @@ -16,12 +16,12 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching; +package org.apache.iotdb.calc.plan.relational.utils.matching; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.CapturePattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.FilterPattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.TypeOfPattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.WithPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.CapturePattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.FilterPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.TypeOfPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.WithPattern; import com.google.common.collect.Iterables; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/PatternVisitor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/PatternVisitor.java similarity index 70% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/PatternVisitor.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/PatternVisitor.java index 577101a268d75..9ea807ce79ff3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/PatternVisitor.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/PatternVisitor.java @@ -16,13 +16,13 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching; +package org.apache.iotdb.calc.plan.relational.utils.matching; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.CapturePattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.EqualsPattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.FilterPattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.TypeOfPattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.WithPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.CapturePattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.EqualsPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.FilterPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.TypeOfPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.WithPattern; import java.util.Optional; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Property.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Property.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Property.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Property.java index d03050c8a168e..7cf028299b9d0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/Property.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/Property.java @@ -16,10 +16,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching; +package org.apache.iotdb.calc.plan.relational.utils.matching; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.EqualsPattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.FilterPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.EqualsPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.FilterPattern; import java.util.Optional; import java.util.function.BiFunction; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/PropertyPattern.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/PropertyPattern.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/PropertyPattern.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/PropertyPattern.java index 8ba64a22c933d..9c2b9cb658692 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/PropertyPattern.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/PropertyPattern.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching; +package org.apache.iotdb.calc.plan.relational.utils.matching; import static java.util.Objects.requireNonNull; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/CapturePattern.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/CapturePattern.java similarity index 76% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/CapturePattern.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/CapturePattern.java index 621d017855881..a425cb82ede46 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/CapturePattern.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/CapturePattern.java @@ -16,13 +16,13 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern; +package org.apache.iotdb.calc.plan.relational.utils.matching.pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Match; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.PatternVisitor; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Match; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.PatternVisitor; import java.util.stream.Stream; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/EqualsPattern.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/EqualsPattern.java similarity index 79% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/EqualsPattern.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/EqualsPattern.java index 92979f55ab937..b08db4d14026d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/EqualsPattern.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/EqualsPattern.java @@ -16,12 +16,12 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern; +package org.apache.iotdb.calc.plan.relational.utils.matching.pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Match; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.PatternVisitor; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Match; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.PatternVisitor; import java.util.Optional; import java.util.stream.Stream; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/FilterPattern.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/FilterPattern.java similarity index 81% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/FilterPattern.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/FilterPattern.java index 7543ef2282fec..8c882f1ae8e42 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/FilterPattern.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/FilterPattern.java @@ -16,12 +16,12 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern; +package org.apache.iotdb.calc.plan.relational.utils.matching.pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Match; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.PatternVisitor; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Match; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.PatternVisitor; import java.util.Optional; import java.util.function.BiPredicate; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/TypeOfPattern.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/TypeOfPattern.java similarity index 80% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/TypeOfPattern.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/TypeOfPattern.java index 5cf7802168d96..a60bcb0355b6b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/TypeOfPattern.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/TypeOfPattern.java @@ -16,12 +16,12 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern; +package org.apache.iotdb.calc.plan.relational.utils.matching.pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Match; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.PatternVisitor; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Match; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.PatternVisitor; import java.util.Optional; import java.util.stream.Stream; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/WithPattern.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/WithPattern.java similarity index 78% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/WithPattern.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/WithPattern.java index ccdf0497f82c2..9daf7b8725a72 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/matching/pattern/WithPattern.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/plan/relational/utils/matching/pattern/WithPattern.java @@ -16,14 +16,14 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern; +package org.apache.iotdb.calc.plan.relational.utils.matching.pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Match; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.PatternVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Property; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.PropertyPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Match; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.PatternVisitor; +import org.apache.iotdb.calc.plan.relational.utils.matching.Property; +import org.apache.iotdb.calc.plan.relational.utils.matching.PropertyPattern; import java.util.Optional; import java.util.function.BiFunction; diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/service/AbstractTemporaryQueryDataFileService.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/service/AbstractTemporaryQueryDataFileService.java new file mode 100644 index 0000000000000..146f42e63b8df --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/service/AbstractTemporaryQueryDataFileService.java @@ -0,0 +1,149 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.service; + +import org.apache.iotdb.calc.transformation.datastructure.SerializableList.SerializationRecorder; +import org.apache.iotdb.commons.exception.StartupException; +import org.apache.iotdb.commons.file.SystemFileFactory; +import org.apache.iotdb.commons.service.IService; +import org.apache.iotdb.commons.service.ServiceType; + +import org.apache.tsfile.external.commons.io.FileUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.ServiceLoader; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicLong; + +public abstract class AbstractTemporaryQueryDataFileService implements IService { + + private static final Logger logger = + LoggerFactory.getLogger(AbstractTemporaryQueryDataFileService.class); + private static final AbstractTemporaryQueryDataFileService INSTANCE = loadService(); + + private final AtomicLong uniqueDataId = new AtomicLong(0); + private final Map> recorders = new ConcurrentHashMap<>(); + + public static AbstractTemporaryQueryDataFileService getInstance() { + return INSTANCE; + } + + private static AbstractTemporaryQueryDataFileService loadService() { + AbstractTemporaryQueryDataFileService service = null; + ServiceLoader loader = + ServiceLoader.load(ITemporaryQueryDataFileServiceProvider.class); + for (ITemporaryQueryDataFileServiceProvider provider : loader) { + if (service != null) { + throw new IllegalStateException("Multiple ITemporaryQueryDataFileServiceProvider found"); + } + service = provider.getService(); + } + if (service == null) { + throw new IllegalStateException("No ITemporaryQueryDataFileServiceProvider found"); + } + return service; + } + + protected abstract String getTemporaryFileDir(); + + public String register(SerializationRecorder recorder) throws IOException { + String queryId = recorder.getQueryId(); + recorders + .computeIfAbsent(queryId, k -> Collections.synchronizedList(new ArrayList<>())) + .add(recorder); + + String dirName = getDirName(queryId); + makeDirIfNecessary(dirName); + return getFileName(dirName, uniqueDataId.getAndIncrement()); + } + + public void deregister(String queryId) { + List recorderList = recorders.remove(queryId); + if (recorderList == null) { + return; + } + for (SerializationRecorder recorder : recorderList) { + try { + recorder.closeFile(); + } catch (IOException e) { + logger.warn( + String.format("Failed to close file in method deregister(%s), because %s", queryId, e)); + } + } + try { + FileUtils.deleteDirectory(SystemFileFactory.INSTANCE.getFile(getDirName(queryId))); + } catch (IOException e) { + logger.warn( + String.format("Failed to clean dir in method deregister(%s), because %s", queryId, e)); + } + } + + private void makeDirIfNecessary(String dir) throws IOException { + File file = SystemFileFactory.INSTANCE.getFile(dir); + if (file.exists() && file.isDirectory()) { + return; + } + FileUtils.forceMkdir(file); + } + + private String getDirName(String queryId) { + return getTemporaryFileDir() + File.separator + queryId + File.separator; + } + + private String getFileName(String dir, long index) { + return dir + index; + } + + @Override + public void start() throws StartupException { + try { + // Clean up stale temp directories left from previous runs (e.g., after a crash) + File tmpDir = SystemFileFactory.INSTANCE.getFile(getTemporaryFileDir()); + if (tmpDir.exists()) { + FileUtils.deleteDirectory(tmpDir); + } + makeDirIfNecessary(getTemporaryFileDir()); + } catch (IOException e) { + throw new StartupException(e); + } + } + + @Override + public void stop() { + recorders.clear(); + try { + FileUtils.deleteDirectory(SystemFileFactory.INSTANCE.getFile(getTemporaryFileDir())); + } catch (IOException e) { + logger.warn("Failed to delete temp dir {}.", getTemporaryFileDir(), e); + } + } + + @Override + public ServiceType getID() { + return ServiceType.TEMPORARY_QUERY_DATA_FILE_SERVICE; + } +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/service/ITemporaryQueryDataFileServiceProvider.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/service/ITemporaryQueryDataFileServiceProvider.java new file mode 100644 index 0000000000000..ccf69d005220d --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/service/ITemporaryQueryDataFileServiceProvider.java @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.service; + +public interface ITemporaryQueryDataFileServiceProvider { + + AbstractTemporaryQueryDataFileService getService(); +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/PointCollectorAdaptor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/adapter/PointCollectorAdaptor.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/PointCollectorAdaptor.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/adapter/PointCollectorAdaptor.java index 8ffb0a5bf346c..20528d6a9828a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/PointCollectorAdaptor.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/adapter/PointCollectorAdaptor.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.adapter; +package org.apache.iotdb.calc.transformation.dag.adapter; import org.apache.iotdb.commons.udf.utils.UDFBinaryTransformer; import org.apache.iotdb.udf.api.collector.PointCollector; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/AbstractCaseWhenThenColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/AbstractCaseWhenThenColumnTransformer.java similarity index 99% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/AbstractCaseWhenThenColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/AbstractCaseWhenThenColumnTransformer.java index 7ac2f348d27a2..f92175671305e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/AbstractCaseWhenThenColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/AbstractCaseWhenThenColumnTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column; +package org.apache.iotdb.calc.transformation.dag.column; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ColumnCache.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ColumnCache.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ColumnCache.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ColumnCache.java index 6adfbe072e1f0..24d537e2e5d92 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ColumnCache.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ColumnCache.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column; +package org.apache.iotdb.calc.transformation.dag.column; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ColumnTransformer.java index 50ba07fe49653..d10d728cd2db5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ColumnTransformer.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column; +package org.apache.iotdb.calc.transformation.dag.column; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.NullColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.NullColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.read.common.type.TypeEnum; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isNumericType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isNumericType; public abstract class ColumnTransformer { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/FailFunctionColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/FailFunctionColumnTransformer.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/FailFunctionColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/FailFunctionColumnTransformer.java index 41632d7be1a4a..351c4396c0fc3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/FailFunctionColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/FailFunctionColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column; +package org.apache.iotdb.calc.transformation.dag.column; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.read.common.block.column.NullColumn; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/TableCaseWhenThenColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/TableCaseWhenThenColumnTransformer.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/TableCaseWhenThenColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/TableCaseWhenThenColumnTransformer.java index 637c41417465a..9ec8e0e130bf8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/TableCaseWhenThenColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/TableCaseWhenThenColumnTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column; +package org.apache.iotdb.calc.transformation.dag.column; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/TreeCaseWhenThenColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/TreeCaseWhenThenColumnTransformer.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/TreeCaseWhenThenColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/TreeCaseWhenThenColumnTransformer.java index c3704ced734e3..6e3e6d1563f44 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/TreeCaseWhenThenColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/TreeCaseWhenThenColumnTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column; +package org.apache.iotdb.calc.transformation.dag.column; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticAdditionColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticAdditionColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticAdditionColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticAdditionColumnTransformer.java index f8036106e5cf3..5b3abd572b84f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticAdditionColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticAdditionColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticBinaryColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticBinaryColumnTransformer.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticBinaryColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticBinaryColumnTransformer.java index 08e2171147380..5f40d1fbb2fa1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticBinaryColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticBinaryColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticDivisionColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticDivisionColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticDivisionColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticDivisionColumnTransformer.java index c4f92be150a4a..014dda8db34e7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticDivisionColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticDivisionColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticModuloColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticModuloColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticModuloColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticModuloColumnTransformer.java index 854379cd87661..55d84062fd6c2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticModuloColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticModuloColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticMultiplicationColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticMultiplicationColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticMultiplicationColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticMultiplicationColumnTransformer.java index f223350930230..d58a8068fe62b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticMultiplicationColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticMultiplicationColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticSubtractionColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticSubtractionColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticSubtractionColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticSubtractionColumnTransformer.java index 18f935ca0fdcd..9aaa50f427804 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticSubtractionColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/ArithmeticSubtractionColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/BinaryColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/BinaryColumnTransformer.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/BinaryColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/BinaryColumnTransformer.java index 75dcb6dc17ed8..a8f9427f8d602 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/BinaryColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/BinaryColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareBinaryColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareBinaryColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareBinaryColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareBinaryColumnTransformer.java index fb09941245b3e..192280ce05da0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareBinaryColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareBinaryColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -28,9 +28,9 @@ import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.read.common.type.TypeEnum; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isBlobType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isBool; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isCharType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isBlobType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isBool; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isCharType; public abstract class CompareBinaryColumnTransformer extends BinaryColumnTransformer { @@ -88,7 +88,7 @@ private void evaluateAndTransform( if (isCharType(leftTransformer.getType()) || isBlobType(leftTransformer.getType())) { flag = transform( - TransformUtils.compare( + CommonTransformUtils.compare( leftTransformer.getType().getBinary(leftColumn, index), rightTransformer.getType().getBinary(rightColumn, index))); } else if (isBool(leftTransformer.getType())) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareEqualToColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareEqualToColumnTransformer.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareEqualToColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareEqualToColumnTransformer.java index f777180e9f089..1d199d23072ab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareEqualToColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareEqualToColumnTransformer.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; import java.util.Arrays; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isTwoTypeComparable; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isTwoTypeComparable; public class CompareEqualToColumnTransformer extends CompareBinaryColumnTransformer { public CompareEqualToColumnTransformer( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareGreaterEqualColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareGreaterEqualColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareGreaterEqualColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareGreaterEqualColumnTransformer.java index 1aba400614c17..c50b3bd36ed9e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareGreaterEqualColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareGreaterEqualColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareGreaterThanColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareGreaterThanColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareGreaterThanColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareGreaterThanColumnTransformer.java index 4f46f76bf3dce..d3c43e9ac6bde 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareGreaterThanColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareGreaterThanColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareLessEqualColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareLessEqualColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareLessEqualColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareLessEqualColumnTransformer.java index 0eede197be3ef..0cccc3177dc1e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareLessEqualColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareLessEqualColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareLessThanColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareLessThanColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareLessThanColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareLessThanColumnTransformer.java index 09bd953be181f..9d9bf13163fc2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareLessThanColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareLessThanColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareNonEqualColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareNonEqualColumnTransformer.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareNonEqualColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareNonEqualColumnTransformer.java index 9f0cd152ebe77..1b2ec1e145999 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareNonEqualColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/CompareNonEqualColumnTransformer.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; import java.util.Arrays; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isTwoTypeComparable; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isTwoTypeComparable; public class CompareNonEqualColumnTransformer extends CompareBinaryColumnTransformer { public CompareNonEqualColumnTransformer( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/HmacColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/HmacColumnTransformer.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/HmacColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/HmacColumnTransformer.java index a3872608a3260..2dd734c2bc992 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/HmacColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/HmacColumnTransformer.java @@ -17,18 +17,18 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.strategies.HmacStrategy; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.strategies.HmacStrategy; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.Binary; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.util.TransformerDebugUtils.generateOriginalValue; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.util.TransformerDebugUtils.generateOriginalValue; public class HmacColumnTransformer extends BinaryColumnTransformer { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/Like2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/Like2ColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/Like2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/Like2ColumnTransformer.java index 6f8bd9764db35..508d9b9dc6f97 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/Like2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/Like2ColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -29,7 +29,7 @@ import java.util.Optional; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isCharType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isCharType; public class Like2ColumnTransformer extends BinaryColumnTransformer { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicAndColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/LogicAndColumnTransformer.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicAndColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/LogicAndColumnTransformer.java index 7a68e5fa030d1..5e7197eaab893 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicAndColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/LogicAndColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicBinaryColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/LogicBinaryColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicBinaryColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/LogicBinaryColumnTransformer.java index 595fa291c32ba..634a4a77e4f8e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicBinaryColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/LogicBinaryColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.read.common.type.TypeEnum; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicOrColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/LogicOrColumnTransformer.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicOrColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/LogicOrColumnTransformer.java index 064ad6974daba..5f2437238b7f6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicOrColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/LogicOrColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; +package org.apache.iotdb.calc.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/factory/HmacStrategiesFactory.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/factory/HmacStrategiesFactory.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/factory/HmacStrategiesFactory.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/factory/HmacStrategiesFactory.java index 9228c728eb2e1..25e7c5a5f9d92 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/factory/HmacStrategiesFactory.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/factory/HmacStrategiesFactory.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary.factory; +package org.apache.iotdb.calc.transformation.dag.column.binary.factory; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.strategies.HmacStrategy; +import org.apache.iotdb.calc.transformation.dag.column.binary.strategies.HmacStrategy; +import org.apache.iotdb.commons.exception.SemanticException; import com.google.common.hash.HashFunction; import com.google.common.hash.Hashing; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/strategies/HmacStrategy.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/strategies/HmacStrategy.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/strategies/HmacStrategy.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/strategies/HmacStrategy.java index 01f83cce52b7c..93bfbaa759cbd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/strategies/HmacStrategy.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/binary/strategies/HmacStrategy.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.binary.strategies; +package org.apache.iotdb.calc.transformation.dag.column.binary.strategies; @FunctionalInterface public interface HmacStrategy { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/ConstantColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/ConstantColumnTransformer.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/ConstantColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/ConstantColumnTransformer.java index 0750e5dc9d1fd..d16072d729838 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/ConstantColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/ConstantColumnTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.leaf; +package org.apache.iotdb.calc.transformation.dag.column.leaf; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/IdentityColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/IdentityColumnTransformer.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/IdentityColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/IdentityColumnTransformer.java index f4cc0667777fb..38dfd063ac19c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/IdentityColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/IdentityColumnTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.leaf; +package org.apache.iotdb.calc.transformation.dag.column.leaf; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/LeafColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/LeafColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/LeafColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/LeafColumnTransformer.java index 4e6d423b4b50f..e9f69657a5405 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/LeafColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/LeafColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.leaf; +package org.apache.iotdb.calc.transformation.dag.column.leaf; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.block.TsBlock; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/NullColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/NullColumnTransformer.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/NullColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/NullColumnTransformer.java index d6cc68ab3ca5e..31a01f67f3047 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/NullColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/NullColumnTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.leaf; +package org.apache.iotdb.calc.transformation.dag.column.leaf; import org.apache.tsfile.read.common.block.column.NullColumn; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/TimeColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/TimeColumnTransformer.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/TimeColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/TimeColumnTransformer.java index d8fe028bf092f..8d359a0904a6e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/leaf/TimeColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/leaf/TimeColumnTransformer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.leaf; +package org.apache.iotdb.calc.transformation.dag.column.leaf; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/AbstractGreatestLeastColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/AbstractGreatestLeastColumnTransformer.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/AbstractGreatestLeastColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/AbstractGreatestLeastColumnTransformer.java index f92c5fa2811e2..ebe76ea84bf74 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/AbstractGreatestLeastColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/AbstractGreatestLeastColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BinaryGreatestColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/BinaryGreatestColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BinaryGreatestColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/BinaryGreatestColumnTransformer.java index e81487bbac3e6..a2d86ba00f01e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BinaryGreatestColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/BinaryGreatestColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BinaryLeastColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/BinaryLeastColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BinaryLeastColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/BinaryLeastColumnTransformer.java index 6cde29f4c8453..4ba373d91eb03 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BinaryLeastColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/BinaryLeastColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BooleanGreatestColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/BooleanGreatestColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BooleanGreatestColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/BooleanGreatestColumnTransformer.java index 6c283225c7403..56baf89bc7d36 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BooleanGreatestColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/BooleanGreatestColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BooleanLeastColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/BooleanLeastColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BooleanLeastColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/BooleanLeastColumnTransformer.java index 1cfbde1575857..176cf2e578c7b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/BooleanLeastColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/BooleanLeastColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/CoalesceColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/CoalesceColumnTransformer.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/CoalesceColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/CoalesceColumnTransformer.java index 82efc732e451c..5961b6792147a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/CoalesceColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/CoalesceColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/DoubleGreatestColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/DoubleGreatestColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/DoubleGreatestColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/DoubleGreatestColumnTransformer.java index e09f0b6df4b21..fa15a1098a7d9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/DoubleGreatestColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/DoubleGreatestColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/DoubleLeastColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/DoubleLeastColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/DoubleLeastColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/DoubleLeastColumnTransformer.java index 2dc19ec75e7a7..52e5ffdc6d51f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/DoubleLeastColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/DoubleLeastColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/FloatGreatestColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/FloatGreatestColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/FloatGreatestColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/FloatGreatestColumnTransformer.java index bc5bfc982f8c6..a52912d2bfca3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/FloatGreatestColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/FloatGreatestColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/FloatLeastColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/FloatLeastColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/FloatLeastColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/FloatLeastColumnTransformer.java index 223f63673390d..64be3106f5796 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/FloatLeastColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/FloatLeastColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InBinaryMultiColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InBinaryMultiColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InBinaryMultiColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InBinaryMultiColumnTransformer.java index 9491a201ed1d0..d2e5e75c4f0e8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InBinaryMultiColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InBinaryMultiColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InBooleanMultiColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InBooleanMultiColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InBooleanMultiColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InBooleanMultiColumnTransformer.java index f99bc791b39e5..d9f4ab3e866b0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InBooleanMultiColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InBooleanMultiColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InDoubleMultiColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InDoubleMultiColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InDoubleMultiColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InDoubleMultiColumnTransformer.java index 482214498b950..2b6563346b532 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InDoubleMultiColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InDoubleMultiColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InFloatMultiColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InFloatMultiColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InFloatMultiColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InFloatMultiColumnTransformer.java index 310669c73cf01..beb16f3dd5a40 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InFloatMultiColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InFloatMultiColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InInt32MultiColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InInt32MultiColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InInt32MultiColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InInt32MultiColumnTransformer.java index ad291426a1cb7..e00845a227f84 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InInt32MultiColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InInt32MultiColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InInt64MultiColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InInt64MultiColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InInt64MultiColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InInt64MultiColumnTransformer.java index aa3ec1397fbf4..4ebb14e14d04c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InInt64MultiColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InInt64MultiColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InMultiColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InMultiColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InMultiColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InMultiColumnTransformer.java index 319b4225d8502..62ee96c36ebc0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/InMultiColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/InMultiColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int32GreatestColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/Int32GreatestColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int32GreatestColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/Int32GreatestColumnTransformer.java index 551970f470a67..247cf2f463bfd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int32GreatestColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/Int32GreatestColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int32LeastColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/Int32LeastColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int32LeastColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/Int32LeastColumnTransformer.java index 26b64349fb4f9..9c382de8ec0aa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int32LeastColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/Int32LeastColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int64GreatestColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/Int64GreatestColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int64GreatestColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/Int64GreatestColumnTransformer.java index 7818d217d0aad..328442056afdb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int64GreatestColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/Int64GreatestColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int64LeastColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/Int64LeastColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int64LeastColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/Int64LeastColumnTransformer.java index 0efaccb378690..0fa520d3fb9aa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/Int64LeastColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/Int64LeastColumnTransformer.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/LogicalAndMultiColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/LogicalAndMultiColumnTransformer.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/LogicalAndMultiColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/LogicalAndMultiColumnTransformer.java index 321f03b186bdb..2011f0ccc57c1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/LogicalAndMultiColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/LogicalAndMultiColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/LogicalMultiColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/LogicalMultiColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/LogicalMultiColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/LogicalMultiColumnTransformer.java index c90133e7cf523..248a16482a544 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/LogicalMultiColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/LogicalMultiColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.read.common.type.TypeEnum; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/LogicalOrMultiColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/LogicalOrMultiColumnTransformer.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/LogicalOrMultiColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/LogicalOrMultiColumnTransformer.java index 9164ec578eec2..a7ae49f2b7f7e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/LogicalOrMultiColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/LogicalOrMultiColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/MappableUDFColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/MappableUDFColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/MappableUDFColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/MappableUDFColumnTransformer.java index 440585eed781b..fab8d8c632ba2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/MappableUDFColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/MappableUDFColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/MultiColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/MultiColumnTransformer.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/MultiColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/MultiColumnTransformer.java index 8045edc4a53bc..fe760a1759833 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/MultiColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/multi/MultiColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.multi; +package org.apache.iotdb.calc.transformation.dag.column.multi; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/BetweenColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/BetweenColumnTransformer.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/BetweenColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/BetweenColumnTransformer.java index c0344b001fafd..d5bb26ca77e65 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/BetweenColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/BetweenColumnTransformer.java @@ -17,18 +17,18 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.ternary; +package org.apache.iotdb.calc.transformation.dag.column.ternary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isBlobType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isBool; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isCharType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isBlobType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isBool; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isCharType; public class BetweenColumnTransformer extends CompareTernaryColumnTransformer { private final boolean isNotBetween; @@ -85,11 +85,11 @@ private void transform( if (isCharType(firstColumnTransformer.getType()) || isBlobType(firstColumnTransformer.getType())) { flag = - ((TransformUtils.compare( + ((CommonTransformUtils.compare( firstColumnTransformer.getType().getBinary(firstColumn, i), secondColumnTransformer.getType().getBinary(secondColumn, i)) >= 0) - && (TransformUtils.compare( + && (CommonTransformUtils.compare( firstColumnTransformer.getType().getBinary(firstColumn, i), thirdColumnTransformer.getType().getBinary(thirdColumn, i)) <= 0)) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/CompareTernaryColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/CompareTernaryColumnTransformer.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/CompareTernaryColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/CompareTernaryColumnTransformer.java index 26dabe9a7c54e..56fa25f1d4882 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/CompareTernaryColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/CompareTernaryColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.ternary; +package org.apache.iotdb.calc.transformation.dag.column.ternary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/Like3ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/Like3ColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/Like3ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/Like3ColumnTransformer.java index 34000e227c66e..5cbdb29f9e101 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/Like3ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/Like3ColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.ternary; +package org.apache.iotdb.calc.transformation.dag.column.ternary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -27,8 +27,8 @@ import org.apache.tsfile.common.regexp.LikePattern; import org.apache.tsfile.read.common.type.Type; -import static org.apache.iotdb.db.queryengine.plan.expression.unary.LikeExpression.getEscapeCharacter; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isCharType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isCharType; +import static org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils.getEscapeCharacter; public class Like3ColumnTransformer extends TernaryColumnTransformer { public Like3ColumnTransformer( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/LpadColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/LpadColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/LpadColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/LpadColumnTransformer.java index db4d17d75f196..8c2e01b74a27c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/LpadColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/LpadColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.ternary; +package org.apache.iotdb.calc.transformation.dag.column.ternary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ternary.utils.BytePaddingUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ternary.utils.BytePaddingUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/RpadColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/RpadColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/RpadColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/RpadColumnTransformer.java index ea05be1319a60..1a0fcd9e5202f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/RpadColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/RpadColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.ternary; +package org.apache.iotdb.calc.transformation.dag.column.ternary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ternary.utils.BytePaddingUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ternary.utils.BytePaddingUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/TernaryColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/TernaryColumnTransformer.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/TernaryColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/TernaryColumnTransformer.java index 3a9dccd8e8fda..6f8b3d0b11fe3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/TernaryColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/TernaryColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.ternary; +package org.apache.iotdb.calc.transformation.dag.column.ternary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/utils/BytePaddingUtils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/utils/BytePaddingUtils.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/utils/BytePaddingUtils.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/utils/BytePaddingUtils.java index 1e5f3ed20a87b..e944540a2f7b4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/utils/BytePaddingUtils.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/ternary/utils/BytePaddingUtils.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.ternary.utils; +package org.apache.iotdb.calc.transformation.dag.column.ternary.utils; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; public class BytePaddingUtils { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/udf/UserDefineScalarFunctionTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/udf/UserDefineScalarFunctionTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/udf/UserDefineScalarFunctionTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/udf/UserDefineScalarFunctionTransformer.java index 47fd40ed73f92..4e22315b62868 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/udf/UserDefineScalarFunctionTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/udf/UserDefineScalarFunctionTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.udf; +package org.apache.iotdb.calc.transformation.dag.column.udf; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.RecordIterator; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.MultiColumnTransformer; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.RecordIterator; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.MultiColumnTransformer; import org.apache.iotdb.udf.api.relational.ScalarFunction; import org.apache.iotdb.udf.api.relational.access.Record; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/ArithmeticNegationColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/ArithmeticNegationColumnTransformer.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/ArithmeticNegationColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/ArithmeticNegationColumnTransformer.java index 81819dddf8141..2fa77f1970978 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/ArithmeticNegationColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/ArithmeticNegationColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary; +package org.apache.iotdb.calc.transformation.dag.column.unary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/InColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/InColumnTransformer.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/InColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/InColumnTransformer.java index 17fc57a1b5277..93455c0a856cf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/InColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/InColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary; +package org.apache.iotdb.calc.transformation.dag.column.unary; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/IsNullColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/IsNullColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/IsNullColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/IsNullColumnTransformer.java index fa781f270575c..210fcf354d515 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/IsNullColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/IsNullColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary; +package org.apache.iotdb.calc.transformation.dag.column.unary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/LikeColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/LikeColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/LikeColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/LikeColumnTransformer.java index 5930cc999e972..26821874e2734 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/LikeColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/LikeColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary; +package org.apache.iotdb.calc.transformation.dag.column.unary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -27,7 +27,7 @@ import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.Binary; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isCharType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isCharType; public class LikeColumnTransformer extends UnaryColumnTransformer { private final LikePattern pattern; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/LogicNotColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/LogicNotColumnTransformer.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/LogicNotColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/LogicNotColumnTransformer.java index 8c0f983121169..d1ec093087f93 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/LogicNotColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/LogicNotColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary; +package org.apache.iotdb.calc.transformation.dag.column.unary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/RegularColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/RegularColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/RegularColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/RegularColumnTransformer.java index b22c1c64856c8..0f7c08cb0d17b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/RegularColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/RegularColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary; +package org.apache.iotdb.calc.transformation.dag.column.unary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -28,7 +28,7 @@ import java.util.regex.Pattern; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isCharType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isCharType; public class RegularColumnTransformer extends UnaryColumnTransformer { private final Pattern pattern; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/UnaryColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/UnaryColumnTransformer.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/UnaryColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/UnaryColumnTransformer.java index 7b3294f3c1dae..1a3548ace3db8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/UnaryColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/UnaryColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary; +package org.apache.iotdb.calc.transformation.dag.column.unary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbsColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbsColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbsColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbsColumnTransformer.java index 294c02b3d2d96..a9f5da1447f14 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbsColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbsColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbstractBitwise2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbstractBitwise2ColumnTransformer.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbstractBitwise2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbstractBitwise2ColumnTransformer.java index dfc7a2333513f..af0b16a1c8ef2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbstractBitwise2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbstractBitwise2ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbstractBitwiseColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbstractBitwiseColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbstractBitwiseColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbstractBitwiseColumnTransformer.java index c4d1cd8f3176d..7d2baa82504dc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbstractBitwiseColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbstractBitwiseColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbstractCastFunctionColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbstractCastFunctionColumnTransformer.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbstractCastFunctionColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbstractCastFunctionColumnTransformer.java index 9ed1bb33075da..d8df707f39c32 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbstractCastFunctionColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbstractCastFunctionColumnTransformer.java @@ -17,14 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.CastFunctionUtils; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.helper.CastFunctionHelper; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; -import org.apache.iotdb.db.utils.DateTimeUtils; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -38,7 +38,7 @@ import java.time.ZoneId; import java.time.format.DateTimeParseException; -import static org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.helper.CastFunctionHelper.ERROR_MSG; +import static org.apache.iotdb.calc.transformation.dag.util.CastFunctionUtils.ERROR_MSG; import static org.apache.iotdb.rpc.TSStatusCode.DATE_OUT_OF_RANGE; public abstract class AbstractCastFunctionColumnTransformer extends UnaryColumnTransformer { @@ -150,7 +150,7 @@ protected void castTimestamp(ColumnBuilder columnBuilder, long value) { try { switch (returnType.getTypeEnum()) { case INT32: - returnType.writeInt(columnBuilder, (CastFunctionHelper.castLongToInt(value))); + returnType.writeInt(columnBuilder, (CastFunctionUtils.castLongToInt(value))); break; case DATE: returnType.writeInt( @@ -192,7 +192,7 @@ protected void cast(ColumnBuilder columnBuilder, long value) { switch (returnType.getTypeEnum()) { case INT32: case DATE: - returnType.writeInt(columnBuilder, (CastFunctionHelper.castLongToInt(value))); + returnType.writeInt(columnBuilder, (CastFunctionUtils.castLongToInt(value))); break; case INT64: case TIMESTAMP: @@ -223,11 +223,11 @@ protected void cast(ColumnBuilder columnBuilder, float value) { switch (returnType.getTypeEnum()) { case INT32: case DATE: - returnType.writeInt(columnBuilder, CastFunctionHelper.castFloatToInt(value)); + returnType.writeInt(columnBuilder, CastFunctionUtils.castFloatToInt(value)); break; case INT64: case TIMESTAMP: - returnType.writeLong(columnBuilder, CastFunctionHelper.castFloatToLong(value)); + returnType.writeLong(columnBuilder, CastFunctionUtils.castFloatToLong(value)); break; case FLOAT: returnType.writeFloat(columnBuilder, value); @@ -254,14 +254,14 @@ protected void cast(ColumnBuilder columnBuilder, double value) { switch (returnType.getTypeEnum()) { case INT32: case DATE: - returnType.writeInt(columnBuilder, CastFunctionHelper.castDoubleToInt(value)); + returnType.writeInt(columnBuilder, CastFunctionUtils.castDoubleToInt(value)); break; case INT64: case TIMESTAMP: - returnType.writeLong(columnBuilder, CastFunctionHelper.castDoubleToLong(value)); + returnType.writeLong(columnBuilder, CastFunctionUtils.castDoubleToLong(value)); break; case FLOAT: - returnType.writeFloat(columnBuilder, CastFunctionHelper.castDoubleToFloat(value)); + returnType.writeFloat(columnBuilder, CastFunctionUtils.castDoubleToFloat(value)); break; case DOUBLE: returnType.writeDouble(columnBuilder, value); @@ -330,13 +330,13 @@ protected void castString(ColumnBuilder columnBuilder, Binary value) { columnBuilder, DateTimeUtils.convertDatetimeStrToLong(stringValue, zoneId)); break; case FLOAT: - returnType.writeFloat(columnBuilder, CastFunctionHelper.castTextToFloat(stringValue)); + returnType.writeFloat(columnBuilder, CastFunctionUtils.castTextToFloat(stringValue)); break; case DOUBLE: - returnType.writeDouble(columnBuilder, CastFunctionHelper.castTextToDouble(stringValue)); + returnType.writeDouble(columnBuilder, CastFunctionUtils.castTextToDouble(stringValue)); break; case BOOLEAN: - returnType.writeBoolean(columnBuilder, CastFunctionHelper.castTextToBoolean(stringValue)); + returnType.writeBoolean(columnBuilder, CastFunctionUtils.castTextToBoolean(stringValue)); break; case TEXT: case STRING: @@ -372,13 +372,13 @@ protected void castBlob(ColumnBuilder columnBuilder, Binary value) { columnBuilder, DateTimeUtils.convertDatetimeStrToLong(stringValue, zoneId)); break; case FLOAT: - returnType.writeFloat(columnBuilder, CastFunctionHelper.castTextToFloat(stringValue)); + returnType.writeFloat(columnBuilder, CastFunctionUtils.castTextToFloat(stringValue)); break; case DOUBLE: - returnType.writeDouble(columnBuilder, CastFunctionHelper.castTextToDouble(stringValue)); + returnType.writeDouble(columnBuilder, CastFunctionUtils.castTextToDouble(stringValue)); break; case BOOLEAN: - returnType.writeBoolean(columnBuilder, CastFunctionHelper.castTextToBoolean(stringValue)); + returnType.writeBoolean(columnBuilder, CastFunctionUtils.castTextToBoolean(stringValue)); break; case TEXT: case STRING: diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbstractLengthColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbstractLengthColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbstractLengthColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbstractLengthColumnTransformer.java index 08eb47691668f..37937b45330ac 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AbstractLengthColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AbstractLengthColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AcosColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AcosColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AcosColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AcosColumnTransformer.java index 1808e147fbd1a..8bc9d55a924a0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AcosColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AcosColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AsinColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AsinColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AsinColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AsinColumnTransformer.java index 8a73986f897d5..c4433b10f7326 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AsinColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AsinColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AtanColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AtanColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AtanColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AtanColumnTransformer.java index 8f86f838474c1..43694f2ff765e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/AtanColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/AtanColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitCount2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitCount2ColumnTransformer.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitCount2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitCount2ColumnTransformer.java index 04ffea29c63c9..927ee51b9bca0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitCount2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitCount2ColumnTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitCountColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitCountColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitCountColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitCountColumnTransformer.java index 87a928ef16b8b..3dd76427aea2e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitCountColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitCountColumnTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseAnd2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseAnd2ColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseAnd2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseAnd2ColumnTransformer.java index 3be14f412b3cd..e1a0ad0f8551a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseAnd2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseAnd2ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseAndColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseAndColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseAndColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseAndColumnTransformer.java index 57676824bb976..82f8bb3d5efbb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseAndColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseAndColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseLeftShift2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseLeftShift2ColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseLeftShift2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseLeftShift2ColumnTransformer.java index 8c42d788878a1..99e2a25fcba0f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseLeftShift2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseLeftShift2ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseLeftShiftColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseLeftShiftColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseLeftShiftColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseLeftShiftColumnTransformer.java index 40651076dfc08..39ca8f5947c1d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseLeftShiftColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseLeftShiftColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseNotColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseNotColumnTransformer.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseNotColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseNotColumnTransformer.java index 8649cdbdb6b49..2601f440e0c38 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseNotColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseNotColumnTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseOr2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseOr2ColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseOr2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseOr2ColumnTransformer.java index d54ff7b1607a0..2ef495d24fca3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseOr2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseOr2ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseOrColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseOrColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseOrColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseOrColumnTransformer.java index e6be0927f4643..a7f15236400d6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseOrColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseOrColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseRightShift2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseRightShift2ColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseRightShift2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseRightShift2ColumnTransformer.java index 8d717c6c883d5..5795084c838c5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseRightShift2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseRightShift2ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseRightShiftArithmetic2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseRightShiftArithmetic2ColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseRightShiftArithmetic2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseRightShiftArithmetic2ColumnTransformer.java index 402d38d40c858..968a702f12031 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseRightShiftArithmetic2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseRightShiftArithmetic2ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseRightShiftArithmeticColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseRightShiftArithmeticColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseRightShiftArithmeticColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseRightShiftArithmeticColumnTransformer.java index 5042d83d4c0f8..d9bdcae38f6a2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseRightShiftArithmeticColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseRightShiftArithmeticColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseRightShiftColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseRightShiftColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseRightShiftColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseRightShiftColumnTransformer.java index 5f77af2e87c89..395a77a3b1b92 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseRightShiftColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseRightShiftColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseXor2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseXor2ColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseXor2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseXor2ColumnTransformer.java index 8ab1c754f286b..46ab62ae8c30a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseXor2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseXor2ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseXorColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseXorColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseXorColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseXorColumnTransformer.java index 0d648b3e26ee9..9cf0b72298615 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BitwiseXorColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BitwiseXorColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BlobLengthColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BlobLengthColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BlobLengthColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BlobLengthColumnTransformer.java index bce18fb059718..31d0b5fdc760a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BlobLengthColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BlobLengthColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.Binary; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BytesToDoubleColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BytesToDoubleColumnTransformer.java similarity index 82% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BytesToDoubleColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BytesToDoubleColumnTransformer.java index e62fdfcbe2375..8272ac7bd6212 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BytesToDoubleColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BytesToDoubleColumnTransformer.java @@ -17,18 +17,18 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.util.TransformerDebugUtils.generateOriginalValue; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.util.TransformerDebugUtils.generateOriginalValue; public class BytesToDoubleColumnTransformer extends UnaryColumnTransformer { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BytesToFloatColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BytesToFloatColumnTransformer.java similarity index 82% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BytesToFloatColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BytesToFloatColumnTransformer.java index 15af6deed2dfd..b8e7f5c064b1d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BytesToFloatColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BytesToFloatColumnTransformer.java @@ -17,18 +17,18 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.util.TransformerDebugUtils.generateOriginalValue; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.util.TransformerDebugUtils.generateOriginalValue; public class BytesToFloatColumnTransformer extends UnaryColumnTransformer { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BytesToIntColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BytesToIntColumnTransformer.java similarity index 82% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BytesToIntColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BytesToIntColumnTransformer.java index 0e42a3a713afd..0bdaacb4244ab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BytesToIntColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BytesToIntColumnTransformer.java @@ -17,18 +17,18 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.util.TransformerDebugUtils.generateOriginalValue; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.util.TransformerDebugUtils.generateOriginalValue; public class BytesToIntColumnTransformer extends UnaryColumnTransformer { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BytesToLongColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BytesToLongColumnTransformer.java similarity index 82% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BytesToLongColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BytesToLongColumnTransformer.java index dcf0e4a086531..314076c381dcb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BytesToLongColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/BytesToLongColumnTransformer.java @@ -17,18 +17,18 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.util.TransformerDebugUtils.generateOriginalValue; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.util.TransformerDebugUtils.generateOriginalValue; /** A transformer that converts byte array representations to long values */ public class BytesToLongColumnTransformer extends UnaryColumnTransformer { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CRC32Transformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CRC32Transformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CRC32Transformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CRC32Transformer.java index d7e9dccb62a92..22d9b58b45ed2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CRC32Transformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CRC32Transformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CastFunctionColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CastFunctionColumnTransformer.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CastFunctionColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CastFunctionColumnTransformer.java index 624eabadc62d6..9a86020a183fd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CastFunctionColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CastFunctionColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CeilColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CeilColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CeilColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CeilColumnTransformer.java index 31cb8df744813..66a2f492653a0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CeilColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CeilColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Concat2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Concat2ColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Concat2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Concat2ColumnTransformer.java index 18c59344be8a0..92818360019ed 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Concat2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Concat2ColumnTransformer.java @@ -17,17 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.Binary; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.ConcatColumnTransformer.concat; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.ConcatColumnTransformer.concat; public class Concat2ColumnTransformer extends BinaryColumnTransformer { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ConcatColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ConcatColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ConcatColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ConcatColumnTransformer.java index 47dd6866a33b7..eecc2ecca9d1d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ConcatColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ConcatColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ConcatMultiColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ConcatMultiColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ConcatMultiColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ConcatMultiColumnTransformer.java index ec053fe2ad9e9..8ae350b8265a1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ConcatMultiColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ConcatMultiColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.MultiColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.MultiColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CosColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CosColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CosColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CosColumnTransformer.java index 4d731965b6846..68cdce2a85e76 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CosColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CosColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CoshColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CoshColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CoshColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CoshColumnTransformer.java index 2079f1659c5dd..cd83b949273af 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/CoshColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/CoshColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DateBinFunctionColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DateBinFunctionColumnTransformer.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DateBinFunctionColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DateBinFunctionColumnTransformer.java index 93ef9dff3a2d4..71abdf569fad4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DateBinFunctionColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DateBinFunctionColumnTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.iotdb.commons.conf.CommonDescriptor; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DegreesColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DegreesColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DegreesColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DegreesColumnTransformer.java index b1921aa1be473..86534a92de332 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DegreesColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DegreesColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DiffColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DiffColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DiffColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DiffColumnTransformer.java index 0d316a6c40093..5aa14fb6f245d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DiffColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DiffColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DiffFunctionColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DiffFunctionColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DiffFunctionColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DiffFunctionColumnTransformer.java index ce6f7ebf8bfdd..04d65c594b9c5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DiffFunctionColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DiffFunctionColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DoubleToBytesColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DoubleToBytesColumnTransformer.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DoubleToBytesColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DoubleToBytesColumnTransformer.java index 7b9c06147a53b..3953d51097848 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DoubleToBytesColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/DoubleToBytesColumnTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/EndsWith2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/EndsWith2ColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/EndsWith2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/EndsWith2ColumnTransformer.java index c81d83fbda779..51eb9c0a71e05 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/EndsWith2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/EndsWith2ColumnTransformer.java @@ -17,16 +17,16 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.StartsWithColumnTransformer.equalCompare; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.StartsWithColumnTransformer.equalCompare; public class EndsWith2ColumnTransformer extends BinaryColumnTransformer { public EndsWith2ColumnTransformer( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/EndsWithColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/EndsWithColumnTransformer.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/EndsWithColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/EndsWithColumnTransformer.java index afa1e4dff8630..6040376efe973 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/EndsWithColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/EndsWithColumnTransformer.java @@ -17,16 +17,16 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.StartsWithColumnTransformer.equalCompare; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.StartsWithColumnTransformer.equalCompare; public class EndsWithColumnTransformer extends UnaryColumnTransformer { private final byte[] suffix; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ExpColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ExpColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ExpColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ExpColumnTransformer.java index b804869867afc..c6488ea8cea49 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ExpColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ExpColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ExtractTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ExtractTransformer.java similarity index 83% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ExtractTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ExtractTransformer.java index c8e11806f89a4..424632713f824 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ExtractTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ExtractTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -31,10 +31,10 @@ import java.util.function.Function; import static java.time.temporal.ChronoField.ALIGNED_WEEK_OF_YEAR; -import static org.apache.iotdb.db.utils.DateTimeUtils.convertToZonedDateTime; -import static org.apache.iotdb.db.utils.DateTimeUtils.getExtractTimestampMsPartFunction; -import static org.apache.iotdb.db.utils.DateTimeUtils.getExtractTimestampNsPartFunction; -import static org.apache.iotdb.db.utils.DateTimeUtils.getExtractTimestampUsPartFunction; +import static org.apache.iotdb.commons.queryengine.utils.DateTimeUtils.convertToZonedDateTime; +import static org.apache.iotdb.commons.queryengine.utils.DateTimeUtils.getExtractTimestampMsPartFunction; +import static org.apache.iotdb.commons.queryengine.utils.DateTimeUtils.getExtractTimestampNsPartFunction; +import static org.apache.iotdb.commons.queryengine.utils.DateTimeUtils.getExtractTimestampUsPartFunction; public class ExtractTransformer extends UnaryColumnTransformer { private final Function evaluateFunction; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/FloatToBytesColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/FloatToBytesColumnTransformer.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/FloatToBytesColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/FloatToBytesColumnTransformer.java index 7d4d4795c721a..69b1b10b81ed8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/FloatToBytesColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/FloatToBytesColumnTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/FloorColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/FloorColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/FloorColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/FloorColumnTransformer.java index 9912df4dacd99..bbe2be7a2aaed 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/FloorColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/FloorColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/FormatColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/FormatColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/FormatColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/FormatColumnTransformer.java index b47b46a636d80..36ee176e3e640 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/FormatColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/FormatColumnTransformer.java @@ -12,12 +12,12 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.MultiColumnTransformer; -import org.apache.iotdb.db.utils.DateTimeUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.MultiColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/GenericCodecColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/GenericCodecColumnTransformer.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/GenericCodecColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/GenericCodecColumnTransformer.java index f387b8850e4fe..5871b13d15c76 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/GenericCodecColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/GenericCodecColumnTransformer.java @@ -17,19 +17,19 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.inteface.CodecStrategy; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.inteface.CodecStrategy; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.Binary; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.util.TransformerDebugUtils.generateOriginalValue; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.util.TransformerDebugUtils.generateOriginalValue; /** * A generic, reusable column converter for handling all codec-based encoding/decoding functions. It diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/HmacConstantKeyColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/HmacConstantKeyColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/HmacConstantKeyColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/HmacConstantKeyColumnTransformer.java index daa5868b938de..4b517c551077c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/HmacConstantKeyColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/HmacConstantKeyColumnTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.strategies.HmacStrategy; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.strategies.HmacStrategy; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntToBytesColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/IntToBytesColumnTransformer.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntToBytesColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/IntToBytesColumnTransformer.java index 5c25a949c8f62..6f857f68fd284 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntToBytesColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/IntToBytesColumnTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LTrim2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LTrim2ColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LTrim2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LTrim2ColumnTransformer.java index 4643c3a6ec45d..6ac8ac2b74747 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LTrim2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LTrim2ColumnTransformer.java @@ -17,17 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.Binary; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.LTrimColumnTransformer.ltrim; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.LTrimColumnTransformer.ltrim; public class LTrim2ColumnTransformer extends BinaryColumnTransformer { public LTrim2ColumnTransformer( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LTrimColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LTrimColumnTransformer.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LTrimColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LTrimColumnTransformer.java index aa67b782c0754..ea4d060a92754 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LTrimColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LTrimColumnTransformer.java @@ -17,17 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.Binary; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.TrimColumnTransformer.isContain; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.TrimColumnTransformer.isContain; public class LTrimColumnTransformer extends UnaryColumnTransformer { private final byte[] character; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LengthColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LengthColumnTransformer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LengthColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LengthColumnTransformer.java index c94530c83d403..44ab06163f19e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LengthColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LengthColumnTransformer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.common.conf.TSFileConfig; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LnColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LnColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LnColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LnColumnTransformer.java index 3bccb13eb6a27..612400fcadbe1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LnColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LnColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Log10ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Log10ColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Log10ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Log10ColumnTransformer.java index fa6c021ea550a..3e6fd1bc4f7e4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Log10ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Log10ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LongToBytesColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LongToBytesColumnTransformer.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LongToBytesColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LongToBytesColumnTransformer.java index 72c3a5b2404ab..89e9dcdd3fbfa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LongToBytesColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LongToBytesColumnTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LowerColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LowerColumnTransformer.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LowerColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LowerColumnTransformer.java index d4c8fbad01117..532205f40e0d2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/LowerColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/LowerColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ObjectLengthColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ObjectLengthColumnTransformer.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ObjectLengthColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ObjectLengthColumnTransformer.java index 5d39c6f6af3ca..b10cdedaaaa48 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ObjectLengthColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ObjectLengthColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.utils.ObjectTypeUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.utils.ObjectTypeUtils; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.Binary; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RTrim2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RTrim2ColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RTrim2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RTrim2ColumnTransformer.java index 2d04dce84e491..273a1a2cd6aee 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RTrim2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RTrim2ColumnTransformer.java @@ -17,17 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.Binary; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.RTrimColumnTransformer.rtrim; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.RTrimColumnTransformer.rtrim; public class RTrim2ColumnTransformer extends BinaryColumnTransformer { public RTrim2ColumnTransformer( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RTrimColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RTrimColumnTransformer.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RTrimColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RTrimColumnTransformer.java index 18c4311d5246d..300b61ab0b608 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RTrimColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RTrimColumnTransformer.java @@ -17,17 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.Binary; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.TrimColumnTransformer.isContain; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.TrimColumnTransformer.isContain; public class RTrimColumnTransformer extends UnaryColumnTransformer { private final byte[] character; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RadiansColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RadiansColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RadiansColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RadiansColumnTransformer.java index b8d7cbab88f3c..9620931344779 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RadiansColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RadiansColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RegexpLike2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RegexpLike2ColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RegexpLike2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RegexpLike2ColumnTransformer.java index 67c2c2624c53a..f6d1d81dba7c9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RegexpLike2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RegexpLike2ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RegexpLikeColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RegexpLikeColumnTransformer.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RegexpLikeColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RegexpLikeColumnTransformer.java index e85e1b9724254..4768cf9933e61 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RegexpLikeColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RegexpLikeColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Replace2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Replace2ColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Replace2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Replace2ColumnTransformer.java index 5a44243206de2..fcf5267d3a703 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Replace2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Replace2ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Replace3ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Replace3ColumnTransformer.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Replace3ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Replace3ColumnTransformer.java index c5133c5e39034..85609a66b30c6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Replace3ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Replace3ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ternary.TernaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ternary.TernaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ReplaceFunctionColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ReplaceFunctionColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ReplaceFunctionColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ReplaceFunctionColumnTransformer.java index d2efd3483db84..20a1000e3d7e0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ReplaceFunctionColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/ReplaceFunctionColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RoundColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RoundColumnTransformer.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RoundColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RoundColumnTransformer.java index 4e66aeb7b96aa..7f7abcac36e58 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RoundColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RoundColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RoundFunctionColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RoundFunctionColumnTransformer.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RoundFunctionColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RoundFunctionColumnTransformer.java index 7817fcd1c7d22..4a429c1f62ea3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/RoundFunctionColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/RoundFunctionColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SignColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SignColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SignColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SignColumnTransformer.java index b2796eaad1fc0..079af0195dad5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SignColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SignColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SinColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SinColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SinColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SinColumnTransformer.java index f1f2a4da27744..28a8785169f26 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SinColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SinColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SinhColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SinhColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SinhColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SinhColumnTransformer.java index c6faf22c838ea..1f775c86e81ac 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SinhColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SinhColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SqrtColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SqrtColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SqrtColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SqrtColumnTransformer.java index bcd6b97eb3485..4cc398abf1f7b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SqrtColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SqrtColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/StartsWith2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/StartsWith2ColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/StartsWith2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/StartsWith2ColumnTransformer.java index b181603ca44e9..1fa62d02f1ca4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/StartsWith2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/StartsWith2ColumnTransformer.java @@ -17,16 +17,16 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.StartsWithColumnTransformer.equalCompare; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.StartsWithColumnTransformer.equalCompare; public class StartsWith2ColumnTransformer extends BinaryColumnTransformer { public StartsWith2ColumnTransformer( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/StartsWithColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/StartsWithColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/StartsWithColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/StartsWithColumnTransformer.java index cf44d3ec0fc67..82b2e72ea076f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/StartsWithColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/StartsWithColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Strcmp2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Strcmp2ColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Strcmp2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Strcmp2ColumnTransformer.java index c432738952d74..5bc98486190f1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Strcmp2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Strcmp2ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/StrcmpColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/StrcmpColumnTransformer.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/StrcmpColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/StrcmpColumnTransformer.java index c9541fe170181..e40bed5dcfb1a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/StrcmpColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/StrcmpColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Strpos2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Strpos2ColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Strpos2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Strpos2ColumnTransformer.java index 692f088a59969..7505969e27233 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Strpos2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Strpos2ColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/StrposColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/StrposColumnTransformer.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/StrposColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/StrposColumnTransformer.java index cd4459bd33362..984054277ffea 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/StrposColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/StrposColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SubString2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SubString2ColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SubString2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SubString2ColumnTransformer.java index b085976c2ed53..58bc28bb0a6d5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SubString2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SubString2ColumnTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SubString3ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SubString3ColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SubString3ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SubString3ColumnTransformer.java index 7a1dba3e08aa1..fc8e9354a2baa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SubString3ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SubString3ColumnTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ternary.TernaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ternary.TernaryColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -29,7 +29,7 @@ import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.BytesUtils; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.SubStringColumnTransformer.EMPTY_STRING; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.SubStringColumnTransformer.EMPTY_STRING; public class SubString3ColumnTransformer extends TernaryColumnTransformer { public SubString3ColumnTransformer( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SubStringColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SubStringColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SubStringColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SubStringColumnTransformer.java index 59cc8cb43694b..566e78c377561 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/SubStringColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/SubStringColumnTransformer.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/TanColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/TanColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/TanColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/TanColumnTransformer.java index a4c07da38d3f9..b44a57a2a3e0a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/TanColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/TanColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/TanhColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/TanhColumnTransformer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/TanhColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/TanhColumnTransformer.java index b0d2271698544..0698d956772d3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/TanhColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/TanhColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Trim2ColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Trim2ColumnTransformer.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Trim2ColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Trim2ColumnTransformer.java index c6788c95b632b..90c39f6ac390d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/Trim2ColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/Trim2ColumnTransformer.java @@ -17,17 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.Binary; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.TrimColumnTransformer.trim; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.TrimColumnTransformer.trim; public class Trim2ColumnTransformer extends BinaryColumnTransformer { public Trim2ColumnTransformer( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/TrimColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/TrimColumnTransformer.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/TrimColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/TrimColumnTransformer.java index 8e75c5e700741..8d4dae85f314f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/TrimColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/TrimColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/TryCastFunctionColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/TryCastFunctionColumnTransformer.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/TryCastFunctionColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/TryCastFunctionColumnTransformer.java index 419d1bbabf3be..9d07564640b43 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/TryCastFunctionColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/TryCastFunctionColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/UpperColumnTransformer.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/UpperColumnTransformer.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/UpperColumnTransformer.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/UpperColumnTransformer.java index dee529093dda2..743d984a9112c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/UpperColumnTransformer.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/UpperColumnTransformer.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/factory/CodecStrategiesFactory.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/factory/CodecStrategiesFactory.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/factory/CodecStrategiesFactory.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/factory/CodecStrategiesFactory.java index e7539011491a0..77da0a39799b4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/factory/CodecStrategiesFactory.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/factory/CodecStrategiesFactory.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.inteface.CodecStrategy; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.util.HexUtils; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.util.SpookyHashV2Utils; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.inteface.CodecStrategy; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.util.HexUtils; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.util.SpookyHashV2Utils; +import org.apache.iotdb.commons.exception.SemanticException; import com.google.common.hash.Hashing; import com.google.common.io.BaseEncoding; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/factory/NumericCodecStrategiesFactory.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/factory/NumericCodecStrategiesFactory.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/factory/NumericCodecStrategiesFactory.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/factory/NumericCodecStrategiesFactory.java index 60d1e77f78b2a..f0a38b11453b0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/factory/NumericCodecStrategiesFactory.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/factory/NumericCodecStrategiesFactory.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import java.nio.ByteBuffer; import java.nio.ByteOrder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/inteface/CodecStrategy.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/inteface/CodecStrategy.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/inteface/CodecStrategy.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/inteface/CodecStrategy.java index 7c2fd4833a139..99e13c0514862 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/inteface/CodecStrategy.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/inteface/CodecStrategy.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.inteface; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar.inteface; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; @FunctionalInterface public interface CodecStrategy { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/util/HexUtils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/util/HexUtils.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/util/HexUtils.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/util/HexUtils.java index 15ed2b9d342d8..76c4d409c55ef 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/util/HexUtils.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/util/HexUtils.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.util; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar.util; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/util/SpookyHashV2Utils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/util/SpookyHashV2Utils.java similarity index 99% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/util/SpookyHashV2Utils.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/util/SpookyHashV2Utils.java index e6ef386827e46..d726f4deff6a7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/util/SpookyHashV2Utils.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/util/SpookyHashV2Utils.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.util; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar.util; import java.nio.ByteBuffer; import java.nio.ByteOrder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/util/TransformerDebugUtils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/util/TransformerDebugUtils.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/util/TransformerDebugUtils.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/util/TransformerDebugUtils.java index 2ad8e6a29a887..35bf7daf08cc2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/util/TransformerDebugUtils.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/column/unary/scalar/util/TransformerDebugUtils.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.util; +package org.apache.iotdb.calc.transformation.dag.column.unary.scalar.util; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.common.conf.TSFileConfig; import org.apache.tsfile.read.common.type.Type; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isBlobType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isCharType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isBlobType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isCharType; /** * A utility class for generating user-friendly debug information during the execution of diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDFParametersFactory.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/udf/UDFParametersFactory.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDFParametersFactory.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/udf/UDFParametersFactory.java index 23dca86368272..e701c10eb8894 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDFParametersFactory.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/udf/UDFParametersFactory.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.udf; +package org.apache.iotdb.calc.transformation.dag.udf; import org.apache.iotdb.commons.conf.CommonConfig; import org.apache.iotdb.commons.conf.CommonDescriptor; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDTFExecutor.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/udf/UDTFExecutor.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDTFExecutor.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/udf/UDTFExecutor.java index f7a31fc00f190..9242f722c1ac3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDTFExecutor.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/udf/UDTFExecutor.java @@ -17,13 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.udf; +package org.apache.iotdb.calc.transformation.dag.udf; +import org.apache.iotdb.calc.transformation.dag.adapter.PointCollectorAdaptor; +import org.apache.iotdb.calc.transformation.dag.util.InputRowUtils; +import org.apache.iotdb.calc.transformation.datastructure.tv.ElasticSerializableTVList; +import org.apache.iotdb.commons.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; -import org.apache.iotdb.db.queryengine.plan.udf.UDFManagementService; -import org.apache.iotdb.db.queryengine.transformation.dag.adapter.PointCollectorAdaptor; -import org.apache.iotdb.db.queryengine.transformation.dag.util.InputRowUtils; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.iotdb.udf.api.UDTF; import org.apache.iotdb.udf.api.access.Row; import org.apache.iotdb.udf.api.access.RowWindow; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/BitwiseUtils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/util/BitwiseUtils.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/BitwiseUtils.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/util/BitwiseUtils.java index 97038b20e0e73..a5758094742cb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/BitwiseUtils.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/util/BitwiseUtils.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.util; +package org.apache.iotdb.calc.transformation.dag.util; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; public class BitwiseUtils { private static final long TINYINT_MASK = 0b1111_1111L; diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/util/CastFunctionUtils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/util/CastFunctionUtils.java new file mode 100644 index 0000000000000..b4e1ffeb29ce7 --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/util/CastFunctionUtils.java @@ -0,0 +1,349 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.calc.transformation.dag.util; + +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; + +import org.apache.tsfile.common.conf.TSFileConfig; +import org.apache.tsfile.read.common.type.Type; +import org.apache.tsfile.utils.Binary; +import org.apache.tsfile.utils.BytesUtils; +import org.apache.tsfile.utils.DateUtils; + +import javax.annotation.Nonnull; + +import java.time.ZoneId; +import java.time.format.DateTimeParseException; + +public class CastFunctionUtils { + public static final String ERROR_MSG = "Unsupported target dataType: %s"; + + public static int castLongToInt(long value) { + if (value > Integer.MAX_VALUE || value < Integer.MIN_VALUE) { + throw new SemanticException( + String.format("long value %d is out of range of integer value.", value)); + } + return (int) value; + } + + public static int castFloatToInt(float value) { + if (value > Integer.MAX_VALUE || value < Integer.MIN_VALUE) { + throw new SemanticException( + String.format("Float value %f is out of range of integer value.", value)); + } + return Math.round(value); + } + + public static long castFloatToLong(float value) { + if (value > Long.MAX_VALUE || value < Long.MIN_VALUE) { + throw new SemanticException( + String.format("Float value %f is out of range of long value.", value)); + } + return Math.round((double) value); + } + + public static int castDoubleToInt(double value) { + if (value > Integer.MAX_VALUE || value < Integer.MIN_VALUE) { + throw new SemanticException( + String.format("Double value %f is out of range of integer value.", value)); + } + return Math.round((float) value); + } + + public static long castDoubleToLong(double value) { + if (value > Long.MAX_VALUE || value < Long.MIN_VALUE) { + throw new SemanticException( + String.format("Double value %f is out of range of long value.", value)); + } + return Math.round(value); + } + + public static float castDoubleToFloat(double value) { + if (value > Float.MAX_VALUE || value < -Float.MAX_VALUE) { + throw new SemanticException( + String.format("Double value %f is out of range of float value.", value)); + } + return (float) value; + } + + public static float castTextToFloat(String value) { + float f = Float.parseFloat(value); + if (f == Float.POSITIVE_INFINITY || f == Float.NEGATIVE_INFINITY) { + throw new SemanticException( + String.format("Text value %s is out of range of float value.", value)); + } + return f; + } + + public static double castTextToDouble(String value) { + double d = Double.parseDouble(value); + if (d == Double.POSITIVE_INFINITY || d == Double.NEGATIVE_INFINITY) { + throw new SemanticException( + String.format("Text value %s is out of range of double value.", value)); + } + return d; + } + + public static boolean castTextToBoolean(String value) { + String lowerCase = value.toLowerCase(); + if (lowerCase.equals("true")) { + return true; + } else if (lowerCase.equals("false")) { + return false; + } else { + throw new SemanticException(String.format("Invalid text input for boolean type: %s", value)); + } + } + + // used by IrExpressionInterpreter to do constant folding + public static Object cast( + @Nonnull Object value, Type sourceType, Type targetType, SessionInfo session) { + switch (sourceType.getTypeEnum()) { + case INT32: + int intV = value instanceof Integer ? (int) value : ((Long) value).intValue(); + return castInt(intV, targetType); + case DATE: + int dateV = value instanceof Integer ? (int) value : ((Long) value).intValue(); + return castDate(dateV, targetType, session.getZoneId()); + case INT64: + long longV = (Long) value; + return castLong(longV, targetType); + case TIMESTAMP: + long timestampV = (Long) value; + return castTimestamp(timestampV, targetType, session.getZoneId()); + case FLOAT: + float floatV = value instanceof Float ? (float) value : ((Double) value).floatValue(); + return castFloat(floatV, targetType); + case DOUBLE: + double doubleV = (Double) value; + return castDouble(doubleV, targetType); + case BOOLEAN: + boolean boolV = (Boolean) value; + return castBool(boolV, targetType); + case TEXT: + case STRING: + case BLOB: + Binary binaryV = (Binary) value; + return castBinary(binaryV, targetType, session.getZoneId()); + default: + throw new UnsupportedOperationException( + String.format("Unsupported source dataType: %s", sourceType.getTypeEnum())); + } + } + + private static Object castInt(int value, Type targetType) { + switch (targetType.getTypeEnum()) { + case INT32: + case DATE: + return value; + case INT64: + case TIMESTAMP: + return (long) value; + case FLOAT: + return (float) value; + case DOUBLE: + return (double) value; + case BOOLEAN: + return value != 0; + case TEXT: + case STRING: + return BytesUtils.valueOf(String.valueOf(value)); + case BLOB: + return new Binary(BytesUtils.intToBytes(value)); + default: + throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); + } + } + + private static Object castDate(int value, Type targetType, ZoneId zoneId) { + switch (targetType.getTypeEnum()) { + case INT32: + case DATE: + return value; + case INT64: + return (long) value; + case TIMESTAMP: + return DateTimeUtils.correctPrecision(DateUtils.parseIntToTimestamp(value, zoneId)); + case FLOAT: + return (float) value; + case DOUBLE: + return (double) value; + case BOOLEAN: + return value != 0; + case TEXT: + case STRING: + return BytesUtils.valueOf(DateUtils.formatDate(value)); + case BLOB: + return new Binary(BytesUtils.intToBytes(value)); + default: + throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); + } + } + + private static Object castLong(long value, Type targetType) { + switch (targetType.getTypeEnum()) { + case INT32: + case DATE: + return castLongToInt(value); + case INT64: + case TIMESTAMP: + return value; + case FLOAT: + return (float) value; + case DOUBLE: + return (double) value; + case BOOLEAN: + return value != 0L; + case TEXT: + case STRING: + return BytesUtils.valueOf(String.valueOf(value)); + case BLOB: + return new Binary(BytesUtils.longToBytes(value)); + default: + throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); + } + } + + private static Object castTimestamp(long value, Type targetType, ZoneId zoneId) { + switch (targetType.getTypeEnum()) { + case INT32: + return castLongToInt(value); + case DATE: + return DateUtils.parseDateExpressionToInt(DateTimeUtils.convertToLocalDate(value, zoneId)); + case INT64: + case TIMESTAMP: + return value; + case FLOAT: + return (float) value; + case DOUBLE: + return (double) value; + case BOOLEAN: + return value != 0L; + case TEXT: + case STRING: + return BytesUtils.valueOf(DateTimeUtils.convertLongToDate(value, zoneId)); + case BLOB: + return new Binary(BytesUtils.longToBytes(value)); + default: + throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); + } + } + + private static Object castFloat(float value, Type targetType) { + switch (targetType.getTypeEnum()) { + case INT32: + case DATE: + return castFloatToInt(value); + case INT64: + case TIMESTAMP: + return castFloatToLong(value); + case FLOAT: + return value; + case DOUBLE: + return (double) value; + case BOOLEAN: + return value != 0.0f; + case TEXT: + case STRING: + return BytesUtils.valueOf(String.valueOf(value)); + case BLOB: + return new Binary(BytesUtils.floatToBytes(value)); + default: + throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); + } + } + + private static Object castDouble(double value, Type targetType) { + switch (targetType.getTypeEnum()) { + case INT32: + case DATE: + return castDoubleToInt(value); + case INT64: + case TIMESTAMP: + return castDoubleToLong(value); + case FLOAT: + return castDoubleToFloat(value); + case DOUBLE: + return value; + case BOOLEAN: + return value != 0.0d; + case TEXT: + case STRING: + return BytesUtils.valueOf(String.valueOf(value)); + case BLOB: + return new Binary(BytesUtils.doubleToBytes(value)); + default: + throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); + } + } + + private static Object castBool(boolean value, Type targetType) { + switch (targetType.getTypeEnum()) { + case INT32: + case DATE: + return value ? 1 : 0; + case INT64: + case TIMESTAMP: + return value ? 1L : 0L; + case FLOAT: + return value ? 1.0f : 0.0f; + case DOUBLE: + return value ? 1.0d : 0.0d; + case BOOLEAN: + return value; + case TEXT: + case STRING: + return BytesUtils.valueOf(String.valueOf(value)); + case BLOB: + return new Binary(BytesUtils.boolToBytes(value)); + default: + throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); + } + } + + private static Object castBinary(Binary value, Type targetType, ZoneId zoneId) { + String stringValue = value.getStringValue(TSFileConfig.STRING_CHARSET); + try { + switch (targetType.getTypeEnum()) { + case INT32: + return Integer.parseInt(stringValue); + case DATE: + return DateUtils.parseDateExpressionToInt(stringValue); + case INT64: + return Long.parseLong(stringValue); + case TIMESTAMP: + return DateTimeUtils.convertDatetimeStrToLong(stringValue, zoneId); + case FLOAT: + return castTextToFloat(stringValue); + case DOUBLE: + return castTextToDouble(stringValue); + case BOOLEAN: + return castTextToBoolean(stringValue); + case TEXT: + case STRING: + case BLOB: + return value; + default: + throw new UnsupportedOperationException( + String.format(ERROR_MSG, targetType.getTypeEnum())); + } + } catch (DateTimeParseException | NumberFormatException e) { + throw new SemanticException( + String.format("Cannot cast %s to %s type", stringValue, targetType.getDisplayName())); + } + } +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/util/CommonTransformUtils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/util/CommonTransformUtils.java new file mode 100644 index 0000000000000..25f57d2b0bf72 --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/util/CommonTransformUtils.java @@ -0,0 +1,46 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.calc.transformation.dag.util; + +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; + +import org.apache.tsfile.utils.Binary; + +import java.util.Objects; +import java.util.Optional; + +public class CommonTransformUtils { + public static int compare(Binary first, Binary second) { + if (Objects.requireNonNull(first) == Objects.requireNonNull(second)) { + return 0; + } + + return first.compareTo(second); + } + + public static Optional getEscapeCharacter(String escape) { + if (escape.length() == 1) { + return Optional.of(escape.charAt(0)); + } else { + throw new SemanticException("Escape string must be a single character"); + } + } + + public static boolean isStringLiteral(final Expression expression) { + return expression instanceof StringLiteral; + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/InputRowUtils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/util/InputRowUtils.java similarity index 83% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/InputRowUtils.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/util/InputRowUtils.java index 18682b17143d5..f17f11baefb97 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/InputRowUtils.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/dag/util/InputRowUtils.java @@ -17,9 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.dag.util; - -import org.apache.iotdb.db.queryengine.transformation.dag.input.IUDFInputDataSet; +package org.apache.iotdb.calc.transformation.dag.util; public class InputRowUtils { @@ -31,7 +29,8 @@ private InputRowUtils() { * this method checks whether the row returned by IUDFInputDataSet.nextRowInObjects() has all null * fields except the timestamp * - * @param row the returned row by calling {@link IUDFInputDataSet#nextRowInObjects()} + * @param row the returned row by calling {@link + * org.apache.iotdb.db.queryengine.transformation.dag.input.IUDFInputDataSet#nextRowInObjects()} * @return true if all row fields are null. */ public static boolean isAllNull(Object[] row) { @@ -50,7 +49,8 @@ public static boolean isAllNull(Object[] row) { * this method checks whether the row returned by IUDFInputDataSet.nextRowInObjects() has any null * fields except the timestamp * - * @param row the returned row by calling {@link IUDFInputDataSet#nextRowInObjects()} + * @param row the returned row by calling {@link + * org.apache.iotdb.db.queryengine.transformation.dag.input.IUDFInputDataSet#nextRowInObjects()} * @return true if any row field is null. */ public static boolean hasNullField(Object[] row) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/Cache.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/Cache.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/Cache.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/Cache.java index e9864fd21d647..4180fdc60072b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/Cache.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/Cache.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.datastructure; +package org.apache.iotdb.calc.transformation.datastructure; import java.util.LinkedHashMap; import java.util.Map; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/SerializableList.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/SerializableList.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/SerializableList.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/SerializableList.java index c6b7cee0f3afb..ee70df305ed96 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/SerializableList.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/SerializableList.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.datastructure; +package org.apache.iotdb.calc.transformation.datastructure; +import org.apache.iotdb.calc.service.AbstractTemporaryQueryDataFileService; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.file.SystemFileFactory; -import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.service.TemporaryQueryDataFileService; import org.apache.tsfile.utils.PublicBAOS; @@ -33,7 +33,7 @@ public interface SerializableList { int INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL = - IoTDBDescriptor.getInstance().getConfig().getUdfInitialByteArrayLengthForMemoryControl(); + CommonDescriptor.getInstance().getConfig().getUdfInitialByteArrayLengthForMemoryControl(); default void serialize() throws IOException { SerializationRecorder recorder = getSerializationRecorder(); @@ -129,7 +129,7 @@ public int getSerializedElementSize() { public RandomAccessFile getFile() throws IOException { if (file == null) { if (fileName == null) { - fileName = TemporaryQueryDataFileService.getInstance().register(this); + fileName = AbstractTemporaryQueryDataFileService.getInstance().register(this); } file = new RandomAccessFile(SystemFileFactory.INSTANCE.getFile(fileName), "rw"); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/iterator/ListForwardIterator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/iterator/ListForwardIterator.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/iterator/ListForwardIterator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/iterator/ListForwardIterator.java index 1a1bf942be9c4..6f0aa14fada06 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/iterator/ListForwardIterator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/iterator/ListForwardIterator.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.datastructure.iterator; +package org.apache.iotdb.calc.transformation.datastructure.iterator; import java.io.IOException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/iterator/RowListForwardIterator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/iterator/RowListForwardIterator.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/iterator/RowListForwardIterator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/iterator/RowListForwardIterator.java index ee9cf6aaeeffd..1b91904d4dcb0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/iterator/RowListForwardIterator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/iterator/RowListForwardIterator.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.datastructure.iterator; +package org.apache.iotdb.calc.transformation.datastructure.iterator; -import org.apache.iotdb.db.queryengine.transformation.datastructure.row.ElasticSerializableRowList; -import org.apache.iotdb.db.queryengine.transformation.datastructure.row.SerializableRowList; +import org.apache.iotdb.calc.transformation.datastructure.row.ElasticSerializableRowList; +import org.apache.iotdb.calc.transformation.datastructure.row.SerializableRowList; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/iterator/TVListForwardIterator.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/iterator/TVListForwardIterator.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/iterator/TVListForwardIterator.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/iterator/TVListForwardIterator.java index cd36f417ba759..783416a235881 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/iterator/TVListForwardIterator.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/iterator/TVListForwardIterator.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.datastructure.iterator; +package org.apache.iotdb.calc.transformation.datastructure.iterator; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.ElasticSerializableTVList; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.SerializableTVList; +import org.apache.iotdb.calc.transformation.datastructure.tv.ElasticSerializableTVList; +import org.apache.iotdb.calc.transformation.datastructure.tv.SerializableTVList; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/row/ElasticSerializableRowList.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/row/ElasticSerializableRowList.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/row/ElasticSerializableRowList.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/row/ElasticSerializableRowList.java index d3e2cecb7f5ac..22d5f4d0acee3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/row/ElasticSerializableRowList.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/row/ElasticSerializableRowList.java @@ -17,13 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.datastructure.row; +package org.apache.iotdb.calc.transformation.datastructure.row; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.transformation.datastructure.Cache; +import org.apache.iotdb.calc.transformation.datastructure.SerializableList; +import org.apache.iotdb.calc.transformation.datastructure.iterator.RowListForwardIterator; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.queryengine.transformation.datastructure.Cache; -import org.apache.iotdb.db.queryengine.transformation.datastructure.SerializableList; -import org.apache.iotdb.db.queryengine.transformation.datastructure.iterator.RowListForwardIterator; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/row/SerializableRowList.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/row/SerializableRowList.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/row/SerializableRowList.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/row/SerializableRowList.java index 3bacd1ac5e79a..9a20578746e70 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/row/SerializableRowList.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/row/SerializableRowList.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.datastructure.row; +package org.apache.iotdb.calc.transformation.datastructure.row; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.queryengine.transformation.datastructure.SerializableList; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.transformation.datastructure.SerializableList; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; @@ -35,9 +35,9 @@ import java.util.ArrayList; import java.util.List; +import static org.apache.iotdb.calc.transformation.datastructure.util.BinaryUtils.MIN_ARRAY_HEADER_SIZE; +import static org.apache.iotdb.calc.transformation.datastructure.util.BinaryUtils.MIN_OBJECT_HEADER_SIZE; import static org.apache.iotdb.commons.conf.IoTDBConstant.MB; -import static org.apache.iotdb.db.queryengine.transformation.datastructure.util.BinaryUtils.MIN_ARRAY_HEADER_SIZE; -import static org.apache.iotdb.db.queryengine.transformation.datastructure.util.BinaryUtils.MIN_OBJECT_HEADER_SIZE; public class SerializableRowList implements SerializableList { private final SerializationRecorder serializationRecorder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/tv/ElasticSerializableBinaryTVList.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/tv/ElasticSerializableBinaryTVList.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/tv/ElasticSerializableBinaryTVList.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/tv/ElasticSerializableBinaryTVList.java index 098997fe0e77a..7961aa1a9e21a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/tv/ElasticSerializableBinaryTVList.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/tv/ElasticSerializableBinaryTVList.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.datastructure.tv; +package org.apache.iotdb.calc.transformation.datastructure.tv; -import org.apache.iotdb.db.queryengine.transformation.datastructure.SerializableList; -import org.apache.iotdb.db.queryengine.transformation.datastructure.iterator.TVListForwardIterator; -import org.apache.iotdb.db.queryengine.transformation.datastructure.util.BinaryUtils; +import org.apache.iotdb.calc.transformation.datastructure.SerializableList; +import org.apache.iotdb.calc.transformation.datastructure.iterator.TVListForwardIterator; +import org.apache.iotdb.calc.transformation.datastructure.util.BinaryUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/tv/ElasticSerializableTVList.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/tv/ElasticSerializableTVList.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/tv/ElasticSerializableTVList.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/tv/ElasticSerializableTVList.java index f0d4e3dd174eb..818bc6ae8c882 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/tv/ElasticSerializableTVList.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/tv/ElasticSerializableTVList.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.datastructure.tv; +package org.apache.iotdb.calc.transformation.datastructure.tv; -import org.apache.iotdb.db.queryengine.transformation.datastructure.Cache; -import org.apache.iotdb.db.queryengine.transformation.datastructure.iterator.TVListForwardIterator; +import org.apache.iotdb.calc.transformation.datastructure.Cache; +import org.apache.iotdb.calc.transformation.datastructure.iterator.TVListForwardIterator; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/tv/SerializableTVList.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/tv/SerializableTVList.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/tv/SerializableTVList.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/tv/SerializableTVList.java index 57ac89f073a2f..17da47b477180 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/tv/SerializableTVList.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/tv/SerializableTVList.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.datastructure.tv; +package org.apache.iotdb.calc.transformation.datastructure.tv; +import org.apache.iotdb.calc.transformation.datastructure.SerializableList; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.queryengine.transformation.datastructure.SerializableList; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; @@ -37,9 +37,9 @@ import java.util.List; import static com.google.common.base.Preconditions.checkState; +import static org.apache.iotdb.calc.transformation.datastructure.util.BinaryUtils.MIN_ARRAY_HEADER_SIZE; +import static org.apache.iotdb.calc.transformation.datastructure.util.BinaryUtils.MIN_OBJECT_HEADER_SIZE; import static org.apache.iotdb.commons.conf.IoTDBConstant.MB; -import static org.apache.iotdb.db.queryengine.transformation.datastructure.util.BinaryUtils.MIN_ARRAY_HEADER_SIZE; -import static org.apache.iotdb.db.queryengine.transformation.datastructure.util.BinaryUtils.MIN_OBJECT_HEADER_SIZE; public class SerializableTVList implements SerializableList { protected final SerializationRecorder serializationRecorder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/util/BinaryUtils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/util/BinaryUtils.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/util/BinaryUtils.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/util/BinaryUtils.java index 38092efef8e34..d74a171ffa32d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/datastructure/util/BinaryUtils.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/transformation/datastructure/util/BinaryUtils.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.transformation.datastructure.util; +package org.apache.iotdb.calc.transformation.datastructure.util; import org.apache.tsfile.common.conf.TSFileConfig; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/HeapTraversal.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/HeapTraversal.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/HeapTraversal.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/HeapTraversal.java index b0fca32fe9c30..fdd7be0fb7808 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/HeapTraversal.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/HeapTraversal.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.utils; +package org.apache.iotdb.calc.utils; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/IObjectFileService.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/IObjectFileService.java new file mode 100644 index 0000000000000..9ab149b26ef72 --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/IObjectFileService.java @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.utils; + +import org.apache.tsfile.utils.Binary; + +import java.io.File; +import java.nio.ByteBuffer; +import java.util.Optional; + +public interface IObjectFileService { + + ByteBuffer readObjectContent( + String relativePath, long offset, int readSize, boolean mayNotInCurrentNode); + + Optional getObjectPathFromBinary(Binary binary, boolean needTempFile); + + void deleteObjectPathFromBinary(Binary binary); + + void deleteObjectPath(File file); +} diff --git a/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/IObjectFileServiceProvider.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/IObjectFileServiceProvider.java new file mode 100644 index 0000000000000..5e79beade2726 --- /dev/null +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/IObjectFileServiceProvider.java @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.calc.utils; + +public interface IObjectFileServiceProvider { + + IObjectFileService getObjectFileService(); +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/IObjectPath.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/IObjectPath.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/IObjectPath.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/IObjectPath.java index 2a2910a73d003..4be55129da3e4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/IObjectPath.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/IObjectPath.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.storageengine.dataregion; +package org.apache.iotdb.calc.utils; import org.apache.iotdb.commons.conf.CommonConfig; import org.apache.iotdb.commons.conf.CommonDescriptor; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/ObjectTypeUtils.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/ObjectTypeUtils.java similarity index 58% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/ObjectTypeUtils.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/ObjectTypeUtils.java index 6d61056ed6a05..51a28f9e72425 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/ObjectTypeUtils.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/ObjectTypeUtils.java @@ -17,14 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.utils; +package org.apache.iotdb.calc.utils; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.commons.exception.ObjectFileNotExist; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.service.metrics.FileMetrics; -import org.apache.iotdb.db.storageengine.dataregion.IObjectPath; -import org.apache.iotdb.db.storageengine.rescon.disk.TierManager; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.rpc.TSStatusCode; import org.apache.tsfile.encoding.decoder.Decoder; @@ -32,25 +28,34 @@ import org.apache.tsfile.utils.Binary; import org.apache.tsfile.utils.Pair; import org.apache.tsfile.utils.ReadWriteIOUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.File; -import java.io.IOException; import java.nio.ByteBuffer; -import java.nio.channels.FileChannel; -import java.nio.file.Files; -import java.nio.file.StandardOpenOption; -import java.util.Objects; import java.util.Optional; +import java.util.ServiceLoader; public class ObjectTypeUtils { - private static final Logger logger = LoggerFactory.getLogger(ObjectTypeUtils.class); - private static final TierManager TIER_MANAGER = TierManager.getInstance(); + private static final IObjectFileService OBJECT_FILE_SERVICE = loadObjectFileService(); private ObjectTypeUtils() {} + private static IObjectFileService loadObjectFileService() { + IObjectFileService objectFileService = null; + ServiceLoader loader = + ServiceLoader.load(IObjectFileServiceProvider.class); + for (IObjectFileServiceProvider provider : loader) { + if (objectFileService != null) { + throw new IllegalStateException("Multiple IObjectFileServiceProvider found"); + } + objectFileService = provider.getObjectFileService(); + } + if (objectFileService == null) { + throw new IllegalStateException("No IObjectFileServiceProvider found"); + } + return objectFileService; + } + public static ByteBuffer readObjectContent( Binary binary, long offset, int length, boolean mayNotInCurrentNode) { Pair objectLengthPathPair = @@ -66,31 +71,8 @@ public static ByteBuffer readObjectContent( public static ByteBuffer readObjectContent( String relativePath, long offset, int readSize, boolean mayNotInCurrentNode) { - Optional objectFile = TIER_MANAGER.getAbsoluteObjectFilePath(relativePath, false); - if (objectFile.isPresent()) { - return readObjectContentFromLocalFile(objectFile.get(), offset, readSize); - } - if (mayNotInCurrentNode) { - return readObjectContentFromRemoteFile(relativePath, offset, readSize); - } - throw new ObjectFileNotExist(relativePath); - } - - private static ByteBuffer readObjectContentFromLocalFile(File file, long offset, long readSize) { - byte[] bytes = new byte[(int) readSize]; - ByteBuffer buffer = ByteBuffer.wrap(bytes); - try (FileChannel fileChannel = FileChannel.open(file.toPath(), StandardOpenOption.READ)) { - fileChannel.read(buffer, offset); - } catch (IOException e) { - throw new IoTDBRuntimeException(e, TSStatusCode.OBJECT_READ_ERROR.getStatusCode()); - } - buffer.flip(); - return buffer; - } - - private static ByteBuffer readObjectContentFromRemoteFile( - final String relativePath, final long offset, final int readSize) { - throw new UnsupportedOperationException("readObjectContentFromRemoteFile"); + return OBJECT_FILE_SERVICE.readObjectContent( + relativePath, offset, readSize, mayNotInCurrentNode); } public static Binary generateObjectBinary(long objectSize, IObjectPath objectPath) { @@ -183,70 +165,14 @@ public static Optional getObjectPathFromBinary(Binary binary) { } public static Optional getObjectPathFromBinary(Binary binary, boolean needTempFile) { - byte[] bytes = binary.getValues(); - ByteBuffer buffer = ByteBuffer.wrap(bytes, 8, bytes.length - 8); - String relativeObjectFilePath = - IObjectPath.getDeserializer().deserializeFromObjectValue(buffer).toString(); - return TIER_MANAGER.getAbsoluteObjectFilePath(relativeObjectFilePath, needTempFile); + return OBJECT_FILE_SERVICE.getObjectPathFromBinary(binary, needTempFile); } public static void deleteObjectPathFromBinary(Binary binary) { - Optional file = ObjectTypeUtils.getObjectPathFromBinary(binary, true); - if (!file.isPresent()) { - return; - } - File tmpFile = new File(file.get().getPath() + ".tmp"); - File bakFile = new File(file.get().getPath() + ".back"); - for (int i = 0; i < 2; i++) { - if (file.get().exists()) { - FileMetrics.getInstance().decreaseObjectFileNum(1); - FileMetrics.getInstance().decreaseObjectFileSize(file.get().length()); - } - try { - deleteObjectFile(file.get()); - deleteObjectFile(tmpFile); - deleteObjectFile(bakFile); - } catch (IOException e) { - logger.error("Failed to remove object file {}", file.get().getAbsolutePath(), e); - } - } + OBJECT_FILE_SERVICE.deleteObjectPathFromBinary(binary); } public static void deleteObjectPath(File file) { - File tmpFile = new File(file.getPath() + ".tmp"); - File bakFile = new File(file.getPath() + ".back"); - for (int i = 0; i < 2; i++) { - if (file.exists()) { - FileMetrics.getInstance().decreaseObjectFileNum(1); - FileMetrics.getInstance().decreaseObjectFileSize(file.length()); - } - try { - deleteObjectFile(file); - deleteObjectFile(tmpFile); - deleteObjectFile(bakFile); - } catch (IOException e) { - logger.error("Failed to remove object file {}", file.getAbsolutePath(), e); - } - } - deleteEmptyParentDir(file); - } - - private static void deleteEmptyParentDir(File file) { - File dir = file.getParentFile(); - if (dir.isDirectory() && Objects.requireNonNull(dir.list()).length == 0) { - try { - Files.deleteIfExists(dir.toPath()); - deleteEmptyParentDir(dir); - } catch (IOException e) { - logger.error("Failed to remove empty object dir {}", dir.getAbsolutePath(), e); - } - } - } - - private static void deleteObjectFile(File file) throws IOException { - if (file.exists()) { - logger.info("Remove object file {}, size is {}(byte)", file.getAbsolutePath(), file.length()); - } - Files.deleteIfExists(file.toPath()); + OBJECT_FILE_SERVICE.deleteObjectPath(file); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/constant/SqlConstant.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/constant/SqlConstant.java similarity index 99% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/constant/SqlConstant.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/constant/SqlConstant.java index 564185474ad39..461ee37e67bcd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/constant/SqlConstant.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/constant/SqlConstant.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.utils.constant; +package org.apache.iotdb.calc.utils.constant; import org.apache.iotdb.commons.path.PartialPath; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MergeSortHeap.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/datastructure/MergeSortHeap.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MergeSortHeap.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/datastructure/MergeSortHeap.java index 4d6fd026744b7..68c0206134786 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MergeSortHeap.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/datastructure/MergeSortHeap.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.utils.datastructure; +package org.apache.iotdb.calc.utils.datastructure; import java.util.Arrays; import java.util.Comparator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MergeSortKey.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/datastructure/MergeSortKey.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MergeSortKey.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/datastructure/MergeSortKey.java index dbb54afeb0a7b..012a3bc87d054 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MergeSortKey.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/datastructure/MergeSortKey.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.utils.datastructure; +package org.apache.iotdb.calc.utils.datastructure; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/SortKey.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/datastructure/SortKey.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/SortKey.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/datastructure/SortKey.java index b6a4bec203fad..f5390f7ad69f1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/SortKey.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/datastructure/SortKey.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.utils.datastructure; +package org.apache.iotdb.calc.utils.datastructure; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/DiskSpiller.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/DiskSpiller.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/DiskSpiller.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/DiskSpiller.java index dcba1c8a930af..43cc574d26bf2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/DiskSpiller.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/DiskSpiller.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.utils.sort; +package org.apache.iotdb.calc.utils.sort; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.iotdb.commons.exception.IoTDBException; -import org.apache.iotdb.db.utils.datastructure.SortKey; import org.apache.iotdb.rpc.TSStatusCode; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/FileSpillerReader.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/FileSpillerReader.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/FileSpillerReader.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/FileSpillerReader.java index 2c5e4ef621382..af7d726d5fff3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/FileSpillerReader.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/FileSpillerReader.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.utils.sort; +package org.apache.iotdb.calc.utils.sort; +import org.apache.iotdb.calc.utils.datastructure.MergeSortKey; import org.apache.iotdb.commons.exception.IoTDBException; -import org.apache.iotdb.db.utils.datastructure.MergeSortKey; import org.apache.iotdb.rpc.TSStatusCode; import org.apache.tsfile.common.conf.TSFileDescriptor; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/MemoryReader.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/MemoryReader.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/MemoryReader.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/MemoryReader.java index 1adc68be334b0..c55c2deba8857 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/MemoryReader.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/MemoryReader.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.utils.sort; +package org.apache.iotdb.calc.utils.sort; +import org.apache.iotdb.calc.utils.datastructure.MergeSortKey; import org.apache.iotdb.commons.exception.IoTDBException; -import org.apache.iotdb.db.utils.datastructure.MergeSortKey; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/SortBufferManager.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/SortBufferManager.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/SortBufferManager.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/SortBufferManager.java index b26a3f8a58a04..f6f84d553b98c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/SortBufferManager.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/SortBufferManager.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.utils.sort; +package org.apache.iotdb.calc.utils.sort; -import org.apache.iotdb.db.queryengine.exception.MemoryNotEnoughException; +import org.apache.iotdb.calc.exception.MemoryNotEnoughException; public class SortBufferManager { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/SortReader.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/SortReader.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/SortReader.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/SortReader.java index d3c8a7099bcf5..a3806da687915 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/SortReader.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/SortReader.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.utils.sort; +package org.apache.iotdb.calc.utils.sort; +import org.apache.iotdb.calc.utils.datastructure.MergeSortKey; import org.apache.iotdb.commons.exception.IoTDBException; -import org.apache.iotdb.db.utils.datastructure.MergeSortKey; public interface SortReader { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/TableDiskSpiller.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/TableDiskSpiller.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/TableDiskSpiller.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/TableDiskSpiller.java index 0208edc6a9329..317d3369f88e2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/TableDiskSpiller.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/TableDiskSpiller.java @@ -17,7 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.utils.sort; +package org.apache.iotdb.calc.utils.sort; + +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; @@ -27,8 +29,6 @@ import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class TableDiskSpiller extends DiskSpiller { public TableDiskSpiller(String folderPath, String filePrefix, List dataTypeList) { super(folderPath, filePrefix, dataTypeList); @@ -37,7 +37,8 @@ public TableDiskSpiller(String folderPath, String filePrefix, List d @Override protected TsBlock buildSortedTsBlock(TsBlockBuilder resultBuilder) { return resultBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/TreeDiskSpiller.java b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/TreeDiskSpiller.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/TreeDiskSpiller.java rename to iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/TreeDiskSpiller.java index 77230f253a79e..e0e573bc3278c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/sort/TreeDiskSpiller.java +++ b/iotdb-core/calc-commons/src/main/java/org/apache/iotdb/calc/utils/sort/TreeDiskSpiller.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.utils.sort; +package org.apache.iotdb.calc.utils.sort; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/confignode/pom.xml b/iotdb-core/confignode/pom.xml index 57d21685eb8e8..8dcde31ec737a 100644 --- a/iotdb-core/confignode/pom.xml +++ b/iotdb-core/confignode/pom.xml @@ -59,6 +59,11 @@ iotdb-server 2.0.7-SNAPSHOT + + org.apache.iotdb + calc-commons + 2.0.7-SNAPSHOT + org.apache.iotdb pipe-api diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java index 59b318a4b11e9..3f92340d43160 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java @@ -24,6 +24,7 @@ import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.client.property.ClientPoolProperty.DefaultProperty; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.confignode.manager.load.balancer.RegionBalancer; import org.apache.iotdb.confignode.manager.load.balancer.router.leader.AbstractLeaderBalancer; @@ -377,6 +378,7 @@ public int getConfigNodeId() { public void setConfigNodeId(int configNodeId) { this.configNodeId = configNodeId; + CommonDescriptor.getInstance().getConfig().setNodeId(configNodeId); } public String getInternalAddress() { diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlan.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlan.java index ffe333b56dd78..5e9283ab3035e 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlan.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlan.java @@ -20,6 +20,7 @@ package org.apache.iotdb.confignode.consensus.request; import org.apache.iotdb.commons.exception.runtime.SerializationRunTimeException; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.confignode.consensus.request.read.ainode.GetAINodeConfigurationPlan; import org.apache.iotdb.confignode.consensus.request.read.subscription.ShowTopicPlan; import org.apache.iotdb.confignode.consensus.request.write.ainode.RegisterAINodePlan; @@ -139,7 +140,6 @@ import org.apache.iotdb.confignode.consensus.request.write.trigger.UpdateTriggerLocationPlan; import org.apache.iotdb.confignode.consensus.request.write.trigger.UpdateTriggerStateInTablePlan; import org.apache.iotdb.confignode.consensus.request.write.trigger.UpdateTriggersOnTransferNodesPlan; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.tsfile.utils.PublicBAOS; diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/read/ttl/ShowTTLPlan.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/read/ttl/ShowTTLPlan.java index 9f2992eeeb1ac..199dbc75fc6a8 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/read/ttl/ShowTTLPlan.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/read/ttl/ShowTTLPlan.java @@ -19,9 +19,9 @@ package org.apache.iotdb.confignode.consensus.request.read.ttl; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.confignode.consensus.request.ConfigPhysicalPlanType; import org.apache.iotdb.confignode.consensus.request.read.ConfigPhysicalReadPlan; -import org.apache.iotdb.db.utils.constant.SqlConstant; public class ShowTTLPlan extends ConfigPhysicalReadPlan { private final String[] pathPattern; diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/pipe/task/PipeTableResp.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/pipe/task/PipeTableResp.java index 5b5393eaa6895..49f10a79e8ac3 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/pipe/task/PipeTableResp.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/response/pipe/task/PipeTableResp.java @@ -33,13 +33,13 @@ import org.apache.iotdb.commons.pipe.config.constant.PipeSinkConstant; import org.apache.iotdb.commons.pipe.config.constant.PipeSourceConstant; import org.apache.iotdb.commons.pipe.config.constant.SystemConstant; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.confignode.manager.pipe.source.ConfigRegionListeningFilter; import org.apache.iotdb.confignode.rpc.thrift.TGetAllPipeInfoResp; import org.apache.iotdb.confignode.rpc.thrift.TShowPipeInfo; import org.apache.iotdb.confignode.rpc.thrift.TShowPipeResp; import org.apache.iotdb.confignode.service.ConfigNode; import org.apache.iotdb.consensus.common.DataSet; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.iotdb.pipe.api.customizer.parameter.PipeParameters; import java.io.IOException; diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/ConfigRegionStateMachine.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/ConfigRegionStateMachine.java index d4e61c22f75e1..effb1c466bab9 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/ConfigRegionStateMachine.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/ConfigRegionStateMachine.java @@ -28,6 +28,7 @@ import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.consensus.ConsensusGroupId; import org.apache.iotdb.commons.file.SystemFileFactory; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.confignode.conf.ConfigNodeConfig; import org.apache.iotdb.confignode.conf.ConfigNodeDescriptor; import org.apache.iotdb.confignode.consensus.request.ConfigPhysicalPlan; @@ -44,7 +45,6 @@ import org.apache.iotdb.consensus.IStateMachine; import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.request.ByteBufferConsensusRequest; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.db.utils.writelog.LogWriter; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java index 2c5a77303d9b9..b80376e014a15 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java @@ -19,6 +19,7 @@ package org.apache.iotdb.confignode.manager; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.common.rpc.thrift.Model; import org.apache.iotdb.common.rpc.thrift.TConsensusGroupId; import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType; @@ -154,7 +155,6 @@ import org.apache.iotdb.confignode.rpc.thrift.TUnsubscribeReq; import org.apache.iotdb.consensus.ConsensusFactory; import org.apache.iotdb.db.exception.BatchProcessException; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.iotdb.rpc.RpcUtils; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/sink/payload/PipeTransferConfigPlanReq.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/sink/payload/PipeTransferConfigPlanReq.java index 4bbaf77da23c7..16153d97f2d2a 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/sink/payload/PipeTransferConfigPlanReq.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/sink/payload/PipeTransferConfigPlanReq.java @@ -21,7 +21,7 @@ import org.apache.iotdb.commons.pipe.sink.payload.thrift.request.IoTDBSinkRequestVersion; import org.apache.iotdb.commons.pipe.sink.payload.thrift.request.PipeRequestType; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.service.rpc.thrift.TPipeTransferReq; import org.apache.tsfile.utils.BytesUtils; diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/source/PipeConfigTreePatternParseVisitor.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/source/PipeConfigTreePatternParseVisitor.java index fe86bf5f2f5d5..cb332742fde77 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/source/PipeConfigTreePatternParseVisitor.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/source/PipeConfigTreePatternParseVisitor.java @@ -25,6 +25,7 @@ import org.apache.iotdb.commons.path.PathPatternTree; import org.apache.iotdb.commons.pipe.datastructure.pattern.IoTDBTreePatternOperations; import org.apache.iotdb.commons.pipe.datastructure.pattern.TreePattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.schema.template.Template; import org.apache.iotdb.confignode.consensus.request.ConfigPhysicalPlan; import org.apache.iotdb.confignode.consensus.request.ConfigPhysicalPlanVisitor; @@ -42,7 +43,6 @@ import org.apache.iotdb.confignode.consensus.request.write.template.CreateSchemaTemplatePlan; import org.apache.iotdb.confignode.consensus.request.write.template.ExtendSchemaTemplatePlan; import org.apache.iotdb.confignode.manager.pipe.event.PipeConfigRegionWritePlanEvent; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.schemaengine.template.alter.TemplateExtendInfo; import org.apache.tsfile.utils.Pair; diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ClusterSchemaInfo.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ClusterSchemaInfo.java index 342da4fa3acbc..67ce6736a56d5 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ClusterSchemaInfo.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ClusterSchemaInfo.java @@ -26,6 +26,7 @@ import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; import org.apache.iotdb.commons.schema.table.TableNodeStatus; @@ -99,7 +100,6 @@ import org.apache.iotdb.confignode.rpc.thrift.TTableInfo; import org.apache.iotdb.db.exception.metadata.DatabaseNotSetException; import org.apache.iotdb.db.exception.metadata.SchemaQuotaExceededException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.schemaengine.template.TemplateInternalRPCUtil; import org.apache.iotdb.db.schemaengine.template.alter.TemplateExtendInfo; import org.apache.iotdb.rpc.RpcUtils; diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ConfigMTree.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ConfigMTree.java index 6b47773813e31..5ec586552493b 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ConfigMTree.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/schema/ConfigMTree.java @@ -24,6 +24,7 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.exception.table.ColumnNotExistsException; import org.apache.iotdb.commons.exception.table.TableAlreadyExistsException; import org.apache.iotdb.commons.exception.table.TableNotExistsException; @@ -49,7 +50,6 @@ import org.apache.iotdb.db.exception.metadata.DatabaseNotSetException; import org.apache.iotdb.db.exception.metadata.PathAlreadyExistException; import org.apache.iotdb.db.exception.metadata.PathNotExistException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.schemaengine.schemaregion.mtree.traverser.collector.DatabaseCollector; import org.apache.iotdb.db.schemaengine.schemaregion.mtree.traverser.collector.MNodeAboveDBCollector; import org.apache.iotdb.db.schemaengine.schemaregion.mtree.traverser.collector.MNodeCollector; diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java index d9cd2ad88179a..f691292c7079b 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java @@ -24,6 +24,7 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.cluster.RegionStatus; import org.apache.iotdb.commons.exception.runtime.ThriftSerDeException; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.utils.CommonDateTimeUtils; import org.apache.iotdb.commons.utils.ThriftCommonsSerDeUtils; import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv; @@ -31,7 +32,6 @@ import org.apache.iotdb.confignode.procedure.exception.ProcedureException; import org.apache.iotdb.confignode.procedure.state.AddRegionPeerState; import org.apache.iotdb.confignode.procedure.store.ProcedureType; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.iotdb.mpp.rpc.thrift.TRegionMigrateResult; import org.slf4j.Logger; diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/ReconstructRegionProcedure.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/ReconstructRegionProcedure.java index 230a40098e378..0cd1a00c7247f 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/ReconstructRegionProcedure.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/ReconstructRegionProcedure.java @@ -22,13 +22,13 @@ import org.apache.iotdb.common.rpc.thrift.TConsensusGroupId; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; import org.apache.iotdb.commons.exception.runtime.ThriftSerDeException; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.utils.CommonDateTimeUtils; import org.apache.iotdb.commons.utils.ThriftCommonsSerDeUtils; import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv; import org.apache.iotdb.confignode.procedure.exception.ProcedureException; import org.apache.iotdb.confignode.procedure.state.ReconstructRegionState; import org.apache.iotdb.confignode.procedure.store.ProcedureType; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RegionMigrateProcedure.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RegionMigrateProcedure.java index 3d70f04f76d46..899d0504767c5 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RegionMigrateProcedure.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RegionMigrateProcedure.java @@ -22,6 +22,7 @@ import org.apache.iotdb.common.rpc.thrift.TConsensusGroupId; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; import org.apache.iotdb.commons.exception.runtime.ThriftSerDeException; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.utils.CommonDateTimeUtils; import org.apache.iotdb.commons.utils.ThriftCommonsSerDeUtils; import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv; @@ -29,7 +30,6 @@ import org.apache.iotdb.confignode.procedure.exception.ProcedureException; import org.apache.iotdb.confignode.procedure.state.RegionTransitionState; import org.apache.iotdb.confignode.procedure.store.ProcedureType; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RemoveRegionPeerProcedure.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RemoveRegionPeerProcedure.java index 9b4c29b095ecc..05d57a0c09e15 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RemoveRegionPeerProcedure.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RemoveRegionPeerProcedure.java @@ -25,6 +25,7 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.cluster.RegionStatus; import org.apache.iotdb.commons.exception.runtime.ThriftSerDeException; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.utils.CommonDateTimeUtils; import org.apache.iotdb.commons.utils.ThriftCommonsSerDeUtils; import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv; @@ -32,7 +33,6 @@ import org.apache.iotdb.confignode.procedure.exception.ProcedureException; import org.apache.iotdb.confignode.procedure.state.RemoveRegionPeerState; import org.apache.iotdb.confignode.procedure.store.ProcedureType; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.iotdb.mpp.rpc.thrift.TRegionMigrateResult; import org.slf4j.Logger; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/IConsensus.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/IConsensus.java index 8f49af524bc01..c462aa3a046e1 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/IConsensus.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/IConsensus.java @@ -21,9 +21,9 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.consensus.ConsensusGroupId; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.Peer; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.config.ConsensusConfig; import org.apache.iotdb.consensus.exception.ConsensusException; import org.apache.iotdb.consensus.exception.ConsensusGroupAlreadyExistException; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/IStateMachine.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/IStateMachine.java index 692b60beb2a2d..6d115cb81618a 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/IStateMachine.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/IStateMachine.java @@ -21,10 +21,10 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.consensus.ConsensusGroupId; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.Peer; import org.apache.iotdb.consensus.common.Utils; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import javax.annotation.concurrent.ThreadSafe; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/BatchIndexedConsensusRequest.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/BatchIndexedConsensusRequest.java index 658dc69d24e4e..d47e69a48130f 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/BatchIndexedConsensusRequest.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/BatchIndexedConsensusRequest.java @@ -23,7 +23,8 @@ import java.util.LinkedList; import java.util.List; -public class BatchIndexedConsensusRequest implements IConsensusRequest { +public class BatchIndexedConsensusRequest + implements org.apache.iotdb.commons.request.IConsensusRequest { private boolean isStartSyncIndexInitialized; private long startSyncIndex; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/ByteBufferConsensusRequest.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/ByteBufferConsensusRequest.java index 6ce31cc18597d..978fe3dcf0346 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/ByteBufferConsensusRequest.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/ByteBufferConsensusRequest.java @@ -27,7 +27,8 @@ * received by the followers, the responsibility of deserialization can generally be transferred to * the state machine layer */ -public class ByteBufferConsensusRequest implements IConsensusRequest { +public class ByteBufferConsensusRequest + implements org.apache.iotdb.commons.request.IConsensusRequest { private final ByteBuffer byteBuffer; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/DeserializedBatchIndexedConsensusRequest.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/DeserializedBatchIndexedConsensusRequest.java index 9cdeaf60c3029..acb3b78d17c51 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/DeserializedBatchIndexedConsensusRequest.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/DeserializedBatchIndexedConsensusRequest.java @@ -25,10 +25,11 @@ import java.util.Objects; public class DeserializedBatchIndexedConsensusRequest - implements IConsensusRequest, Comparable { + implements org.apache.iotdb.commons.request.IConsensusRequest, + Comparable { private final long startSyncIndex; private final long endSyncIndex; - private final List insertNodes; + private final List insertNodes; private long memorySize; public DeserializedBatchIndexedConsensusRequest( @@ -47,11 +48,11 @@ public long getEndSyncIndex() { return endSyncIndex; } - public List getInsertNodes() { + public List getInsertNodes() { return insertNodes; } - public void add(IConsensusRequest insertNode) { + public void add(org.apache.iotdb.commons.request.IConsensusRequest insertNode) { this.insertNodes.add(insertNode); this.memorySize += insertNode.getMemorySize(); } diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/IndexedConsensusRequest.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/IndexedConsensusRequest.java index 2bf01d4ef868c..a6b5f98e83a84 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/IndexedConsensusRequest.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/IndexedConsensusRequest.java @@ -26,18 +26,19 @@ import java.util.concurrent.atomic.AtomicLong; /** only used for iot consensus. */ -public class IndexedConsensusRequest implements IConsensusRequest { +public class IndexedConsensusRequest implements org.apache.iotdb.commons.request.IConsensusRequest { /** we do not need to serialize these two fields as they are useless in other nodes. */ private final long searchIndex; private final long syncIndex; - private final List requests; + private final List requests; private final List serializedRequests; private long memorySize = 0; private AtomicLong referenceCnt = new AtomicLong(); - public IndexedConsensusRequest(long searchIndex, List requests) { + public IndexedConsensusRequest( + long searchIndex, List requests) { this.searchIndex = searchIndex; this.requests = requests; this.syncIndex = -1L; @@ -45,7 +46,9 @@ public IndexedConsensusRequest(long searchIndex, List request } public IndexedConsensusRequest( - long searchIndex, long syncIndex, List requests) { + long searchIndex, + long syncIndex, + List requests) { this.searchIndex = searchIndex; this.requests = requests; this.syncIndex = syncIndex; @@ -66,7 +69,7 @@ public ByteBuffer serializeToByteBuffer() { throw new UnsupportedOperationException(); } - public List getRequests() { + public List getRequests() { return requests; } diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/IoTConsensusRequest.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/IoTConsensusRequest.java index 3b55016d8b648..728260230a6db 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/IoTConsensusRequest.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/IoTConsensusRequest.java @@ -27,7 +27,7 @@ * these two classes. And we need to separate them in DataRegionStateMachine when deserialize the * PlanNode from ByteBuffer */ -public class IoTConsensusRequest implements IConsensusRequest { +public class IoTConsensusRequest implements org.apache.iotdb.commons.request.IConsensusRequest { private final ByteBuffer byteBuffer; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/IoTConsensus.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/IoTConsensus.java index 959191ca2d6d3..a34102178688b 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/IoTConsensus.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/IoTConsensus.java @@ -27,6 +27,7 @@ import org.apache.iotdb.commons.concurrent.threadpool.ScheduledExecutorUtil; import org.apache.iotdb.commons.consensus.ConsensusGroupId; import org.apache.iotdb.commons.exception.StartupException; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.commons.service.RegisterManager; import org.apache.iotdb.commons.utils.FileUtils; import org.apache.iotdb.commons.utils.KillPoint.DataNodeKillPoints; @@ -39,7 +40,6 @@ import org.apache.iotdb.consensus.IStateMachine.Registry; import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.Peer; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.config.ConsensusConfig; import org.apache.iotdb.consensus.config.IoTConsensusConfig; import org.apache.iotdb.consensus.exception.ConsensusException; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/IoTConsensusServerImpl.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/IoTConsensusServerImpl.java index 567261efffffa..d8fa9fc8f635b 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/IoTConsensusServerImpl.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/IoTConsensusServerImpl.java @@ -26,6 +26,7 @@ import org.apache.iotdb.commons.consensus.ConsensusGroupId; import org.apache.iotdb.commons.consensus.index.ComparableConsensusRequest; import org.apache.iotdb.commons.consensus.index.impl.IoTProgressIndex; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.commons.service.metric.MetricService; import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics; import org.apache.iotdb.commons.utils.CommonDateTimeUtils; @@ -35,7 +36,6 @@ import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.Peer; import org.apache.iotdb.consensus.common.request.DeserializedBatchIndexedConsensusRequest; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.common.request.IndexedConsensusRequest; import org.apache.iotdb.consensus.config.IoTConsensusConfig; import org.apache.iotdb.consensus.exception.ConsensusGroupModifyPeerException; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/log/GetConsensusReqReaderPlan.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/log/GetConsensusReqReaderPlan.java index 377b8954e6da1..fd3a459162c23 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/log/GetConsensusReqReaderPlan.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/log/GetConsensusReqReaderPlan.java @@ -19,7 +19,7 @@ package org.apache.iotdb.consensus.iot.log; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; +import org.apache.iotdb.commons.request.IConsensusRequest; import java.nio.ByteBuffer; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/service/IoTConsensusRPCServiceProcessor.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/service/IoTConsensusRPCServiceProcessor.java index 71c14aebaa139..9038753063b6e 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/service/IoTConsensusRPCServiceProcessor.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/service/IoTConsensusRPCServiceProcessor.java @@ -21,13 +21,13 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.consensus.ConsensusGroupId; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.commons.utils.KillPoint.DataNodeKillPoints; import org.apache.iotdb.commons.utils.KillPoint.IoTConsensusInactivatePeerKillPoints; import org.apache.iotdb.commons.utils.KillPoint.KillPoint; import org.apache.iotdb.consensus.common.Peer; import org.apache.iotdb.consensus.common.request.BatchIndexedConsensusRequest; import org.apache.iotdb.consensus.common.request.ByteBufferConsensusRequest; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.common.request.IoTConsensusRequest; import org.apache.iotdb.consensus.exception.ConsensusGroupModifyPeerException; import org.apache.iotdb.consensus.iot.IoTConsensus; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/IoTConsensusV2.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/IoTConsensusV2.java index 4ed1e7f1731be..11d53f9c56410 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/IoTConsensusV2.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/IoTConsensusV2.java @@ -27,6 +27,7 @@ import org.apache.iotdb.commons.consensus.ConsensusGroupId; import org.apache.iotdb.commons.consensus.iotv2.container.IoTV2GlobalComponentContainer; import org.apache.iotdb.commons.exception.StartupException; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.commons.service.RegisterManager; import org.apache.iotdb.commons.utils.FileUtils; import org.apache.iotdb.commons.utils.KillPoint.DataNodeKillPoints; @@ -38,7 +39,6 @@ import org.apache.iotdb.consensus.IStateMachine; import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.Peer; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.config.ConsensusConfig; import org.apache.iotdb.consensus.config.IoTConsensusV2Config; import org.apache.iotdb.consensus.exception.ConsensusException; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/IoTConsensusV2ServerImpl.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/IoTConsensusV2ServerImpl.java index 66001c40b5d2f..778ea51213306 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/IoTConsensusV2ServerImpl.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/IoTConsensusV2ServerImpl.java @@ -28,6 +28,7 @@ import org.apache.iotdb.commons.consensus.index.ComparableConsensusRequest; import org.apache.iotdb.commons.consensus.index.ProgressIndex; import org.apache.iotdb.commons.consensus.index.impl.MinimumProgressIndex; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.commons.service.metric.MetricService; import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics; import org.apache.iotdb.commons.utils.KillPoint.DataNodeKillPoints; @@ -35,7 +36,6 @@ import org.apache.iotdb.consensus.IStateMachine; import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.Peer; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.config.IoTConsensusV2Config; import org.apache.iotdb.consensus.config.IoTConsensusV2Config.ReplicateMode; import org.apache.iotdb.consensus.exception.ConsensusGroupModifyPeerException; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/ApplicationStateMachineProxy.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/ApplicationStateMachineProxy.java index 12095189c522d..63c8bbf0c7b01 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/ApplicationStateMachineProxy.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/ApplicationStateMachineProxy.java @@ -21,11 +21,11 @@ import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType; import org.apache.iotdb.common.rpc.thrift.TSStatus; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics; import org.apache.iotdb.consensus.IStateMachine; import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.request.ByteBufferConsensusRequest; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.ratis.metrics.RatisMetricsManager; import org.apache.iotdb.consensus.ratis.utils.Retriable; import org.apache.iotdb.consensus.ratis.utils.Utils; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisConsensus.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisConsensus.java index 265192858bf97..fc2515484b2f8 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisConsensus.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisConsensus.java @@ -29,6 +29,7 @@ import org.apache.iotdb.commons.client.exception.ClientManagerException; import org.apache.iotdb.commons.client.property.ClientPoolProperty; import org.apache.iotdb.commons.consensus.ConsensusGroupId; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.commons.service.metric.MetricService; import org.apache.iotdb.commons.utils.StatusUtils; import org.apache.iotdb.commons.utils.TestOnly; @@ -36,7 +37,6 @@ import org.apache.iotdb.consensus.IStateMachine; import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.Peer; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.config.ConsensusConfig; import org.apache.iotdb.consensus.config.RatisConfig; import org.apache.iotdb.consensus.exception.ConsensusException; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RequestMessage.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RequestMessage.java index 3c02ca42e2f03..5926fadaf293f 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RequestMessage.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RequestMessage.java @@ -19,7 +19,7 @@ package org.apache.iotdb.consensus.ratis; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.ratis.protocol.Message; import org.apache.ratis.thirdparty.com.google.protobuf.ByteString; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/simple/SimpleConsensus.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/simple/SimpleConsensus.java index f7fcba1a597b2..c0f006c5aacd1 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/simple/SimpleConsensus.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/simple/SimpleConsensus.java @@ -23,6 +23,7 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.consensus.ConsensusGroupId; import org.apache.iotdb.commons.consensus.DataRegionId; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics; import org.apache.iotdb.commons.utils.FileUtils; import org.apache.iotdb.commons.utils.StatusUtils; @@ -31,7 +32,6 @@ import org.apache.iotdb.consensus.IStateMachine.Registry; import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.Peer; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.config.ConsensusConfig; import org.apache.iotdb.consensus.exception.ConsensusException; import org.apache.iotdb.consensus.exception.ConsensusGroupAlreadyExistException; diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/simple/SimpleConsensusServerImpl.java b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/simple/SimpleConsensusServerImpl.java index fa3c9dff37b2f..4ed4a7b41ce41 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/simple/SimpleConsensusServerImpl.java +++ b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/simple/SimpleConsensusServerImpl.java @@ -20,10 +20,10 @@ package org.apache.iotdb.consensus.simple; import org.apache.iotdb.common.rpc.thrift.TSStatus; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.consensus.IStateMachine; import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.Peer; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import java.io.File; diff --git a/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/EmptyStateMachine.java b/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/EmptyStateMachine.java index 79b825670a50d..aafa0be5bb5ff 100644 --- a/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/EmptyStateMachine.java +++ b/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/EmptyStateMachine.java @@ -20,8 +20,8 @@ package org.apache.iotdb.consensus; import org.apache.iotdb.common.rpc.thrift.TSStatus; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.consensus.common.DataSet; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import java.io.File; diff --git a/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/iot/util/TestStateMachine.java b/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/iot/util/TestStateMachine.java index a515010a3497a..54acdec30bbc7 100644 --- a/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/iot/util/TestStateMachine.java +++ b/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/iot/util/TestStateMachine.java @@ -20,12 +20,12 @@ package org.apache.iotdb.consensus.iot.util; import org.apache.iotdb.common.rpc.thrift.TSStatus; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.consensus.IStateMachine; import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.Peer; import org.apache.iotdb.consensus.common.request.BatchIndexedConsensusRequest; import org.apache.iotdb.consensus.common.request.DeserializedBatchIndexedConsensusRequest; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.common.request.IndexedConsensusRequest; import org.apache.iotdb.consensus.iot.log.ConsensusReqReader; import org.apache.iotdb.consensus.iot.log.GetConsensusReqReaderPlan; diff --git a/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/ratis/RecoverReadTest.java b/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/ratis/RecoverReadTest.java index ac8115ced8555..c93cdc91af8ea 100644 --- a/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/ratis/RecoverReadTest.java +++ b/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/ratis/RecoverReadTest.java @@ -20,8 +20,8 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.consensus.ConsensusGroupId; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.consensus.common.Peer; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.config.RatisConfig; import org.apache.iotdb.consensus.exception.RatisReadUnavailableException; diff --git a/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/ratis/TestUtils.java b/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/ratis/TestUtils.java index f5997c261fdff..69725d68be6ee 100644 --- a/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/ratis/TestUtils.java +++ b/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/ratis/TestUtils.java @@ -24,6 +24,7 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.consensus.ConsensusGroupId; import org.apache.iotdb.commons.consensus.DataRegionId; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.consensus.ConsensusFactory; import org.apache.iotdb.consensus.IStateMachine; @@ -31,7 +32,6 @@ import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.Peer; import org.apache.iotdb.consensus.common.request.ByteBufferConsensusRequest; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.config.ConsensusConfig; import org.apache.iotdb.consensus.config.RatisConfig; import org.apache.iotdb.consensus.exception.ConsensusException; diff --git a/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/simple/SimpleConsensusTest.java b/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/simple/SimpleConsensusTest.java index 047465a3d4f69..d50ab992f6f9c 100644 --- a/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/simple/SimpleConsensusTest.java +++ b/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/simple/SimpleConsensusTest.java @@ -26,6 +26,7 @@ import org.apache.iotdb.commons.consensus.ConsensusGroupId; import org.apache.iotdb.commons.consensus.DataRegionId; import org.apache.iotdb.commons.consensus.SchemaRegionId; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.consensus.ConsensusFactory; import org.apache.iotdb.consensus.EmptyStateMachine; import org.apache.iotdb.consensus.IConsensus; @@ -33,7 +34,6 @@ import org.apache.iotdb.consensus.common.DataSet; import org.apache.iotdb.consensus.common.Peer; import org.apache.iotdb.consensus.common.request.ByteBufferConsensusRequest; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.config.ConsensusConfig; import org.apache.iotdb.consensus.exception.ConsensusException; import org.apache.iotdb.consensus.exception.ConsensusGroupAlreadyExistException; diff --git a/iotdb-core/datanode/pom.xml b/iotdb-core/datanode/pom.xml index ffba7f4bb6479..d3f5f4a669f0c 100644 --- a/iotdb-core/datanode/pom.xml +++ b/iotdb-core/datanode/pom.xml @@ -69,6 +69,11 @@ node-commons 2.0.7-SNAPSHOT + + org.apache.iotdb + calc-commons + 2.0.7-SNAPSHOT + org.apache.iotdb isession @@ -239,10 +244,6 @@ - - com.google.code.gson - gson - com.github.ben-manes.caffeine caffeine @@ -265,6 +266,7 @@ at.yawk.lz4 lz4-java + test junit @@ -402,6 +404,10 @@ ${project.build.directory}/codegen + + ${maven.multiModuleProjectDirectory}/iotdb-core/calc-commons/src/main/codegen + false + src/main/codegen false diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java index 31f446df27031..c7fc72152e21e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java @@ -340,8 +340,6 @@ public class IoTDBConfig { private int mergeThresholdOfExplainAnalyze = 10; - private int modeMapSizeThreshold = 10000; - /** How many queries can be concurrently executed. When <= 0, use 1000. */ private int maxAllowedConcurrentQueries = 1000; @@ -441,15 +439,6 @@ public class IoTDBConfig { /** Enable auto repair compaction */ private volatile boolean enableAutoRepairCompaction = true; - /** The buffer for sort operation */ - private long sortBufferSize = 32 * 1024 * 1024L; - - /** The buffer for cte scan operation */ - private long cteBufferSize = 128 * 1024L; - - /** Max number of rows for cte materialization */ - private int maxRowsInCteBuffer = 1000; - /** Mods cache size limit per fi */ private long modsCacheSizeLimitPerFI = 32 * 1024 * 1024; @@ -813,12 +802,6 @@ public class IoTDBConfig { private boolean enable13DataInsertAdapt = false; - /** - * Used to estimate the memory usage of text fields in a UDF query. It is recommended to set this - * value to be slightly larger than the average length of all text records. - */ - private int udfInitialByteArrayLengthForMemoryControl = 48; - /** * How much memory may be used in ONE UDF query (in MB). * @@ -1031,9 +1014,6 @@ public class IoTDBConfig { private ReadConsistencyLevel readConsistencyLevel = ReadConsistencyLevel.STRONG; - /** Maximum execution time of a DriverTask */ - private int driverTaskExecutionTimeSliceInMs = 200; - /** Maximum size of wal buffer used in IoTConsensus. Unit: byte */ private long throttleThreshold = 200 * 1024 * 1024 * 1024L; @@ -1344,15 +1324,6 @@ public void setUdfCollectorMemoryBudgetInMB(float udfCollectorMemoryBudgetInMB) this.udfCollectorMemoryBudgetInMB = udfCollectorMemoryBudgetInMB; } - public int getUdfInitialByteArrayLengthForMemoryControl() { - return udfInitialByteArrayLengthForMemoryControl; - } - - public void setUdfInitialByteArrayLengthForMemoryControl( - int udfInitialByteArrayLengthForMemoryControl) { - this.udfInitialByteArrayLengthForMemoryControl = udfInitialByteArrayLengthForMemoryControl; - } - public int getDefaultFillInterval() { return defaultFillInterval; } @@ -3262,6 +3233,7 @@ public int getDataNodeId() { public void setDataNodeId(int dataNodeId) { this.dataNodeId = dataNodeId; + CommonDescriptor.getInstance().getConfig().setNodeId(dataNodeId); } public int getPartitionCacheSize() { @@ -3483,14 +3455,6 @@ public void setReadConsistencyLevel(String readConsistencyLevel) { } } - public int getDriverTaskExecutionTimeSliceInMs() { - return driverTaskExecutionTimeSliceInMs; - } - - public void setDriverTaskExecutionTimeSliceInMs(int driverTaskExecutionTimeSliceInMs) { - this.driverTaskExecutionTimeSliceInMs = driverTaskExecutionTimeSliceInMs; - } - public static String getEnvironmentVariables() { return "\n\t" + IoTDBConstant.IOTDB_HOME @@ -3893,14 +3857,6 @@ public void setCandidateCompactionTaskQueueSize(int candidateCompactionTaskQueue this.candidateCompactionTaskQueueSize = candidateCompactionTaskQueueSize; } - public void setModeMapSizeThreshold(int modeMapSizeThreshold) { - this.modeMapSizeThreshold = modeMapSizeThreshold; - } - - public int getModeMapSizeThreshold() { - return modeMapSizeThreshold; - } - public double getMaxAllocateMemoryRatioForLoad() { return maxAllocateMemoryRatioForLoad; } @@ -4255,30 +4211,6 @@ public void setRateLimiterType(String rateLimiterType) { RateLimiterType = rateLimiterType; } - public void setSortBufferSize(long sortBufferSize) { - this.sortBufferSize = sortBufferSize; - } - - public long getSortBufferSize() { - return sortBufferSize; - } - - public void setCteBufferSize(long cteBufferSize) { - this.cteBufferSize = cteBufferSize; - } - - public long getCteBufferSize() { - return cteBufferSize; - } - - public void setMaxRowsInCteBuffer(int maxRowsInCteBuffer) { - this.maxRowsInCteBuffer = maxRowsInCteBuffer; - } - - public int getMaxRowsInCteBuffer() { - return maxRowsInCteBuffer; - } - public void setModsCacheSizeLimitPerFI(long modsCacheSizeLimitPerFI) { this.modsCacheSizeLimitPerFI = modsCacheSizeLimitPerFI; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java index b221d8810a5ed..065583a383c96 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java @@ -18,6 +18,7 @@ */ package org.apache.iotdb.db.conf; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.binaryallocator.BinaryAllocator; import org.apache.iotdb.commons.conf.CommonConfig; import org.apache.iotdb.commons.conf.CommonDescriptor; @@ -35,7 +36,6 @@ import org.apache.iotdb.confignode.rpc.thrift.TRatisConfig; import org.apache.iotdb.consensus.config.IoTConsensusV2Config; import org.apache.iotdb.db.consensus.DataRegionConsensusImpl; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.pipe.resource.log.PipePeriodicalLogReducer; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.LastCacheLoadStrategy; import org.apache.iotdb.db.service.metrics.IoTDBInternalLocalReporter; @@ -54,7 +54,7 @@ import org.apache.iotdb.db.storageengine.load.disk.ILoadDiskSelector; import org.apache.iotdb.db.storageengine.rescon.disk.TierManager; import org.apache.iotdb.db.storageengine.rescon.memory.SystemInfo; -import org.apache.iotdb.db.utils.DateTimeUtils; +import org.apache.iotdb.db.utils.DataNodeDateTimeUtils; import org.apache.iotdb.db.utils.datastructure.TVListSortAlgorithm; import org.apache.iotdb.external.api.IPropertiesLoader; import org.apache.iotdb.metrics.config.MetricConfigDescriptor; @@ -101,6 +101,7 @@ public class IoTDBDescriptor { private static final Logger LOGGER = LoggerFactory.getLogger(IoTDBDescriptor.class); private static final CommonDescriptor commonDescriptor = CommonDescriptor.getInstance(); + private static final CommonConfig commonConfig = commonDescriptor.getConfig(); private static final IoTDBConfig conf = new IoTDBConfig(); private static final DataNodeMemoryConfig memoryConfig = new DataNodeMemoryConfig(); @@ -537,13 +538,14 @@ public void loadProperties(TrimProperties properties) throws BadNodeUrlException "merge_threshold_of_explain_analyze", Integer.toString(conf.getMergeThresholdOfExplainAnalyze())))); - conf.setModeMapSizeThreshold( + commonConfig.setModeMapSizeThreshold( Integer.parseInt( properties.getProperty( - "mode_map_size_threshold", Integer.toString(conf.getModeMapSizeThreshold())))); + "mode_map_size_threshold", + Integer.toString(commonConfig.getModeMapSizeThreshold())))); - if (conf.getModeMapSizeThreshold() <= 0) { - conf.setModeMapSizeThreshold(10000); + if (commonConfig.getModeMapSizeThreshold() <= 0) { + commonConfig.setModeMapSizeThreshold(10000); } conf.setMaxAllowedConcurrentQueries( @@ -1050,24 +1052,29 @@ public void loadProperties(TrimProperties properties) throws BadNodeUrlException properties.getProperty("quota_enable", String.valueOf(conf.isQuotaEnable())))); // The buffer for sort operator to calculate - loadFixedSizeLimitForQuery(properties, "sort_buffer_size_in_bytes", conf::setSortBufferSize); + loadFixedSizeLimitForQuery( + properties, + "sort_buffer_size_in_bytes", + (v) -> { + commonDescriptor.getConfig().setSortBufferSize(v); + }); // The buffer for cte materialization. long cteBufferSizeInBytes = Long.parseLong( properties.getProperty( - "cte_buffer_size_in_bytes", Long.toString(conf.getCteBufferSize()))); + "cte_buffer_size_in_bytes", Long.toString(commonConfig.getCteBufferSize()))); if (cteBufferSizeInBytes > 0) { - conf.setCteBufferSize(cteBufferSizeInBytes); + commonConfig.setCteBufferSize(cteBufferSizeInBytes); } // max number of rows for cte materialization int maxRowsInCteBuffer = Integer.parseInt( properties.getProperty( - "max_rows_in_cte_buffer", Integer.toString(conf.getMaxRowsInCteBuffer()))); + "max_rows_in_cte_buffer", Integer.toString(commonConfig.getMaxRowsInCteBuffer()))); if (maxRowsInCteBuffer > 0) { - conf.setMaxRowsInCteBuffer(maxRowsInCteBuffer); + commonConfig.setMaxRowsInCteBuffer(maxRowsInCteBuffer); } loadFixedSizeLimitForQuery( @@ -2264,7 +2271,10 @@ public synchronized void loadHotModifiedProps(TrimProperties properties) ConfigurationFileUtils.getConfigurationDefaultValue("tvlist_sort_threshold")))); // sort_buffer_size_in_bytes - loadFixedSizeLimitForQuery(properties, "sort_buffer_size_in_bytes", conf::setSortBufferSize); + loadFixedSizeLimitForQuery( + properties, + "sort_buffer_size_in_bytes", + v -> commonDescriptor.getConfig().setSortBufferSize(v)); loadFixedSizeLimitForQuery( properties, "mods_cache_size_limit_per_fi_in_bytes", conf::setModsCacheSizeLimitPerFI); @@ -2280,17 +2290,18 @@ public synchronized void loadHotModifiedProps(TrimProperties properties) long cteBufferSizeInBytes = Long.parseLong( properties.getProperty( - "cte_buffer_size_in_bytes", Long.toString(conf.getCteBufferSize()))); + "cte_buffer_size_in_bytes", Long.toString(commonConfig.getCteBufferSize()))); if (cteBufferSizeInBytes > 0) { - conf.setCteBufferSize(cteBufferSizeInBytes); + commonConfig.setCteBufferSize(cteBufferSizeInBytes); } // max number of rows for cte materialization int maxRowsInCteBuffer = Integer.parseInt( properties.getProperty( - "max_rows_in_cte_buffer", Integer.toString(conf.getMaxRowsInCteBuffer()))); + "max_rows_in_cte_buffer", + Integer.toString(commonConfig.getMaxRowsInCteBuffer()))); if (maxRowsInCteBuffer > 0) { - conf.setMaxRowsInCteBuffer(maxRowsInCteBuffer); + commonConfig.setMaxRowsInCteBuffer(maxRowsInCteBuffer); } // max sub-task num for information table scan @@ -2628,8 +2639,10 @@ private void loadUDFProps(TrimProperties properties) { String initialByteArrayLengthForMemoryControl = properties.getProperty("udf_initial_byte_array_length_for_memory_control"); if (initialByteArrayLengthForMemoryControl != null) { - conf.setUdfInitialByteArrayLengthForMemoryControl( - Integer.parseInt(initialByteArrayLengthForMemoryControl.trim())); + commonDescriptor + .getConfig() + .setUdfInitialByteArrayLengthForMemoryControl( + Integer.parseInt(initialByteArrayLengthForMemoryControl.trim())); } conf.setUdfDir(properties.getProperty("udf_lib_dir", conf.getUdfDir())); @@ -2761,7 +2774,7 @@ private void loadCQProps(TrimProperties properties) { } conf.setContinuousQueryMinimumEveryInterval( - DateTimeUtils.convertDurationStrToLong( + DataNodeDateTimeUtils.convertDurationStrToLong( properties.getProperty("continuous_query_minimum_every_interval", "1s").trim(), CommonDescriptor.getInstance().getConfig().getTimestampPrecision(), false)); @@ -2838,11 +2851,11 @@ public void loadShuffleProps(TrimProperties properties) { properties.getProperty( "partition_cache_size", Integer.toString(conf.getPartitionCacheSize())))); - conf.setDriverTaskExecutionTimeSliceInMs( + commonConfig.setDriverTaskExecutionTimeSliceInMs( Integer.parseInt( properties.getProperty( "driver_task_execution_time_slice_in_ms", - Integer.toString(conf.getDriverTaskExecutionTimeSliceInMs())))); + Integer.toString(commonConfig.getDriverTaskExecutionTimeSliceInMs())))); } /** Get default encode algorithm by data type */ diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/BaseStateMachine.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/BaseStateMachine.java index 3b9651a1f1dc4..73f99f8b269cb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/BaseStateMachine.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/BaseStateMachine.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.consensus.statemachine; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.consensus.IStateMachine; import org.apache.iotdb.consensus.common.request.ByteBufferConsensusRequest; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataExecutionVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataExecutionVisitor.java index e0184b8595d23..5de040eeba28a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataExecutionVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataExecutionVisitor.java @@ -21,15 +21,15 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.utils.StatusUtils; import org.apache.iotdb.db.exception.BatchProcessException; import org.apache.iotdb.db.exception.WriteProcessException; import org.apache.iotdb.db.exception.WriteProcessRejectException; import org.apache.iotdb.db.exception.query.OutOfTTLException; import org.apache.iotdb.db.exception.runtime.TableLostRuntimeException; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeEnrichedDeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeEnrichedInsertNode; @@ -54,7 +54,7 @@ import java.io.IOException; import java.util.Map; -public class DataExecutionVisitor extends PlanVisitor { +public class DataExecutionVisitor implements PlanVisitor { private static final Logger LOGGER = LoggerFactory.getLogger(DataExecutionVisitor.class); @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataRegionStateMachine.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataRegionStateMachine.java index 5fa375406b896..5225f33971874 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataRegionStateMachine.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataRegionStateMachine.java @@ -23,8 +23,9 @@ import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.consensus.ConsensusGroupId; import org.apache.iotdb.commons.consensus.DataRegionId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.consensus.common.DataSet; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.common.request.IndexedConsensusRequest; import org.apache.iotdb.consensus.iot.log.GetConsensusReqReaderPlan; import org.apache.iotdb.db.conf.IoTDBDescriptor; @@ -32,7 +33,6 @@ import org.apache.iotdb.db.pipe.agent.PipeDataNodeAgent; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceManager; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.SearchNode; import org.apache.iotdb.db.storageengine.StorageEngine; import org.apache.iotdb.db.storageengine.buffer.BloomFilterCache; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/IoTConsensusDataRegionStateMachine.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/IoTConsensusDataRegionStateMachine.java index 240c1b1caa0fe..562c9bbf999de 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/IoTConsensusDataRegionStateMachine.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/IoTConsensusDataRegionStateMachine.java @@ -22,14 +22,14 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.consensus.index.ComparableConsensusRequest; import org.apache.iotdb.commons.consensus.index.impl.IoTProgressIndex; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.consensus.common.request.BatchIndexedConsensusRequest; import org.apache.iotdb.consensus.common.request.ByteBufferConsensusRequest; import org.apache.iotdb.consensus.common.request.DeserializedBatchIndexedConsensusRequest; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.common.request.IndexedConsensusRequest; import org.apache.iotdb.consensus.common.request.IoTConsensusRequest; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.storageengine.dataregion.DataRegion; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.WALEntry; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaExecutionVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaExecutionVisitor.java index 261b4908a9061..f3ddfbab7b292 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaExecutionVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaExecutionVisitor.java @@ -25,6 +25,7 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.schema.template.Template; import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression; import org.apache.iotdb.commons.utils.MetadataUtils; @@ -33,7 +34,6 @@ import org.apache.iotdb.db.exception.metadata.template.TemplateIsInUseException; import org.apache.iotdb.db.pipe.agent.PipeDataNodeAgent; import org.apache.iotdb.db.pipe.source.schemaregion.SchemaRegionListeningQueue; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.ActivateTemplateNode; @@ -96,7 +96,7 @@ import java.util.Objects; /** Schema write {@link PlanNode} visitor */ -public class SchemaExecutionVisitor extends PlanVisitor { +public class SchemaExecutionVisitor implements PlanVisitor { private static Logger logger = LoggerFactory.getLogger(SchemaExecutionVisitor.class); @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaRegionStateMachine.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaRegionStateMachine.java index bc2baacb13682..edab5862d11e8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaRegionStateMachine.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaRegionStateMachine.java @@ -22,8 +22,9 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.consensus.ConsensusGroupId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.consensus.common.DataSet; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.ratis.utils.Utils; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.consensus.statemachine.BaseStateMachine; @@ -31,7 +32,6 @@ import org.apache.iotdb.db.pipe.source.schemaregion.SchemaRegionListeningQueue; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceManager; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; import org.apache.iotdb.db.schemaengine.schemaregion.attribute.update.GeneralRegionAttributeSecurityService; import org.apache.iotdb.db.tools.schema.SchemaRegionSnapshotParser; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/BatchProcessException.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/BatchProcessException.java index a0442e53e2247..1e51440da3be8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/BatchProcessException.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/BatchProcessException.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.exception; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.common.rpc.thrift.TSStatus; -import org.apache.iotdb.db.exception.query.QueryProcessException; import java.util.Arrays; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/load/LoadAnalyzeTableColumnDisorderException.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/load/LoadAnalyzeTableColumnDisorderException.java index a34ecd12c1670..6ac06e8b71229 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/load/LoadAnalyzeTableColumnDisorderException.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/load/LoadAnalyzeTableColumnDisorderException.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.exception.load; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.rpc.TSStatusCode; public class LoadAnalyzeTableColumnDisorderException extends SemanticException { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/query/OutOfTTLException.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/query/OutOfTTLException.java index 0eb4fe058ed94..16c058f100e29 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/query/OutOfTTLException.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/query/OutOfTTLException.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.exception.query; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.db.exception.WriteProcessException; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.iotdb.rpc.TSStatusCode; public class OutOfTTLException extends WriteProcessException { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/sql/ColumnCreationFailException.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/sql/ColumnCreationFailException.java index 3317befb643ac..227b7b522e4ec 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/sql/ColumnCreationFailException.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/sql/ColumnCreationFailException.java @@ -19,7 +19,8 @@ package org.apache.iotdb.db.exception.sql; -public class ColumnCreationFailException extends SemanticException { +public class ColumnCreationFailException + extends org.apache.iotdb.commons.exception.SemanticException { public ColumnCreationFailException(String message) { super(message); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/PipeDataNodeTaskAgent.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/PipeDataNodeTaskAgent.java index 8e6818dff3207..031cfd3a62e0e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/PipeDataNodeTaskAgent.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/PipeDataNodeTaskAgent.java @@ -44,6 +44,7 @@ import org.apache.iotdb.commons.pipe.config.constant.PipeSourceConstant; import org.apache.iotdb.commons.pipe.config.constant.SystemConstant; import org.apache.iotdb.commons.pipe.resource.log.PipeLogger; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.consensus.exception.ConsensusException; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; @@ -61,7 +62,6 @@ import org.apache.iotdb.db.protocol.client.ConfigNodeClient; import org.apache.iotdb.db.protocol.client.ConfigNodeClientManager; import org.apache.iotdb.db.protocol.client.ConfigNodeInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeOperateSchemaQueueNode; import org.apache.iotdb.db.schemaengine.SchemaEngine; import org.apache.iotdb.db.storageengine.StorageEngine; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/subtask/sink/PipeSinkSubtask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/subtask/sink/PipeSinkSubtask.java index c6ab294600567..6e26a76d77481 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/subtask/sink/PipeSinkSubtask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/subtask/sink/PipeSinkSubtask.java @@ -25,6 +25,7 @@ import org.apache.iotdb.commons.pipe.config.PipeConfig; import org.apache.iotdb.commons.pipe.event.EnrichedEvent; import org.apache.iotdb.commons.pipe.sink.protocol.IoTDBSink; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.utils.ErrorHandlingCommonUtils; import org.apache.iotdb.db.pipe.agent.PipeDataNodeAgent; import org.apache.iotdb.db.pipe.event.UserDefinedEnrichedEvent; @@ -34,7 +35,6 @@ import org.apache.iotdb.db.pipe.metric.sink.PipeDataRegionSinkMetrics; import org.apache.iotdb.db.pipe.sink.protocol.thrift.async.IoTDBDataRegionAsyncSink; import org.apache.iotdb.db.pipe.sink.protocol.thrift.sync.IoTDBDataRegionSyncSink; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.metrics.type.Histogram; import org.apache.iotdb.pipe.api.PipeConnector; import org.apache.iotdb.pipe.api.event.Event; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/deletion/PipeDeleteDataNodeEvent.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/deletion/PipeDeleteDataNodeEvent.java index f49f2b8bc8344..5cfaf506eedec 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/deletion/PipeDeleteDataNodeEvent.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/deletion/PipeDeleteDataNodeEvent.java @@ -27,9 +27,9 @@ import org.apache.iotdb.commons.pipe.datastructure.pattern.TreePattern; import org.apache.iotdb.commons.pipe.event.EnrichedEvent; import org.apache.iotdb.commons.pipe.event.SerializableEvent; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.pipe.consensus.deletion.DeletionResource; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.AbstractDeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalDeleteDataNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/heartbeat/PipeHeartbeatEvent.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/heartbeat/PipeHeartbeatEvent.java index 8ed7317d2bc5e..33697f6d5ab85 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/heartbeat/PipeHeartbeatEvent.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/heartbeat/PipeHeartbeatEvent.java @@ -26,10 +26,10 @@ import org.apache.iotdb.commons.pipe.datastructure.pattern.TablePattern; import org.apache.iotdb.commons.pipe.datastructure.pattern.TreePattern; import org.apache.iotdb.commons.pipe.event.EnrichedEvent; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.db.pipe.metric.overview.PipeDataNodeSinglePipeMetrics; import org.apache.iotdb.db.pipe.metric.overview.PipeHeartbeatEventMetrics; import org.apache.iotdb.db.pipe.source.dataregion.realtime.disruptor.RingBuffer; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.iotdb.pipe.api.event.Event; import org.slf4j.Logger; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/schema/PipeSchemaRegionSnapshotEvent.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/schema/PipeSchemaRegionSnapshotEvent.java index 711b473a0869f..14d8c6b69476d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/schema/PipeSchemaRegionSnapshotEvent.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/schema/PipeSchemaRegionSnapshotEvent.java @@ -26,9 +26,9 @@ import org.apache.iotdb.commons.pipe.event.PipeSnapshotEvent; import org.apache.iotdb.commons.pipe.resource.ref.PipePhantomReferenceManager.PipeEventResource; import org.apache.iotdb.commons.pipe.resource.snapshot.PipeSnapshotResourceManager; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.pipe.event.ReferenceTrackableEvent; import org.apache.iotdb.db.pipe.resource.PipeDataNodeResourceManager; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/schema/PipeSchemaRegionWritePlanEvent.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/schema/PipeSchemaRegionWritePlanEvent.java index bc04f11ff3edb..52924729d10f3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/schema/PipeSchemaRegionWritePlanEvent.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/schema/PipeSchemaRegionWritePlanEvent.java @@ -24,8 +24,8 @@ import org.apache.iotdb.commons.pipe.datastructure.pattern.TreePattern; import org.apache.iotdb.commons.pipe.event.EnrichedEvent; import org.apache.iotdb.commons.pipe.event.PipeWritePlanEvent; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/aggregate/AggregateProcessor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/aggregate/AggregateProcessor.java index 43b099407805b..63bdbd1daec39 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/aggregate/AggregateProcessor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/aggregate/AggregateProcessor.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.pipe.processor.aggregate; +import org.apache.iotdb.calc.transformation.dag.udf.UDFParametersFactory; import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.consensus.DataRegionId; import org.apache.iotdb.commons.consensus.index.ProgressIndex; @@ -42,7 +43,6 @@ import org.apache.iotdb.db.pipe.processor.aggregate.operator.processor.AbstractOperatorProcessor; import org.apache.iotdb.db.pipe.processor.aggregate.window.datastructure.WindowOutput; import org.apache.iotdb.db.pipe.processor.aggregate.window.processor.AbstractWindowingProcessor; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDFParametersFactory; import org.apache.iotdb.db.storageengine.StorageEngine; import org.apache.iotdb.pipe.api.PipeProcessor; import org.apache.iotdb.pipe.api.access.Row; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/aggregate/window/processor/TumblingWindowingProcessor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/aggregate/window/processor/TumblingWindowingProcessor.java index 27828cba443de..59aae9625f6d0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/aggregate/window/processor/TumblingWindowingProcessor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/aggregate/window/processor/TumblingWindowingProcessor.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.pipe.processor.aggregate.window.processor; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.db.pipe.processor.aggregate.window.datastructure.TimeSeriesWindow; import org.apache.iotdb.db.pipe.processor.aggregate.window.datastructure.WindowOutput; import org.apache.iotdb.db.pipe.processor.aggregate.window.datastructure.WindowState; -import org.apache.iotdb.db.utils.DateTimeUtils; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.iotdb.pipe.api.annotation.TreeModel; import org.apache.iotdb.pipe.api.customizer.configuration.PipeProcessorRuntimeConfiguration; import org.apache.iotdb.pipe.api.customizer.parameter.PipeParameterValidator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/downsampling/tumbling/TumblingTimeSamplingProcessor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/downsampling/tumbling/TumblingTimeSamplingProcessor.java index a7411aada3efa..a9c735414d62c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/downsampling/tumbling/TumblingTimeSamplingProcessor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/downsampling/tumbling/TumblingTimeSamplingProcessor.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.pipe.processor.downsampling.tumbling; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.db.pipe.processor.downsampling.DownSamplingProcessor; import org.apache.iotdb.db.pipe.processor.downsampling.PartialPathLastObjectCache; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.iotdb.pipe.api.access.Row; import org.apache.iotdb.pipe.api.annotation.TreeModel; import org.apache.iotdb.pipe.api.collector.RowCollector; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/IoTDBLegacyPipeReceiverAgent.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/IoTDBLegacyPipeReceiverAgent.java index ea7baae792775..073286cab81ae 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/IoTDBLegacyPipeReceiverAgent.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/IoTDBLegacyPipeReceiverAgent.java @@ -25,13 +25,13 @@ import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; import org.apache.iotdb.commons.utils.FileUtils; import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.pipe.sink.payload.legacy.PipeData; import org.apache.iotdb.db.pipe.sink.payload.legacy.TsFilePipeData; import org.apache.iotdb.db.protocol.session.SessionManager; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.analyze.IPartitionFetcher; import org.apache.iotdb.db.queryengine.plan.analyze.schema.ISchemaFetcher; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/DeletionLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/DeletionLoader.java index 56875a840ed36..ccb91ceca964f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/DeletionLoader.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/DeletionLoader.java @@ -21,11 +21,11 @@ import org.apache.iotdb.commons.audit.UserEntity; import org.apache.iotdb.commons.conf.CommonDescriptor; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.load.LoadFileException; import org.apache.iotdb.db.protocol.session.SessionManager; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.execution.ExecutionResult; import org.apache.iotdb.db.queryengine.plan.statement.Statement; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/TsFileLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/TsFileLoader.java index e4a1c079a2146..1c95b574b54c7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/TsFileLoader.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/TsFileLoader.java @@ -22,11 +22,11 @@ import org.apache.iotdb.commons.audit.UserEntity; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.load.LoadFileException; import org.apache.iotdb.db.protocol.session.SessionManager; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.execution.ExecutionResult; import org.apache.iotdb.db.queryengine.plan.statement.crud.LoadTsFileStatement; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java index c4664f552de7c..c10fdbc4f6720 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java @@ -646,10 +646,11 @@ private TSStatus loadSchemaSnapShot( .flatMap(parsedStatement -> batchVisitor.process(parsedStatement, null)) .ifPresent(statement -> results.add(executeStatementAndClassifyExceptions(statement))); } else if (treeOrTableStatement - instanceof org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement) { - final org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement originalStatement = - (org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement) - treeOrTableStatement; + instanceof org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement) { + final org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement + originalStatement = + (org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement) + treeOrTableStatement; if (!executionTypes.contains(StatementType.AUTO_CREATE_DEVICE_MNODE)) { continue; @@ -699,7 +700,7 @@ private TPipeTransferResp handleTransferSchemaPlan(final PipeTransferPlanNodeReq ? new TPipeTransferResp(executeStatementAndClassifyExceptions((Statement) statement)) : new TPipeTransferResp( executeStatementForTableModelWithPermissionCheck( - (org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement) statement, + (org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement) statement, null)); } @@ -1050,7 +1051,7 @@ private TSStatus executeStatementForTreeModel(final Statement statement) { } private TSStatus executeStatementForTableModelWithPermissionCheck( - final org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement statement, + final org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement statement, final String databaseName) { try { final TSStatus status = loginIfNecessary(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/converter/ValueConverter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/converter/ValueConverter.java index 0ca6c2aa0c454..2f1f219c8ed22 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/converter/ValueConverter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/converter/ValueConverter.java @@ -19,7 +19,8 @@ package org.apache.iotdb.db.pipe.receiver.transform.converter; -import org.apache.iotdb.db.utils.DateTimeUtils; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; +import org.apache.iotdb.db.utils.DataNodeDateTimeUtils; import org.apache.iotdb.db.utils.TypeInferenceUtils; import org.apache.tsfile.common.conf.TSFileConfig; @@ -797,7 +798,8 @@ private static long parseTimestamp(final String value) { try { return TypeInferenceUtils.isNumber(value) ? Long.parseLong(value) - : DateTimeUtils.parseDateTimeExpressionToLong(StringUtils.trim(value), ZoneOffset.UTC); + : DataNodeDateTimeUtils.parseDateTimeExpressionToLong( + StringUtils.trim(value), ZoneOffset.UTC); } catch (final Exception e) { return 0L; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/statement/PipeConvertedInsertRowStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/statement/PipeConvertedInsertRowStatement.java index a81e1206cf600..c3db7954b40be 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/statement/PipeConvertedInsertRowStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/statement/PipeConvertedInsertRowStatement.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.pipe.receiver.transform.statement; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.pipe.resource.log.PipeLogger; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.metadata.PathNotExistException; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.pipe.receiver.transform.converter.ValueConverter; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipePlanToStatementVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipePlanToStatementVisitor.java index 4570a98e8dc4a..dd0ccf373cdb1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipePlanToStatementVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipePlanToStatementVisitor.java @@ -21,7 +21,9 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.ActivateTemplateNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.AlterTimeSeriesNode; @@ -44,8 +46,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceAttributeUpdateNode; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateOrUpdateDevice; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Delete; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Update; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import org.apache.iotdb.db.queryengine.plan.statement.crud.DeleteDataStatement; @@ -72,7 +72,7 @@ import java.util.Objects; import java.util.stream.Collectors; -public class PipePlanToStatementVisitor extends PlanVisitor { +public class PipePlanToStatementVisitor implements PlanVisitor { @Override public Statement visitPlan(final PlanNode node, final Void context) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementExceptionVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementExceptionVisitor.java index 5b57b24031465..42b1f0e5b1e3c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementExceptionVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementExceptionVisitor.java @@ -22,9 +22,9 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.exception.auth.AccessDeniedException; import org.apache.iotdb.db.exception.load.LoadRuntimeOutOfMemoryException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.exception.sql.StatementAnalyzeException; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import org.apache.iotdb.db.queryengine.plan.statement.StatementNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementTablePatternParseVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementTablePatternParseVisitor.java index 7f4752c596460..22771efcd5900 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementTablePatternParseVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementTablePatternParseVisitor.java @@ -20,14 +20,14 @@ package org.apache.iotdb.db.pipe.receiver.visitor; import org.apache.iotdb.commons.pipe.datastructure.pattern.TablePattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateOrUpdateDevice; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import java.util.Optional; public class PipeStatementTablePatternParseVisitor - extends AstVisitor, TablePattern> { + implements AstVisitor, TablePattern> { @Override public Optional visitCreateOrUpdateDevice( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/payload/evolvable/request/PipeTransferPlanNodeReq.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/payload/evolvable/request/PipeTransferPlanNodeReq.java index 6c33541c59f7b..8f7dc24e3e835 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/payload/evolvable/request/PipeTransferPlanNodeReq.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/payload/evolvable/request/PipeTransferPlanNodeReq.java @@ -21,8 +21,8 @@ import org.apache.iotdb.commons.pipe.sink.payload.thrift.request.IoTDBSinkRequestVersion; import org.apache.iotdb.commons.pipe.sink.payload.thrift.request.PipeRequestType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.service.rpc.thrift.TPipeTransferReq; import org.apache.tsfile.utils.BytesUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/payload/evolvable/request/PipeTransferTabletBinaryReq.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/payload/evolvable/request/PipeTransferTabletBinaryReq.java index a561540632939..93d79146a018e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/payload/evolvable/request/PipeTransferTabletBinaryReq.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/payload/evolvable/request/PipeTransferTabletBinaryReq.java @@ -21,8 +21,8 @@ import org.apache.iotdb.commons.pipe.sink.payload.thrift.request.IoTDBSinkRequestVersion; import org.apache.iotdb.commons.pipe.sink.payload.thrift.request.PipeRequestType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.pipe.receiver.protocol.thrift.IoTDBDataNodeReceiver; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/iotconsensusv2/payload/request/IoTConsensusV2DeleteNodeReq.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/iotconsensusv2/payload/request/IoTConsensusV2DeleteNodeReq.java index e1785a9269695..a0558417b3960 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/iotconsensusv2/payload/request/IoTConsensusV2DeleteNodeReq.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/iotconsensusv2/payload/request/IoTConsensusV2DeleteNodeReq.java @@ -23,9 +23,9 @@ import org.apache.iotdb.commons.consensus.index.ProgressIndex; import org.apache.iotdb.commons.pipe.sink.payload.iotconsensusv2.request.IoTConsensusV2RequestType; import org.apache.iotdb.commons.pipe.sink.payload.iotconsensusv2.request.IoTConsensusV2RequestVersion; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.consensus.iotconsensusv2.thrift.TCommitId; import org.apache.iotdb.consensus.iotconsensusv2.thrift.TIoTConsensusV2TransferReq; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.AbstractDeleteDataNode; import org.apache.tsfile.utils.PublicBAOS; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/iotconsensusv2/payload/request/IoTConsensusV2TabletBinaryReq.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/iotconsensusv2/payload/request/IoTConsensusV2TabletBinaryReq.java index b28ce042f416e..ae2901c3f039e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/iotconsensusv2/payload/request/IoTConsensusV2TabletBinaryReq.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/iotconsensusv2/payload/request/IoTConsensusV2TabletBinaryReq.java @@ -23,9 +23,9 @@ import org.apache.iotdb.commons.consensus.index.ProgressIndex; import org.apache.iotdb.commons.pipe.sink.payload.iotconsensusv2.request.IoTConsensusV2RequestType; import org.apache.iotdb.commons.pipe.sink.payload.iotconsensusv2.request.IoTConsensusV2RequestVersion; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.consensus.iotconsensusv2.thrift.TCommitId; import org.apache.iotdb.consensus.iotconsensusv2.thrift.TIoTConsensusV2TransferReq; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertNode; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.WALEntry; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/iotconsensusv2/payload/request/IoTConsensusV2TabletInsertNodeReq.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/iotconsensusv2/payload/request/IoTConsensusV2TabletInsertNodeReq.java index 714be88fca1d3..bd89f23a63ddc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/iotconsensusv2/payload/request/IoTConsensusV2TabletInsertNodeReq.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/iotconsensusv2/payload/request/IoTConsensusV2TabletInsertNodeReq.java @@ -23,9 +23,9 @@ import org.apache.iotdb.commons.consensus.index.ProgressIndex; import org.apache.iotdb.commons.pipe.sink.payload.iotconsensusv2.request.IoTConsensusV2RequestType; import org.apache.iotdb.commons.pipe.sink.payload.iotconsensusv2.request.IoTConsensusV2RequestVersion; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.consensus.iotconsensusv2.thrift.TCommitId; import org.apache.iotdb.consensus.iotconsensusv2.thrift.TIoTConsensusV2TransferReq; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertNode; import org.apache.tsfile.utils.PublicBAOS; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/server/OpcUaNameSpace.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/server/OpcUaNameSpace.java index d1182e59b52c6..8ad53297fe665 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/server/OpcUaNameSpace.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/opcua/server/OpcUaNameSpace.java @@ -22,11 +22,11 @@ import org.apache.iotdb.commons.exception.pipe.PipeRuntimeCriticalException; import org.apache.iotdb.commons.exception.pipe.PipeRuntimeNonCriticalException; import org.apache.iotdb.commons.pipe.resource.log.PipeLogger; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.db.pipe.sink.protocol.opcua.OpcUaSink; import org.apache.iotdb.db.pipe.sink.util.sorter.PipeTableModelTabletEventSorter; import org.apache.iotdb.db.pipe.sink.util.sorter.PipeTreeModelTabletEventSorter; -import org.apache.iotdb.db.utils.DateTimeUtils; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.iotdb.pipe.api.event.Event; import org.apache.tsfile.common.constant.TsFileConstant; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/writeback/WriteBackSink.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/writeback/WriteBackSink.java index b5dccb55c880a..8e02f6af358ad 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/writeback/WriteBackSink.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/writeback/WriteBackSink.java @@ -25,6 +25,7 @@ import org.apache.iotdb.commons.exception.IoTDBRuntimeException; import org.apache.iotdb.commons.exception.auth.AccessDeniedException; import org.apache.iotdb.commons.pipe.resource.log.PipeLogger; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; import org.apache.iotdb.commons.utils.StatusUtils; import org.apache.iotdb.confignode.rpc.thrift.TDatabaseSchema; import org.apache.iotdb.db.auth.AuthorityChecker; @@ -34,7 +35,6 @@ import org.apache.iotdb.db.pipe.event.common.tablet.PipeRawTabletInsertionEvent; import org.apache.iotdb.db.pipe.sink.payload.evolvable.request.PipeTransferTabletInsertNodeReqV2; import org.apache.iotdb.db.pipe.sink.payload.evolvable.request.PipeTransferTabletRawReqV2; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.InternalClientSession; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.queryengine.plan.Coordinator; @@ -206,7 +206,7 @@ public void customize( ZoneId.systemDefault().toString(), SessionManager.CURRENT_RPC_VERSION, IoTDBConstant.ClientVersion.V_1_0, - IClientSession.SqlDialect.TREE, + SqlDialect.TREE, environment.getRegionId() >= 0) .getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) { @@ -391,7 +391,7 @@ public void close() throws Exception { private TSStatus executeStatementForTableModel( Statement statement, String dataBaseName, final String userName) { session.setDatabaseName(dataBaseName); - session.setSqlDialect(IClientSession.SqlDialect.TABLE); + session.setSqlDialect(SqlDialect.TABLE); final String originalUserName = session.getUsername(); if (useEventUserName && userName != null) { session.setUsername(userName); @@ -496,7 +496,7 @@ private void autoCreateDatabaseIfNecessary(final String database) { private TSStatus executeStatementForTreeModel(final Statement statement, final String userName) { session.setDatabaseName(null); - session.setSqlDialect(IClientSession.SqlDialect.TREE); + session.setSqlDialect(SqlDialect.TREE); final String originalUserName = session.getUsername(); if (useEventUserName && userName != null) { session.setUsername(userName); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/util/builder/PipeTableModelTsFileBuilderV2.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/util/builder/PipeTableModelTsFileBuilderV2.java index 81d3a20e1a1e5..e88476a27db11 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/util/builder/PipeTableModelTsFileBuilderV2.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/util/builder/PipeTableModelTsFileBuilderV2.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.pipe.sink.util.builder; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertTabletNode; import org.apache.iotdb.db.storageengine.dataregion.flush.MemTableFlushTask; import org.apache.iotdb.db.storageengine.dataregion.memtable.IMemTable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/util/builder/PipeTreeModelTsFileBuilderV2.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/util/builder/PipeTreeModelTsFileBuilderV2.java index a9654d062c08c..28b9a2e7ac395 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/util/builder/PipeTreeModelTsFileBuilderV2.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/util/builder/PipeTreeModelTsFileBuilderV2.java @@ -20,7 +20,7 @@ package org.apache.iotdb.db.pipe.sink.util.builder; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; import org.apache.iotdb.db.storageengine.dataregion.flush.MemTableFlushTask; import org.apache.iotdb.db.storageengine.dataregion.memtable.IMemTable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/IoTDBDataRegionSource.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/IoTDBDataRegionSource.java index 1b06aab8a0713..a748218d250a0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/IoTDBDataRegionSource.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/IoTDBDataRegionSource.java @@ -28,6 +28,7 @@ import org.apache.iotdb.commons.pipe.datastructure.pattern.IoTDBTreePatternOperations; import org.apache.iotdb.commons.pipe.datastructure.pattern.TreePattern; import org.apache.iotdb.commons.pipe.source.IoTDBSource; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; import org.apache.iotdb.consensus.ConsensusFactory; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.pipe.event.common.heartbeat.PipeHeartbeatEvent; @@ -41,7 +42,6 @@ import org.apache.iotdb.db.pipe.source.dataregion.realtime.PipeRealtimeDataRegionLogSource; import org.apache.iotdb.db.pipe.source.dataregion.realtime.PipeRealtimeDataRegionSource; import org.apache.iotdb.db.pipe.source.dataregion.realtime.PipeRealtimeDataRegionTsFileSource; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.InternalClientSession; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.storageengine.StorageEngine; @@ -569,7 +569,7 @@ protected void login(final @Nonnull String password) { ZoneId.systemDefault().toString(), SessionManager.CURRENT_RPC_VERSION, IoTDBConstant.ClientVersion.V_1_0, - IClientSession.SqlDialect.TREE, + SqlDialect.TREE, regionId >= 0) .getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/historical/PipeHistoricalDataRegionTsFileAndDeletionSource.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/historical/PipeHistoricalDataRegionTsFileAndDeletionSource.java index 2ca283b139551..9fcae5c814409 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/historical/PipeHistoricalDataRegionTsFileAndDeletionSource.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/historical/PipeHistoricalDataRegionTsFileAndDeletionSource.java @@ -37,6 +37,7 @@ import org.apache.iotdb.commons.pipe.datastructure.pattern.TreePattern; import org.apache.iotdb.commons.pipe.datastructure.resource.PersistentResource; import org.apache.iotdb.commons.pipe.event.ProgressReportEvent; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.utils.PathUtils; import org.apache.iotdb.consensus.pipe.IoTConsensusV2; import org.apache.iotdb.db.conf.IoTDBDescriptor; @@ -56,7 +57,6 @@ import org.apache.iotdb.db.storageengine.dataregion.memtable.TsFileProcessor; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileManager; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.iotdb.pipe.api.customizer.configuration.PipeExtractorRuntimeConfiguration; import org.apache.iotdb.pipe.api.customizer.configuration.PipeRuntimeEnvironment; import org.apache.iotdb.pipe.api.customizer.parameter.PipeParameterValidator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/realtime/PipeRealtimeDataRegionSource.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/realtime/PipeRealtimeDataRegionSource.java index 2ab2061ce7e73..73ea557b8ff8a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/realtime/PipeRealtimeDataRegionSource.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/realtime/PipeRealtimeDataRegionSource.java @@ -30,6 +30,7 @@ import org.apache.iotdb.commons.pipe.datastructure.pattern.TreePattern; import org.apache.iotdb.commons.pipe.event.EnrichedEvent; import org.apache.iotdb.commons.pipe.event.ProgressReportEvent; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.utils.PathUtils; import org.apache.iotdb.commons.utils.TimePartitionUtils; import org.apache.iotdb.db.pipe.agent.PipeDataNodeAgent; @@ -44,7 +45,6 @@ import org.apache.iotdb.db.pipe.source.dataregion.realtime.listener.PipeTimePartitionListener; import org.apache.iotdb.db.storageengine.StorageEngine; import org.apache.iotdb.db.storageengine.dataregion.DataRegion; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.iotdb.pipe.api.PipeExtractor; import org.apache.iotdb.pipe.api.customizer.configuration.PipeExtractorRuntimeConfiguration; import org.apache.iotdb.pipe.api.customizer.configuration.PipeRuntimeEnvironment; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/IoTDBSchemaRegionSource.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/IoTDBSchemaRegionSource.java index f743e1dc7ccdf..10b559a3c8901 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/IoTDBSchemaRegionSource.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/IoTDBSchemaRegionSource.java @@ -30,6 +30,11 @@ import org.apache.iotdb.commons.pipe.event.PipeSnapshotEvent; import org.apache.iotdb.commons.pipe.event.PipeWritePlanEvent; import org.apache.iotdb.commons.pipe.source.IoTDBNonDataRegionSource; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; import org.apache.iotdb.commons.utils.PathUtils; import org.apache.iotdb.consensus.ConsensusFactory; import org.apache.iotdb.consensus.exception.ConsensusException; @@ -42,15 +47,10 @@ import org.apache.iotdb.db.pipe.metric.overview.PipeDataNodeSinglePipeMetrics; import org.apache.iotdb.db.pipe.metric.schema.PipeSchemaRegionSourceMetrics; import org.apache.iotdb.db.pipe.receiver.visitor.PipeTreeStatementToBatchVisitor; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.InternalClientSession; import org.apache.iotdb.db.protocol.session.SessionManager; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.AlterTimeSeriesNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeOperateSchemaQueueNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import org.apache.iotdb.db.queryengine.plan.statement.StatementNode; import org.apache.iotdb.db.schemaengine.SchemaEngine; @@ -165,7 +165,7 @@ protected void login(final @Nonnull String password) { ZoneId.systemDefault().toString(), SessionManager.CURRENT_RPC_VERSION, IoTDBConstant.ClientVersion.V_1_0, - IClientSession.SqlDialect.TREE, + SqlDialect.TREE, regionId >= 0) .getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTablePatternParseVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTablePatternParseVisitor.java index 4ff4d074f09d3..6d4e82a19abd5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTablePatternParseVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTablePatternParseVisitor.java @@ -20,7 +20,7 @@ package org.apache.iotdb.db.pipe.source.schemaregion; import org.apache.iotdb.commons.pipe.datastructure.pattern.TablePattern; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalDeleteDataNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode; @@ -33,7 +33,7 @@ import java.util.stream.Collectors; public class PipePlanTablePatternParseVisitor - extends PlanVisitor, TablePattern> { + implements PlanVisitor, TablePattern> { @Override public Optional visitPlan(final PlanNode node, final TablePattern pattern) { return Optional.of(node); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTablePrivilegeParseVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTablePrivilegeParseVisitor.java index aa1dba4a52577..17075ee46b42f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTablePrivilegeParseVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTablePrivilegeParseVisitor.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.pipe.source.schemaregion; import org.apache.iotdb.commons.audit.IAuditEntity; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.auth.AuthorityChecker; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalDeleteDataNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; @@ -34,7 +34,7 @@ import java.util.stream.Collectors; public class PipePlanTablePrivilegeParseVisitor - extends PlanVisitor, IAuditEntity> { + implements PlanVisitor, IAuditEntity> { @Override public Optional visitPlan(final PlanNode node, final IAuditEntity auditEntity) { return Optional.of(node); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTreePatternParseVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTreePatternParseVisitor.java index 041c19b8330f5..5c9fc5c0fbaa7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTreePatternParseVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTreePatternParseVisitor.java @@ -23,9 +23,9 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.pipe.datastructure.pattern.IoTDBTreePatternOperations; import org.apache.iotdb.commons.pipe.datastructure.pattern.TreePattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression; import org.apache.iotdb.db.pipe.event.common.schema.PipeSchemaRegionWritePlanEvent; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.ActivateTemplateNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.AlterTimeSeriesNode; @@ -68,7 +68,7 @@ * one is used in the {@link PipeSchemaRegionWritePlanEvent} in {@link SchemaRegionListeningQueue}. */ public class PipePlanTreePatternParseVisitor - extends PlanVisitor, IoTDBTreePatternOperations> { + implements PlanVisitor, IoTDBTreePatternOperations> { @Override public Optional visitPlan( final PlanNode node, final IoTDBTreePatternOperations pattern) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTreePrivilegeParseVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTreePrivilegeParseVisitor.java index a9ff6463e88f3..2d97cfa170132 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTreePrivilegeParseVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipePlanTreePrivilegeParseVisitor.java @@ -25,9 +25,9 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.pipe.datastructure.pattern.IoTDBTreePattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression; import org.apache.iotdb.db.auth.AuthorityChecker; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.ActivateTemplateNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.AlterTimeSeriesNode; @@ -62,7 +62,7 @@ import java.util.stream.IntStream; public class PipePlanTreePrivilegeParseVisitor - extends PlanVisitor, IAuditEntity> { + implements PlanVisitor, IAuditEntity> { private final boolean skip; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipeTableStatementToPlanVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipeTableStatementToPlanVisitor.java index 03b62f637e132..86ad46268afe3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipeTableStatementToPlanVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipeTableStatementToPlanVisitor.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.pipe.source.schemaregion; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateOrUpdateDevice; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -public class PipeTableStatementToPlanVisitor extends AstVisitor { +public class PipeTableStatementToPlanVisitor implements AstVisitor { @Override public PlanNode visitNode(final Node node, final Void context) { throw new UnsupportedOperationException( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipeTreeStatementToPlanVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipeTreeStatementToPlanVisitor.java index 04348f0044284..4f3bcf5c0f103 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipeTreeStatementToPlanVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/PipeTreeStatementToPlanVisitor.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.pipe.source.schemaregion; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.BatchActivateTemplateNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.InternalCreateMultiTimeSeriesNode; import org.apache.iotdb.db.queryengine.plan.statement.StatementNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/SchemaRegionListeningFilter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/SchemaRegionListeningFilter.java index b0501d00ae63b..06cb297fff875 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/SchemaRegionListeningFilter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/SchemaRegionListeningFilter.java @@ -24,9 +24,9 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.pipe.datastructure.pattern.TablePattern; import org.apache.iotdb.commons.pipe.datastructure.pattern.TreePattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.utils.PathUtils; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode; import org.apache.iotdb.db.schemaengine.SchemaEngine; import org.apache.iotdb.pipe.api.customizer.parameter.PipeParameters; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/SchemaRegionListeningQueue.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/SchemaRegionListeningQueue.java index 4ff85cff119b1..bb7e18eb21caa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/SchemaRegionListeningQueue.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/schemaregion/SchemaRegionListeningQueue.java @@ -22,10 +22,10 @@ import org.apache.iotdb.commons.pipe.datastructure.queue.listening.AbstractPipeListeningQueue; import org.apache.iotdb.commons.pipe.event.EnrichedEvent; import org.apache.iotdb.commons.pipe.event.SerializableEvent; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.pipe.event.common.schema.PipeSchemaRegionSnapshotEvent; import org.apache.iotdb.db.pipe.event.common.schema.PipeSchemaRegionWritePlanEvent; import org.apache.iotdb.db.pipe.event.common.schema.PipeSchemaSerializableEventType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeEnrichedNonWritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeEnrichedWritePlanNode; import org.apache.iotdb.pipe.api.event.Event; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/DataNodeInternalClient.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/DataNodeInternalClient.java index 227f8731cae3c..f4b107f92ff20 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/DataNodeInternalClient.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/DataNodeInternalClient.java @@ -21,6 +21,7 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.conf.IoTDBConstant.ClientVersion; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; @@ -29,7 +30,6 @@ import org.apache.iotdb.db.protocol.session.InternalClientSession; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.protocol.thrift.OperationType; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.analyze.ClusterPartitionFetcher; import org.apache.iotdb.db.queryengine.plan.analyze.IPartitionFetcher; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/an/DataNodeTableFunctionAINodeService.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/an/DataNodeTableFunctionAINodeService.java new file mode 100644 index 0000000000000..bd442a14d8a86 --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/an/DataNodeTableFunctionAINodeService.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.db.protocol.client.an; + +import org.apache.iotdb.ainode.rpc.thrift.TForecastReq; +import org.apache.iotdb.ainode.rpc.thrift.TForecastResp; +import org.apache.iotdb.commons.client.IClientManager; +import org.apache.iotdb.commons.client.exception.ClientManagerException; +import org.apache.iotdb.commons.queryengine.plan.relational.function.ITableFunctionAINodeService; +import org.apache.iotdb.db.exception.ainode.AINodeConnectionException; + +import org.apache.thrift.TException; + +public class DataNodeTableFunctionAINodeService implements ITableFunctionAINodeService { + + private static final IClientManager CLIENT_MANAGER = + AINodeClientManager.getInstance(); + + public static final DataNodeTableFunctionAINodeService INSTANCE = + new DataNodeTableFunctionAINodeService(); + + private DataNodeTableFunctionAINodeService() {} + + @Override + public TForecastResp forecast(TForecastReq req) { + try (AINodeClient client = + CLIENT_MANAGER.borrowClient(AINodeClientManager.AINODE_ID_PLACEHOLDER)) { + return client.forecast(req); + } catch (ClientManagerException | TException e) { + throw new AINodeConnectionException(e); + } + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/an/DataNodeTableFunctionAINodeServiceProvider.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/an/DataNodeTableFunctionAINodeServiceProvider.java new file mode 100644 index 0000000000000..c23444a8c072f --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/an/DataNodeTableFunctionAINodeServiceProvider.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.db.protocol.client.an; + +import org.apache.iotdb.commons.queryengine.plan.relational.function.ITableFunctionAINodeService; +import org.apache.iotdb.commons.queryengine.plan.relational.function.ITableFunctionAINodeServiceProvider; + +public class DataNodeTableFunctionAINodeServiceProvider + implements ITableFunctionAINodeServiceProvider { + + @Override + public ITableFunctionAINodeService getTableFunctionAINodeService() { + return DataNodeTableFunctionAINodeService.INSTANCE; + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/IClientSession.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/IClientSession.java index 9054636904ed6..51e12379cd4e2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/IClientSession.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/IClientSession.java @@ -20,21 +20,17 @@ package org.apache.iotdb.db.protocol.session; import org.apache.iotdb.commons.conf.IoTDBConstant.ClientVersion; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.ConnectionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; import org.apache.iotdb.commons.utils.CommonDateTimeUtils; import org.apache.iotdb.commons.utils.PathUtils; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.common.ConnectionInfo; import org.apache.iotdb.rpc.subscription.annotation.TableModel; import org.apache.iotdb.service.rpc.thrift.TSConnectionInfo; import org.apache.iotdb.service.rpc.thrift.TSConnectionType; -import org.apache.tsfile.utils.ReadWriteIOUtils; - import javax.annotation.Nullable; -import java.io.DataOutputStream; -import java.io.IOException; -import java.nio.ByteBuffer; import java.time.ZoneId; import java.util.Objects; import java.util.Set; @@ -241,39 +237,4 @@ public long getLastActiveTime() { public void setLastActiveTime(long lastActiveTime) { this.lastActiveTime = lastActiveTime; } - - public enum SqlDialect { - TREE((byte) 0), - TABLE((byte) 1); - - private final byte dialect; - - SqlDialect(byte dialect) { - this.dialect = dialect; - } - - public byte getDialect() { - return dialect; - } - - public void serialize(final DataOutputStream stream) throws IOException { - ReadWriteIOUtils.write(dialect, stream); - } - - public void serialize(final ByteBuffer buffer) { - ReadWriteIOUtils.write(dialect, buffer); - } - - public static SqlDialect deserializeFrom(final ByteBuffer buffer) { - byte b = ReadWriteIOUtils.readByte(buffer); - switch (b) { - case 0: - return TREE; - case 1: - return TABLE; - default: - throw new IllegalArgumentException(String.format("Unknown sql dialect: %s", b)); - } - } - } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/PreparedStatementInfo.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/PreparedStatementInfo.java index 0bfc750c4ba07..0eb544bf68e61 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/PreparedStatementInfo.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/PreparedStatementInfo.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.protocol.session; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/SessionManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/SessionManager.java index cf0705dbb5341..d575d41aac45d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/SessionManager.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/SessionManager.java @@ -25,6 +25,9 @@ import org.apache.iotdb.commons.audit.AuditLogOperation; import org.apache.iotdb.commons.audit.UserEntity; import org.apache.iotdb.commons.conf.IoTDBConstant; +import org.apache.iotdb.commons.queryengine.common.ConnectionInfo; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; import org.apache.iotdb.commons.service.JMXService; import org.apache.iotdb.commons.service.ServiceType; import org.apache.iotdb.commons.service.metric.MetricService; @@ -36,8 +39,6 @@ import org.apache.iotdb.db.auth.LoginLockManager; import org.apache.iotdb.db.protocol.basic.BasicOpenSessionResp; import org.apache.iotdb.db.protocol.thrift.OperationType; -import org.apache.iotdb.db.queryengine.common.ConnectionInfo; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.execution.config.session.PreparedStatementMemoryManager; import org.apache.iotdb.db.storageengine.dataregion.read.control.QueryResourceManager; import org.apache.iotdb.metrics.utils.MetricLevel; @@ -107,13 +108,7 @@ public BasicOpenSessionResp login( TSProtocolVersion tsProtocolVersion, IoTDBConstant.ClientVersion clientVersion) { return login( - session, - username, - password, - zoneId, - tsProtocolVersion, - clientVersion, - IClientSession.SqlDialect.TREE); + session, username, password, zoneId, tsProtocolVersion, clientVersion, SqlDialect.TREE); } public BasicOpenSessionResp login( @@ -123,7 +118,7 @@ public BasicOpenSessionResp login( String zoneId, TSProtocolVersion tsProtocolVersion, IoTDBConstant.ClientVersion clientVersion, - IClientSession.SqlDialect sqlDialect) { + SqlDialect sqlDialect) { return login( session, username, password, zoneId, tsProtocolVersion, clientVersion, sqlDialect, false); } @@ -136,7 +131,7 @@ public BasicOpenSessionResp login( final String zoneId, final TSProtocolVersion tsProtocolVersion, final IoTDBConstant.ClientVersion clientVersion, - final IClientSession.SqlDialect sqlDialect, + final SqlDialect sqlDialect, final boolean useEncryptedPassword) { final BasicOpenSessionResp openSessionResp = new BasicOpenSessionResp(); @@ -499,7 +494,7 @@ public SessionInfo copySessionInfoForTreeModel(final SessionInfo sessionInfo) { ZoneId.systemDefault(), sessionInfo.getVersion(), sessionInfo.getDatabaseName().orElse(null), - IClientSession.SqlDialect.TREE); + SqlDialect.TREE); } public SessionInfo getSessionInfoOfTreeModel(IClientSession session) { @@ -509,7 +504,7 @@ public SessionInfo getSessionInfoOfTreeModel(IClientSession session) { ZoneId.systemDefault(), session.getClientVersion(), session.getDatabaseName(), - IClientSession.SqlDialect.TREE); + SqlDialect.TREE); } public SessionInfo getSessionInfoOfTableModel(IClientSession session) { @@ -519,7 +514,7 @@ public SessionInfo getSessionInfoOfTableModel(IClientSession session) { ZoneId.systemDefault(), session.getClientVersion(), session.getDatabaseName(), - IClientSession.SqlDialect.TABLE); + SqlDialect.TABLE); } public SessionInfo getSessionInfoOfPipeReceiver(IClientSession session, String databaseName) { @@ -529,7 +524,7 @@ public SessionInfo getSessionInfoOfPipeReceiver(IClientSession session, String d ZoneId.systemDefault(), session.getClientVersion(), databaseName, - IClientSession.SqlDialect.TABLE); + SqlDialect.TABLE); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java index 06b60117c5fc0..59fa91dc0a2b6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java @@ -43,6 +43,19 @@ import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.ParsingException; import org.apache.iotdb.commons.utils.PathUtils; import org.apache.iotdb.db.audit.DNAuditLogger; import org.apache.iotdb.db.auth.AuthorityChecker; @@ -56,7 +69,6 @@ import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.protocol.thrift.OperationType; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; import org.apache.iotdb.db.queryengine.common.header.DatasetHeaderFactory; import org.apache.iotdb.db.queryengine.execution.aggregation.AccumulatorFactory; @@ -80,10 +92,8 @@ import org.apache.iotdb.db.queryengine.plan.parser.ASTVisitor; import org.apache.iotdb.db.queryengine.plan.parser.StatementGenerator; import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanner; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceLastCache; @@ -92,18 +102,9 @@ import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TreeDeviceSchemaCacheManager; import org.apache.iotdb.db.queryengine.plan.relational.security.TreeAccessCheckContext; import org.apache.iotdb.db.queryengine.plan.relational.sql.ParameterExtractor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Execute; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetSqlDialect; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Use; -import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.ParsingException; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; @@ -345,7 +346,7 @@ private TSExecuteStatementResp executeStatementInternal( try { // create and cache dataset ExecutionResult result; - if (clientSession.getSqlDialect() == IClientSession.SqlDialect.TREE) { + if (clientSession.getSqlDialect() == SqlDialect.TREE) { Statement s = request.getTreeStatement(clientSession.getZoneId()); if (s instanceof SetSqlDialectStatement) { setSqlDialect = true; @@ -418,7 +419,7 @@ private TSExecuteStatementResp executeStatementInternal( } } } else { - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement s = + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement s = request.getTableStatement(relationSqlParser, clientSession.getZoneId(), clientSession); if (s instanceof Use) { @@ -509,7 +510,7 @@ private TSExecuteStatementResp executeStatementInternal( if (setSqlDialect) { resp.setTableModel( SESSION_MANAGER.getCurrSessionAndUpdateIdleTime().getSqlDialect() - == IClientSession.SqlDialect.TABLE); + == SqlDialect.TABLE); } } return resp; @@ -607,7 +608,7 @@ public Statement getTreeStatement(ZoneId zoneId) { } @Override - public org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement getTableStatement( + public org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement getTableStatement( SqlParser parser, ZoneId zoneId, IClientSession clientSession) { return parser.createStatement(req.getStatement(), zoneId, clientSession); } @@ -651,7 +652,7 @@ public Statement getTreeStatement(ZoneId zoneId) { } @Override - public org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement getTableStatement( + public org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement getTableStatement( SqlParser parser, ZoneId zoneId, IClientSession clientSession) { ensureParsed(); return executeStatement; @@ -1614,7 +1615,7 @@ public TSFetchResultsResp fetchResultsV2(TSFetchResultsReq req) { @Override public TSOpenSessionResp openSession(TSOpenSessionReq req) throws TException { IoTDBConstant.ClientVersion clientVersion = parseClientVersion(req); - IClientSession.SqlDialect sqlDialect; + SqlDialect sqlDialect; try { sqlDialect = parseSqlDialect(req); } catch (IllegalArgumentException e) { @@ -1653,19 +1654,19 @@ private IoTDBConstant.ClientVersion parseClientVersion(TSOpenSessionReq req) { return IoTDBConstant.ClientVersion.V_0_12; } - private IClientSession.SqlDialect parseSqlDialect(TSOpenSessionReq req) { + private SqlDialect parseSqlDialect(TSOpenSessionReq req) { Map configuration = req.configuration; if (configuration != null && configuration.containsKey("sql_dialect")) { String sqlDialect = configuration.get("sql_dialect"); if ("tree".equalsIgnoreCase(sqlDialect)) { - return IClientSession.SqlDialect.TREE; + return SqlDialect.TREE; } else if ("table".equalsIgnoreCase(sqlDialect)) { - return IClientSession.SqlDialect.TABLE; + return SqlDialect.TABLE; } else { throw new IllegalArgumentException("Unknown sql_dialect: " + sqlDialect); } } else { - return IClientSession.SqlDialect.TREE; + return SqlDialect.TREE; } } @@ -1714,7 +1715,7 @@ public TSPrepareResp prepareStatement(TSPrepareReq req) { String sql = req.getSql(); String statementName = req.getStatementName(); - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement statement = + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement statement = relationSqlParser.createStatement(sql, clientSession.getZoneId(), clientSession); if (statement == null) { @@ -2127,7 +2128,7 @@ public TSStatus executeBatchStatement(TSExecuteBatchStatementReq req) { try { long queryId; ExecutionResult result; - if (clientSession.getSqlDialect() == IClientSession.SqlDialect.TREE) { + if (clientSession.getSqlDialect() == SqlDialect.TREE) { Statement s = StatementGenerator.createStatement(statement, clientSession.getZoneId()); if (s == null) { return RpcUtils.getStatus( @@ -2197,7 +2198,7 @@ public TSStatus executeBatchStatement(TSExecuteBatchStatementReq req) { } } else { - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement s = + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement s = relationSqlParser.createStatement( statement, clientSession.getZoneId(), clientSession); @@ -3509,8 +3510,7 @@ private TSExecuteStatementResp createResponse(DatasetHeader header, long queryId resp.setColumnIndex2TsBlockColumnIndexList(header.getColumnIndex2TsBlockColumnIndexList()); resp.setQueryId(queryId); resp.setTableModel( - SESSION_MANAGER.getCurrSessionAndUpdateIdleTime().getSqlDialect() - == IClientSession.SqlDialect.TABLE); + SESSION_MANAGER.getCurrSessionAndUpdateIdleTime().getSqlDialect() == SqlDialect.TABLE); return resp; } @@ -3649,7 +3649,7 @@ private ExecutionResult executeBatchStatement( * @return the execution result */ private ExecutionResult executeBatchTableStatement( - final org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement statement, + final org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement statement, final SqlParser relationSqlParser, final IClientSession clientSession, final long queryId, @@ -3660,7 +3660,7 @@ private ExecutionResult executeBatchTableStatement( final boolean userQuery) { ExecutionResult result = null; - List + List subStatements = statement.getSubStatements(); int totalSubStatements = subStatements.size(); LOGGER.info( @@ -3669,7 +3669,7 @@ private ExecutionResult executeBatchTableStatement( queryId); for (int i = 0; i < totalSubStatements; i++) { - final org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement subStatement = + final org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement subStatement = subStatements.get(i); LOGGER.info( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java index 9fc5fcb436c89..b047463cf5909 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.protocol.thrift.impl; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.common.rpc.thrift.TConfigNodeLocation; import org.apache.iotdb.common.rpc.thrift.TConsensusGroupId; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; @@ -74,6 +75,11 @@ import org.apache.iotdb.commons.pipe.agent.plugin.meta.PipePluginMeta; import org.apache.iotdb.commons.pipe.agent.task.PipeTaskAgent; import org.apache.iotdb.commons.pipe.agent.task.meta.PipeMeta; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.commons.schema.cache.CacheClearOptions; import org.apache.iotdb.commons.schema.filter.SchemaFilterFactory; @@ -104,7 +110,6 @@ import org.apache.iotdb.db.consensus.DataRegionConsensusImpl; import org.apache.iotdb.db.consensus.SchemaRegionConsensusImpl; import org.apache.iotdb.db.exception.StorageEngineException; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.partition.DataPartitionTableGenerator; import org.apache.iotdb.db.pipe.agent.PipeDataNodeAgent; import org.apache.iotdb.db.protocol.client.ConfigNodeInfo; @@ -120,7 +125,6 @@ import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.protocol.thrift.OperationType; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.executor.RegionExecutionResult; import org.apache.iotdb.db.queryengine.execution.executor.RegionReadExecutor; import org.apache.iotdb.db.queryengine.execution.executor.RegionWriteExecutor; @@ -149,9 +153,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimestampOperand; import org.apache.iotdb.db.queryengine.plan.parser.StatementGenerator; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.load.LoadTsFilePieceNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.AlterEncodingCompressorNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.AlterTimeSeriesNode; @@ -183,7 +184,6 @@ import org.apache.iotdb.db.queryengine.plan.statement.component.WhereCondition; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement; import org.apache.iotdb.db.queryengine.plan.statement.crud.QueryStatement; -import org.apache.iotdb.db.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.db.schemaengine.SchemaEngine; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.ITimeSeriesSchemaInfo; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/NativeStatementRequest.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/NativeStatementRequest.java index 3045b3d0d5d86..1b189b0df32b5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/NativeStatementRequest.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/NativeStatementRequest.java @@ -74,7 +74,7 @@ public interface NativeStatementRequest extends Supplier { * @param clientSession the client session * @return the parsed Table model Statement, or null if not supported */ - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement getTableStatement( + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement getTableStatement( SqlParser parser, ZoneId zoneId, IClientSession clientSession); /** diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java index db2e6b7d44b10..1e5bd2bff7706 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java @@ -19,26 +19,27 @@ package org.apache.iotdb.db.queryengine.common; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.audit.AuditEventType; import org.apache.iotdb.commons.audit.AuditLogOperation; import org.apache.iotdb.commons.audit.IAuditEntity; import org.apache.iotdb.commons.auth.entity.PrivilegeType; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; +import org.apache.iotdb.commons.queryengine.utils.cte.CteDataStore; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.analyze.PredicateUtils; import org.apache.iotdb.db.queryengine.plan.analyze.QueryType; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.analyze.lock.SchemaLockType; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; import org.apache.iotdb.db.queryengine.plan.planner.memory.NotThreadSafeMemoryReservationManager; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.db.queryengine.statistics.QueryPlanStatistics; -import org.apache.iotdb.db.utils.cte.CteDataStore; import com.google.common.collect.ImmutableList; import org.apache.tsfile.read.filter.basic.Filter; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/QueryId.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/QueryId.java index 44e67aa7ba608..0946d6a09f4c7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/QueryId.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/QueryId.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.common; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/ResultNodeContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/ResultNodeContext.java index c9cb4f97776dd..0601affb0baa4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/ResultNodeContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/ResultNodeContext.java @@ -20,7 +20,7 @@ package org.apache.iotdb.db.queryengine.common; import org.apache.iotdb.common.rpc.thrift.TEndPoint; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; public class ResultNodeContext { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/DatasetHeader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/DatasetHeader.java index a72c4d00befe9..585aa7de85bab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/DatasetHeader.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/DatasetHeader.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.common.header; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; import org.apache.iotdb.commons.schema.column.ColumnHeader; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; import com.google.common.primitives.Bytes; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/schematree/ClusterSchemaTree.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/schematree/ClusterSchemaTree.java index 54a7f6fc8c781..32abaf5bf16ab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/schematree/ClusterSchemaTree.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/schematree/ClusterSchemaTree.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.common.schematree; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.schema.template.Template; @@ -26,7 +27,6 @@ import org.apache.iotdb.commons.utils.PathUtils; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.exception.metadata.PathNotExistException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.schematree.node.SchemaEntityNode; import org.apache.iotdb.db.queryengine.common.schematree.node.SchemaInternalNode; import org.apache.iotdb.db.queryengine.common.schematree.node.SchemaMeasurementNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/AccumulatorFactory.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/AccumulatorFactory.java index fb7938309af09..47d97ebf5ecd8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/AccumulatorFactory.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/AccumulatorFactory.java @@ -19,6 +19,14 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; +import org.apache.iotdb.calc.execution.aggregation.BinaryModeAccumulator; +import org.apache.iotdb.calc.execution.aggregation.BooleanModeAccumulator; +import org.apache.iotdb.calc.execution.aggregation.DoubleModeAccumulator; +import org.apache.iotdb.calc.execution.aggregation.FloatModeAccumulator; +import org.apache.iotdb.calc.execution.aggregation.IntModeAccumulator; +import org.apache.iotdb.calc.execution.aggregation.LongModeAccumulator; +import org.apache.iotdb.calc.execution.aggregation.VarianceAccumulator; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.queryengine.plan.expression.Expression; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/AvgAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/AvgAccumulator.java index 6549a7a6748e9..cfd77c61ba524 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/AvgAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/AvgAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/CountAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/CountAccumulator.java index ad002f10a87ab..a8f352da11572 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/CountAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/CountAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/CountIfAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/CountIfAccumulator.java index 6c2fb9bc84eca..c0ae7d101d7c3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/CountIfAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/CountIfAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/CountTimeAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/CountTimeAccumulator.java index 23544d82a8af0..980a6a5a922e2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/CountTimeAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/CountTimeAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/ExtremeAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/ExtremeAccumulator.java index 13bdb9fecdd3e..f99e01e8d5a59 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/ExtremeAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/ExtremeAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/FirstValueAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/FirstValueAccumulator.java index f375ca954f344..6da27015bdae0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/FirstValueAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/FirstValueAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/LastValueAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/LastValueAccumulator.java index ede59373461b4..b20b3d3ded059 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/LastValueAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/LastValueAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxMinByBaseAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxMinByBaseAccumulator.java index ebbd1aa6dc149..b03c1852e3d70 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxMinByBaseAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxMinByBaseAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxTimeAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxTimeAccumulator.java index e4b45a012e968..b6ae4b5b76133 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxTimeAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxTimeAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxValueAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxValueAccumulator.java index e507d533fa63e..44097bd0c1a97 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxValueAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxValueAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MinTimeAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MinTimeAccumulator.java index 84d2a53ddc397..e795eee64101d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MinTimeAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MinTimeAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MinValueAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MinValueAccumulator.java index 58f6da51401c1..df0b69d34db9e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MinValueAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MinValueAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/SumAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/SumAccumulator.java index 066d8cd4fc5d3..fb2b59acc4942 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/SumAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/SumAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/TimeDurationAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/TimeDurationAccumulator.java index eebd8151e786f..8e9917d89d101 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/TimeDurationAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/TimeDurationAccumulator.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; + import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/TreeAggregator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/TreeAggregator.java index 30ce92091d8e3..07b482bbdfb1f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/TreeAggregator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/TreeAggregator.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; -import org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; +import org.apache.iotdb.calc.metric.QueryExecutionMetricSet; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -34,8 +35,8 @@ import java.util.List; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet.AGGREGATION_FROM_RAW_DATA; -import static org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet.AGGREGATION_FROM_STATISTICS; +import static org.apache.iotdb.calc.metric.QueryExecutionMetricSet.AGGREGATION_FROM_RAW_DATA; +import static org.apache.iotdb.calc.metric.QueryExecutionMetricSet.AGGREGATION_FROM_STATISTICS; public class TreeAggregator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/UDAFAccumulator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/UDAFAccumulator.java index 73ec966b84b64..a9e567f8694c3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/UDAFAccumulator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/UDAFAccumulator.java @@ -19,10 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; +import org.apache.iotdb.calc.transformation.dag.udf.UDFParametersFactory; +import org.apache.iotdb.commons.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.udf.UDFManagementService; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDFParametersFactory; import org.apache.iotdb.udf.api.State; import org.apache.iotdb.udf.api.UDAF; import org.apache.iotdb.udf.api.customizer.config.UDAFConfigurations; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/EmptyQueueSlidingWindowAggregator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/EmptyQueueSlidingWindowAggregator.java index 8728d073a357c..d35d7caa54f49 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/EmptyQueueSlidingWindowAggregator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/EmptyQueueSlidingWindowAggregator.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.aggregation.slidingwindow; -import org.apache.iotdb.db.queryengine.execution.aggregation.Accumulator; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/MonotonicQueueSlidingWindowAggregator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/MonotonicQueueSlidingWindowAggregator.java index 8776ffbdd2695..8d5a553b7e484 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/MonotonicQueueSlidingWindowAggregator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/MonotonicQueueSlidingWindowAggregator.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.aggregation.slidingwindow; -import org.apache.iotdb.db.queryengine.execution.aggregation.Accumulator; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/NormalQueueSlidingWindowAggregator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/NormalQueueSlidingWindowAggregator.java index a6b1a9369ccf6..23c5acf6aba89 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/NormalQueueSlidingWindowAggregator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/NormalQueueSlidingWindowAggregator.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.aggregation.slidingwindow; -import org.apache.iotdb.db.queryengine.execution.aggregation.Accumulator; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/SlidingWindowAggregator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/SlidingWindowAggregator.java index adc179f77ecf4..c34306ad83b62 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/SlidingWindowAggregator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/SlidingWindowAggregator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.aggregation.slidingwindow; -import org.apache.iotdb.db.queryengine.execution.aggregation.Accumulator; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/SlidingWindowAggregatorFactory.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/SlidingWindowAggregatorFactory.java index 572d41d518486..eed79c9db9bbe 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/SlidingWindowAggregatorFactory.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/SlidingWindowAggregatorFactory.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.execution.aggregation.slidingwindow; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; import org.apache.iotdb.common.rpc.thrift.TAggregationType; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.aggregation.Accumulator; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.execution.aggregation.AccumulatorFactory; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/SmoothQueueSlidingWindowAggregator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/SmoothQueueSlidingWindowAggregator.java index 62295c2be5812..3d60a707ec0ea 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/SmoothQueueSlidingWindowAggregator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/slidingwindow/SmoothQueueSlidingWindowAggregator.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.aggregation.slidingwindow; -import org.apache.iotdb.db.queryengine.execution.aggregation.Accumulator; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/timerangeiterator/AggrWindowIterator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/timerangeiterator/AggrWindowIterator.java index e9847f814cff4..5e82e01151b7f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/timerangeiterator/AggrWindowIterator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/timerangeiterator/AggrWindowIterator.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator; -import org.apache.iotdb.db.utils.DateTimeUtils; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.tsfile.read.common.TimeRange; import org.apache.tsfile.utils.TimeDuration; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/timerangeiterator/TableDateBinTimeRangeIterator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/timerangeiterator/TableDateBinTimeRangeIterator.java index d79fc2848043c..148d0cde40917 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/timerangeiterator/TableDateBinTimeRangeIterator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/timerangeiterator/TableDateBinTimeRangeIterator.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer; import org.apache.tsfile.read.common.TimeRange; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/timerangeiterator/TimeRangeIteratorFactory.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/timerangeiterator/TimeRangeIteratorFactory.java index 7331971b4a6e4..6a8f59d7676b0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/timerangeiterator/TimeRangeIteratorFactory.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/timerangeiterator/TimeRangeIteratorFactory.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.tsfile.utils.TimeDuration; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/DataDriver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/DataDriver.java index c9c41f5b993ab..70bf68e2f144b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/DataDriver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/DataDriver.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.driver; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.source.DataSourceOperator; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; import org.apache.iotdb.db.storageengine.dataregion.read.IQueryDataSource; @@ -31,7 +31,7 @@ import java.util.List; -import static org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet.QUERY_RESOURCE_INIT; +import static org.apache.iotdb.calc.metric.QueryExecutionMetricSet.QUERY_RESOURCE_INIT; import static org.apache.iotdb.db.storageengine.dataregion.VirtualDataRegion.UNFINISHED_QUERY_DATA_SOURCE; /** diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/DataDriverContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/DataDriverContext.java index 03bd7bb8e626f..f895859d1adff 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/DataDriverContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/DataDriverContext.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.driver; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.path.IFullPath; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.common.DeviceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.operator.source.DataSourceOperator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/Driver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/Driver.java index ad5eba152292e..d988e212a3a43 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/Driver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/Driver.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.execution.driver; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.metric.QueryExecutionMetricSet; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; import org.apache.iotdb.commons.utils.FileUtils; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISink; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.schedule.task.DriverTaskId; -import org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet; import org.apache.iotdb.db.queryengine.metric.QueryMetricsManager; import com.google.common.collect.ImmutableList; @@ -55,8 +55,8 @@ import static com.google.common.base.Verify.verify; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import static java.lang.Boolean.TRUE; -import static org.apache.iotdb.db.queryengine.execution.operator.Operator.NOT_BLOCKED; -import static org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet.DRIVER_INTERNAL_PROCESS; +import static org.apache.iotdb.calc.execution.operator.Operator.NOT_BLOCKED; +import static org.apache.iotdb.calc.metric.QueryExecutionMetricSet.DRIVER_INTERNAL_PROCESS; public abstract class Driver implements IDriver { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/DriverContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/DriverContext.java index 9231b89e326ef..46093810b9b8d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/DriverContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/DriverContext.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.execution.driver; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISink; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.source.ExchangeOperator; import org.apache.iotdb.db.queryengine.execution.schedule.task.DriverTaskId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import java.util.ArrayList; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/SchemaDriver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/SchemaDriver.java index e3230b7ff7f33..bbdbccdad1b3a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/SchemaDriver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/driver/SchemaDriver.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.driver; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; import com.google.common.util.concurrent.SettableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/executor/RegionWriteExecutor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/executor/RegionWriteExecutor.java index b3eaec5f218d4..90659b4660eb6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/executor/RegionWriteExecutor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/executor/RegionWriteExecutor.java @@ -27,6 +27,7 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.schema.template.Template; import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics; import org.apache.iotdb.commons.utils.MetadataUtils; @@ -42,7 +43,6 @@ import org.apache.iotdb.db.exception.metadata.MeasurementAlreadyExistException; import org.apache.iotdb.db.exception.metadata.SchemaQuotaExceededException; import org.apache.iotdb.db.protocol.thrift.impl.DataNodeRegionManager; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.ActivateTemplateNode; @@ -184,7 +184,7 @@ public RegionExecutionResult execute(final ConsensusGroupId groupId, final PlanN } private class WritePlanNodeExecutionVisitor - extends PlanVisitor { + implements PlanVisitor { @Override public RegionExecutionResult visitPlan( @@ -341,7 +341,7 @@ public RegionExecutionResult visitPipeEnrichedDeleteDataNode( // data deletion should block data insertion, especially when executed for deleting timeseries context.getRegionWriteValidationRWLock().writeLock().lock(); try { - return super.visitPipeEnrichedDeleteDataNode(node, context); + return PlanVisitor.super.visitPipeEnrichedDeleteDataNode(node, context); } finally { context.getRegionWriteValidationRWLock().writeLock().unlock(); } @@ -354,7 +354,7 @@ public RegionExecutionResult visitDeleteData( // require write lock on data region. context.getRegionWriteValidationRWLock().writeLock().lock(); try { - return super.visitDeleteData(node, context); + return PlanVisitor.super.visitDeleteData(node, context); } finally { context.getRegionWriteValidationRWLock().writeLock().unlock(); } @@ -367,7 +367,7 @@ public RegionExecutionResult visitDeleteData( // require write lock on data region. context.getRegionWriteValidationRWLock().writeLock().lock(); try { - return super.visitDeleteData(node, context); + return PlanVisitor.super.visitDeleteData(node, context); } finally { context.getRegionWriteValidationRWLock().writeLock().unlock(); } @@ -380,7 +380,7 @@ public RegionExecutionResult visitWriteObjectFile( // require write lock on data region. context.getRegionWriteValidationRWLock().writeLock().lock(); try { - return super.visitWriteObjectFile(node, context); + return PlanVisitor.super.visitWriteObjectFile(node, context); } finally { context.getRegionWriteValidationRWLock().writeLock().unlock(); } @@ -391,7 +391,7 @@ public RegionExecutionResult visitDeleteTimeseries( final DeleteTimeSeriesNode node, final WritePlanNodeExecutionContext context) { context.getRegionWriteValidationRWLock().writeLock().lock(); try { - return super.visitDeleteTimeseries(node, context); + return PlanVisitor.super.visitDeleteTimeseries(node, context); } finally { context.getRegionWriteValidationRWLock().writeLock().unlock(); } @@ -402,7 +402,7 @@ public RegionExecutionResult visitDeleteLogicalView( final DeleteLogicalViewNode node, final WritePlanNodeExecutionContext context) { context.getRegionWriteValidationRWLock().writeLock().lock(); try { - return super.visitDeleteLogicalView(node, context); + return PlanVisitor.super.visitDeleteLogicalView(node, context); } finally { context.getRegionWriteValidationRWLock().writeLock().unlock(); } @@ -440,7 +440,7 @@ private RegionExecutionResult executeCreateTimeSeries( Collections.singletonList(node.getPath().getMeasurement()), Collections.singletonList(node.getAlias())); if (failingMeasurementMap.isEmpty()) { - return super.visitCreateTimeSeries(node, context); + return PlanVisitor.super.visitCreateTimeSeries(node, context); } else { final MetadataException metadataException = failingMeasurementMap.get(0); LOGGER.info(METADATA_ERROR_MSG, metadataException.getMessage()); @@ -457,13 +457,13 @@ private RegionExecutionResult executeCreateTimeSeries( if (receivedFromPipe) { context.getRegionWriteValidationRWLock().writeLock().lock(); try { - return super.visitPipeEnrichedWritePlanNode( + return PlanVisitor.super.visitPipeEnrichedWritePlanNode( new PipeEnrichedWritePlanNode(node), context); } finally { context.getRegionWriteValidationRWLock().writeLock().unlock(); } } else { - return super.visitCreateTimeSeries(node, context); + return PlanVisitor.super.visitCreateTimeSeries(node, context); } } } @@ -498,7 +498,7 @@ private RegionExecutionResult executeCreateAlignedTimeSeries( schemaRegion.checkMeasurementExistence( node.getDevicePath(), node.getMeasurements(), node.getAliasList()); if (failingMeasurementMap.isEmpty()) { - return super.visitCreateAlignedTimeSeries(node, context); + return PlanVisitor.super.visitCreateAlignedTimeSeries(node, context); } else { final MetadataException metadataException = failingMeasurementMap.values().iterator().next(); @@ -516,13 +516,13 @@ private RegionExecutionResult executeCreateAlignedTimeSeries( if (receivedFromPipe) { context.getRegionWriteValidationRWLock().writeLock().lock(); try { - return super.visitPipeEnrichedWritePlanNode( + return PlanVisitor.super.visitPipeEnrichedWritePlanNode( new PipeEnrichedWritePlanNode(node), context); } finally { context.getRegionWriteValidationRWLock().writeLock().unlock(); } } else { - return super.visitCreateAlignedTimeSeries(node, context); + return PlanVisitor.super.visitCreateAlignedTimeSeries(node, context); } } } @@ -585,13 +585,13 @@ private RegionExecutionResult executeCreateMultiTimeSeries( if (receivedFromPipe) { context.getRegionWriteValidationRWLock().writeLock().lock(); try { - return super.visitPipeEnrichedWritePlanNode( + return PlanVisitor.super.visitPipeEnrichedWritePlanNode( new PipeEnrichedWritePlanNode(node), context); } finally { context.getRegionWriteValidationRWLock().writeLock().unlock(); } } else { - return super.visitCreateMultiTimeSeries(node, context); + return PlanVisitor.super.visitCreateMultiTimeSeries(node, context); } } } @@ -635,7 +635,7 @@ private RegionExecutionResult registerTimeSeries( if (!measurementGroupMap.isEmpty()) { // try registering the rest timeseries final RegionExecutionResult executionResult = - super.visitCreateMultiTimeSeries(node, context); + PlanVisitor.super.visitCreateMultiTimeSeries(node, context); if (failingStatus.isEmpty()) { return executionResult; } @@ -713,7 +713,7 @@ private RegionExecutionResult executeInternalCreateTimeSeries( return processExecutionResultOfInternalCreateSchema( !measurementGroup.isEmpty() - ? super.visitInternalCreateTimeSeries(node, context) + ? PlanVisitor.super.visitInternalCreateTimeSeries(node, context) : RegionExecutionResult.create( true, "Execute successfully", @@ -727,13 +727,13 @@ private RegionExecutionResult executeInternalCreateTimeSeries( if (receivedFromPipe) { context.getRegionWriteValidationRWLock().writeLock().lock(); try { - return super.visitPipeEnrichedWritePlanNode( + return PlanVisitor.super.visitPipeEnrichedWritePlanNode( new PipeEnrichedWritePlanNode(node), context); } finally { context.getRegionWriteValidationRWLock().writeLock().unlock(); } } else { - return super.visitInternalCreateTimeSeries(node, context); + return PlanVisitor.super.visitInternalCreateTimeSeries(node, context); } } } @@ -815,7 +815,7 @@ private RegionExecutionResult executeInternalCreateMultiTimeSeries( return processExecutionResultOfInternalCreateSchema( !node.getDeviceMap().isEmpty() - ? super.visitInternalCreateMultiTimeSeries(node, context) + ? PlanVisitor.super.visitInternalCreateMultiTimeSeries(node, context) : RegionExecutionResult.create( true, "Execute successfully", @@ -829,13 +829,13 @@ private RegionExecutionResult executeInternalCreateMultiTimeSeries( if (receivedFromPipe) { context.getRegionWriteValidationRWLock().writeLock().lock(); try { - return super.visitPipeEnrichedWritePlanNode( + return PlanVisitor.super.visitPipeEnrichedWritePlanNode( new PipeEnrichedWritePlanNode(node), context); } finally { context.getRegionWriteValidationRWLock().writeLock().unlock(); } } else { - return super.visitInternalCreateMultiTimeSeries(node, context); + return PlanVisitor.super.visitInternalCreateMultiTimeSeries(node, context); } } } @@ -949,8 +949,9 @@ private RegionExecutionResult executeAlterTimeSeries( measurementPath.getMeasurementSchema().getType())); } return receivedFromPipe - ? super.visitPipeEnrichedWritePlanNode(new PipeEnrichedWritePlanNode(node), context) - : super.visitAlterTimeSeries(node, context); + ? PlanVisitor.super.visitPipeEnrichedWritePlanNode( + new PipeEnrichedWritePlanNode(node), context) + : PlanVisitor.super.visitAlterTimeSeries(node, context); } catch (MetadataException e) { return RegionExecutionResult.create( true, e.getMessage(), RpcUtils.getStatus(e.getErrorCode(), e.getMessage())); @@ -993,8 +994,9 @@ private RegionExecutionResult executeActivateTemplate( Collections.emptyList()); if (result == null) { return receivedFromPipe - ? super.visitPipeEnrichedWritePlanNode(new PipeEnrichedWritePlanNode(node), context) - : super.visitActivateTemplate(node, context); + ? PlanVisitor.super.visitPipeEnrichedWritePlanNode( + new PipeEnrichedWritePlanNode(node), context) + : PlanVisitor.super.visitActivateTemplate(node, context); } else { return result; } @@ -1044,8 +1046,9 @@ private RegionExecutionResult executeBatchActivateTemplate( } return receivedFromPipe - ? super.visitPipeEnrichedWritePlanNode(new PipeEnrichedWritePlanNode(node), context) - : super.visitBatchActivateTemplate(node, context); + ? PlanVisitor.super.visitPipeEnrichedWritePlanNode( + new PipeEnrichedWritePlanNode(node), context) + : PlanVisitor.super.visitBatchActivateTemplate(node, context); } finally { context.getRegionWriteValidationRWLock().readLock().unlock(); } @@ -1095,8 +1098,9 @@ private RegionExecutionResult executeInternalBatchActivateTemplate( } return receivedFromPipe - ? super.visitPipeEnrichedWritePlanNode(new PipeEnrichedWritePlanNode(node), context) - : super.visitInternalBatchActivateTemplate(node, context); + ? PlanVisitor.super.visitPipeEnrichedWritePlanNode( + new PipeEnrichedWritePlanNode(node), context) + : PlanVisitor.super.visitInternalBatchActivateTemplate(node, context); } finally { context.getRegionWriteValidationRWLock().readLock().unlock(); } @@ -1145,15 +1149,17 @@ private RegionExecutionResult executeCreateLogicalView( } // step 2. make sure all source paths exist. return receivedFromPipe - ? super.visitPipeEnrichedWritePlanNode(new PipeEnrichedWritePlanNode(node), context) - : super.visitCreateLogicalView(node, context); + ? PlanVisitor.super.visitPipeEnrichedWritePlanNode( + new PipeEnrichedWritePlanNode(node), context) + : PlanVisitor.super.visitCreateLogicalView(node, context); } finally { context.getRegionWriteValidationRWLock().writeLock().unlock(); } } else { return receivedFromPipe - ? super.visitPipeEnrichedWritePlanNode(new PipeEnrichedWritePlanNode(node), context) - : super.visitCreateLogicalView(node, context); + ? PlanVisitor.super.visitPipeEnrichedWritePlanNode( + new PipeEnrichedWritePlanNode(node), context) + : PlanVisitor.super.visitCreateLogicalView(node, context); } // end of visitCreateLogicalView } @@ -1177,8 +1183,9 @@ private RegionExecutionResult executeCreateOrUpdateTableDevice( false, e.getMessage(), RpcUtils.getStatus(e.getErrorCode(), e.getMessage())); } return receivedFromPipe - ? super.visitPipeEnrichedWritePlanNode(new PipeEnrichedWritePlanNode(node), context) - : super.visitCreateOrUpdateTableDevice(node, context); + ? PlanVisitor.super.visitPipeEnrichedWritePlanNode( + new PipeEnrichedWritePlanNode(node), context) + : PlanVisitor.super.visitCreateOrUpdateTableDevice(node, context); } @Override @@ -1189,7 +1196,7 @@ public RegionExecutionResult visitPipeEnrichedWritePlanNode( } private class PipeEnrichedWriteSchemaNodeExecutionVisitor - extends PlanVisitor { + implements PlanVisitor { WritePlanNodeExecutionVisitor visitor; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FakedFragmentInstanceContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FakedFragmentInstanceContext.java index 138bba8035e4b..99e95dbf26b31 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FakedFragmentInstanceContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FakedFragmentInstanceContext.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.fragment; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.path.IFullPath; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.plan.planner.memory.FakedMemoryReservationManager; import org.apache.iotdb.db.storageengine.dataregion.DataRegion; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java index 4cfd8dc63ecd7..1e36cdd83d0a1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java @@ -19,26 +19,29 @@ package org.apache.iotdb.db.queryengine.execution.fragment; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.audit.UserEntity; +import org.apache.iotdb.commons.conf.CommonConfig; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; import org.apache.iotdb.commons.path.AlignedFullPath; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.PatternTreeMap; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.common.DeviceContext; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.metric.DriverSchedulerMetricSet; import org.apache.iotdb.db.queryengine.metric.QueryRelatedResourceMetricSet; import org.apache.iotdb.db.queryengine.metric.QueryResourceMetricSet; import org.apache.iotdb.db.queryengine.metric.SeriesScanCostMetricSet; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; import org.apache.iotdb.db.queryengine.plan.planner.memory.ThreadSafeMemoryReservationManager; import org.apache.iotdb.db.queryengine.plan.planner.plan.TimePredicate; import org.apache.iotdb.db.storageengine.StorageEngine; @@ -51,7 +54,6 @@ import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSourceType; import org.apache.iotdb.db.storageengine.dataregion.read.control.FileReaderManager; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.iotdb.db.utils.datastructure.PatternTreeMapFactory; import org.apache.iotdb.db.utils.datastructure.TVList; import org.apache.iotdb.mpp.rpc.thrift.TFetchFragmentInstanceStatisticsResp; @@ -91,6 +93,7 @@ public class FragmentInstanceContext extends QueryContext { private static final Logger LOGGER = LoggerFactory.getLogger(FragmentInstanceContext.class); private static final IoTDBConfig CONFIG = IoTDBDescriptor.getInstance().getConfig(); + private static final CommonConfig COMMON_CONFIG = CommonDescriptor.getInstance().getConfig(); private static final long END_TIME_INITIAL_VALUE = -1L; // wait over 5s for driver to close is abnormal private static final long LONG_WAIT_DURATION = 5_000_000_000L; @@ -642,7 +645,7 @@ public boolean initQueryDataSource(List sourcePaths) throws QueryProc } } - long waitForLockTime = CONFIG.getDriverTaskExecutionTimeSliceInMs(); + long waitForLockTime = COMMON_CONFIG.getDriverTaskExecutionTimeSliceInMs(); long startAcquireLockTime = System.nanoTime(); if (dataRegion.tryReadLock(waitForLockTime)) { try { @@ -695,7 +698,7 @@ public boolean initRegionScanQueryDataSource(Map devic return true; } - long waitForLockTime = CONFIG.getDriverTaskExecutionTimeSliceInMs(); + long waitForLockTime = COMMON_CONFIG.getDriverTaskExecutionTimeSliceInMs(); if (dataRegion.tryReadLock(waitForLockTime)) { try { // minus already consumed time @@ -737,7 +740,7 @@ public boolean initRegionScanQueryDataSource(List pathList) { if (pathList == null) { return true; } - long waitForLockTime = CONFIG.getDriverTaskExecutionTimeSliceInMs(); + long waitForLockTime = COMMON_CONFIG.getDriverTaskExecutionTimeSliceInMs(); if (dataRegion.tryReadLock(waitForLockTime)) { // minus already consumed time waitForLockTime -= (System.nanoTime() - startTime) / 1_000_000; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceExecution.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceExecution.java index e54a3236ffc0b..4dca6492d9737 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceExecution.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceExecution.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.fragment; +import org.apache.iotdb.calc.exception.MemoryNotEnoughException; import org.apache.iotdb.commons.utils.FileUtils; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.exception.CpuNotEnoughException; -import org.apache.iotdb.db.queryengine.exception.MemoryNotEnoughException; import org.apache.iotdb.db.queryengine.execution.driver.IDriver; import org.apache.iotdb.db.queryengine.execution.exchange.MPPDataExchangeManager; import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISink; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceManager.java index 9dfb2ffa68472..93adbbdeb7a6f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceManager.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceManager.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.fragment; +import org.apache.iotdb.calc.metric.QueryExecutionMetricSet; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.concurrent.ThreadName; import org.apache.iotdb.commons.concurrent.threadpool.ScheduledExecutorUtil; @@ -26,8 +27,8 @@ import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; import org.apache.iotdb.commons.exception.QueryTimeoutException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.IDriver; @@ -36,7 +37,6 @@ import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISink; import org.apache.iotdb.db.queryengine.execution.schedule.DriverScheduler; import org.apache.iotdb.db.queryengine.execution.schedule.IDriverScheduler; -import org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet; import org.apache.iotdb.db.queryengine.metric.QueryRelatedResourceMetricSet; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanner; @@ -64,10 +64,10 @@ import java.util.concurrent.atomic.AtomicLong; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.metric.QueryExecutionMetricSet.LOCAL_EXECUTION_PLANNER; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceExecution.createFragmentInstanceExecution; import static org.apache.iotdb.db.queryengine.execution.schedule.queue.IndexedBlockingQueue.TOO_MANY_CONCURRENT_QUERIES_ERROR_MSG; -import static org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet.LOCAL_EXECUTION_PLANNER; import static org.apache.iotdb.rpc.TSStatusCode.TOO_MANY_CONCURRENT_QUERIES_ERROR; @SuppressWarnings("squid:S6548") diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/INodeCommonFragmentInstanceContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/INodeCommonFragmentInstanceContext.java new file mode 100644 index 0000000000000..1d45895f19806 --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/INodeCommonFragmentInstanceContext.java @@ -0,0 +1,27 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.db.queryengine.execution.fragment; + +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; + +public interface INodeCommonFragmentInstanceContext { + + FragmentInstanceId getId(); + + SessionInfo getSessionInfo(); + + boolean mayHaveTmpFile(); +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationUtil.java index 2df0be4c3394b..4d0e5ba4e1c87 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationUtil.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationUtil.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinAggregationFunction; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITimeRangeIterator; import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.SingleTimeWindowIterator; @@ -28,7 +29,6 @@ import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; -import org.apache.iotdb.db.queryengine.plan.udf.BuiltinAggregationFunction; import org.apache.iotdb.db.queryengine.statistics.StatisticsManager; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/EmptyDataOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/EmptyDataOperator.java index c36aa745bc4cb..368433edbff68 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/EmptyDataOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/EmptyDataOperator.java @@ -19,7 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.operator; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.tsfile.read.common.block.TsBlock; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/ExplainAnalyzeOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/ExplainAnalyzeOperator.java index b4f1a5c7261bf..c914b6a286ead 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/ExplainAnalyzeOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/ExplainAnalyzeOperator.java @@ -19,21 +19,22 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.client.IClientManager; import org.apache.iotdb.commons.client.sync.SyncDataNodeInternalServiceClient; import org.apache.iotdb.commons.concurrent.threadpool.ScheduledExecutorUtil; import org.apache.iotdb.commons.conf.IoTDBConstant; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.db.exception.mpp.FragmentInstanceFetchException; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.execution.QueryExecution; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.db.queryengine.statistics.FragmentInstanceStatisticsDrawer; import org.apache.iotdb.db.queryengine.statistics.QueryStatisticsFetcher; import org.apache.iotdb.db.queryengine.statistics.StatisticLine; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorContext.java index 48a389459880f..d9761552e283c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorContext.java @@ -19,59 +19,29 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import io.airlift.units.Duration; -import org.apache.tsfile.utils.Accountable; import org.apache.tsfile.utils.RamUsageEstimator; -import java.util.Map; import java.util.Objects; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.TimeUnit; -/** - * Contains information about {@link Operator} execution. - * - *

Not thread-safe. - */ -public class OperatorContext implements Accountable { - - private static Duration maxRunTime = - new Duration( - IoTDBDescriptor.getInstance().getConfig().getDriverTaskExecutionTimeSliceInMs(), - TimeUnit.MILLISECONDS); +/** DataNode-specific operator context. */ +public class OperatorContext extends CommonOperatorContext { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(OperatorContext.class); - - private final int operatorId; - // It seems it's never used. - private final PlanNodeId planNodeId; - private String operatorType; private DriverContext driverContext; - private long totalExecutionTimeInNanos = 0L; - private long nextCalledCount = 0L; - private long hasNextCalledCount = 0L; - - // SpecifiedInfo is used to record some custom information for the operator, - // which will be shown in the result of EXPLAIN ANALYZE to analyze the query. - private final Map specifiedInfo = new ConcurrentHashMap<>(); - private long output = 0; - private long estimatedMemorySize; - public OperatorContext( int operatorId, PlanNodeId planNodeId, String operatorType, DriverContext driverContext) { - this.operatorId = operatorId; - this.planNodeId = planNodeId; - this.operatorType = operatorType; + super(operatorId, planNodeId, operatorType); this.driverContext = driverContext; } @@ -81,24 +51,10 @@ public OperatorContext( PlanNodeId planNodeId, String operatorType, FragmentInstanceContext fragmentInstanceContext) { - this.operatorId = operatorId; - this.planNodeId = planNodeId; - this.operatorType = operatorType; + super(operatorId, planNodeId, operatorType); this.driverContext = new DriverContext(fragmentInstanceContext, 0); } - public int getOperatorId() { - return operatorId; - } - - public String getOperatorType() { - return operatorType; - } - - public void setOperatorType(String operatorType) { - this.operatorType = operatorType; - } - public DriverContext getDriverContext() { return driverContext; } @@ -111,73 +67,23 @@ public FragmentInstanceContext getInstanceContext() { return driverContext.getFragmentInstanceContext(); } - public static Duration getMaxRunTime() { - return maxRunTime; - } - - @TestOnly - public Duration getMaxRunTimeForTest() { - return maxRunTime; - } - - public static void setMaxRunTime(Duration maxRunTime) { - OperatorContext.maxRunTime = maxRunTime; - } - public SessionInfo getSessionInfo() { return getInstanceContext().getSessionInfo(); } - public PlanNodeId getPlanNodeId() { - return planNodeId; - } - - public void recordExecutionTime(long executionTimeInNanos) { - this.totalExecutionTimeInNanos += executionTimeInNanos; - } - - public void recordNextCalled() { - this.nextCalledCount++; - } - - public void recordHasNextCalled() { - this.hasNextCalledCount++; - } - - public long getTotalExecutionTimeInNanos() { - return totalExecutionTimeInNanos; - } - - public long getNextCalledCount() { - return nextCalledCount; - } - - public long getHasNextCalledCount() { - return hasNextCalledCount; - } - - public void setEstimatedMemorySize(long estimatedMemorySize) { - this.estimatedMemorySize = estimatedMemorySize; - } - - public long getEstimatedMemorySize() { - return estimatedMemorySize; - } - - public void addOutputRows(long outputRows) { - this.output += outputRows; - } - - public long getOutputRows() { - return output; + @Override + public MemoryReservationManager getMemoryReservationContext() { + return getInstanceContext().getMemoryReservationContext(); } - public void recordSpecifiedInfo(String key, String value) { - specifiedInfo.put(key, value); + @Override + public int getFragmentId() { + return getInstanceContext().getId().getFragmentId().getId(); } - public Map getSpecifiedInfo() { - return specifiedInfo; + @Override + public int getPipelineId() { + return driverContext.getPipelineId(); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractIntoOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractIntoOperator.java index 425449469b8bd..397ac2e9d61a5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractIntoOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractIntoOperator.java @@ -19,12 +19,13 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.runtime.IntoProcessException; import org.apache.iotdb.db.protocol.client.DataNodeInternalClient; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractTreeIntoOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractTreeIntoOperator.java index 0d15c72cfa1b0..41c08de3538c0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractTreeIntoOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AbstractTreeIntoOperator.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.protocol.client.DataNodeInternalClient; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertMultiTabletsStatement; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ActiveRegionScanMergeOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ActiveRegionScanMergeOperator.java index 1749b61b760d3..7967e90f75eb9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ActiveRegionScanMergeOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ActiveRegionScanMergeOperator.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.AbstractConsumeAllOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AggregationOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AggregationOperator.java index 1e933f4b41560..51f6e1c811739 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AggregationOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AggregationOperator.java @@ -19,10 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.AbstractConsumeAllOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITimeRangeIterator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ColumnInjectOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ColumnInjectOperator.java index 369082e9f0f1c..067c2291c5107 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ColumnInjectOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ColumnInjectOperator.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.utils.columngenerator.ColumnGenerator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/DeviceViewIntoOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/DeviceViewIntoOperator.java index 727ef26c1c71d..60ceb0f06e343 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/DeviceViewIntoOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/DeviceViewIntoOperator.java @@ -19,16 +19,16 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.runtime.IntoProcessException; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertMultiTabletsStatement; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/DeviceViewOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/DeviceViewOperator.java index cd0fdcb5a500d..dad791fdfa971 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/DeviceViewOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/DeviceViewOperator.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/InsertTabletStatementGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/InsertTabletStatementGenerator.java index 47ff31573e3c8..27d88438d4c7c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/InsertTabletStatementGenerator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/InsertTabletStatementGenerator.java @@ -20,7 +20,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ProjectOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ProjectOperator.java index 9c4cd26614300..8d7346a1b76a4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ProjectOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ProjectOperator.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/RawDataAggregationOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/RawDataAggregationOperator.java index e177834b8f5b2..3018adfd5e1fa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/RawDataAggregationOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/RawDataAggregationOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITimeRangeIterator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.window.IWindow; import org.apache.iotdb.db.queryengine.execution.operator.window.IWindowManager; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SingleDeviceViewOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SingleDeviceViewOperator.java index 5c10c916e0bca..6fc3b50ea1f5f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SingleDeviceViewOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SingleDeviceViewOperator.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SingleInputAggregationOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SingleInputAggregationOperator.java index 1f36586653e91..8fa95aca270ca 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SingleInputAggregationOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SingleInputAggregationOperator.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SlidingWindowAggregationOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SlidingWindowAggregationOperator.java index 7e63d6dd4d27f..59d22ead36ee9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SlidingWindowAggregationOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SlidingWindowAggregationOperator.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; import org.apache.iotdb.db.queryengine.execution.aggregation.slidingwindow.SlidingWindowAggregator; import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITimeRangeIterator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableInsertTabletStatementGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableInsertTabletStatementGenerator.java index aed6cd3a4c714..1e53787c43e7c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableInsertTabletStatementGenerator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableInsertTabletStatementGenerator.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableIntoOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableIntoOperator.java index bf6f9c5bc94af..6bc2eb0e7142a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableIntoOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableIntoOperator.java @@ -19,16 +19,16 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.protocol.client.DataNodeInternalClient; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; import com.google.common.util.concurrent.Futures; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TagAggregationOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TagAggregationOperator.java index bec099e2f4073..adab0fb1d3059 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TagAggregationOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TagAggregationOperator.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.AbstractConsumeAllOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TransformOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TransformOperator.java index ad5192f980730..6a713c183e23d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TransformOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TransformOperator.java @@ -19,17 +19,18 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.commons.udf.service.UDFClassLoaderManager; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.queryengine.common.NodeRef; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; -import org.apache.iotdb.db.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.YieldableState; import org.apache.iotdb.db.queryengine.transformation.dag.builder.EvaluationDAGBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeFillOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeFillOperator.java index b2c539533f7d4..7900ce5bc80ed 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeFillOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeFillOperator.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.AbstractFillOperator; +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFill; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.TsBlock; @@ -33,7 +34,7 @@ public TreeFillOperator(OperatorContext operatorContext, IFill[] fillArray, Oper } @Override - Column getHelperColumn(TsBlock tsBlock) { + protected Column getHelperColumn(TsBlock tsBlock) { return tsBlock.getTimeColumn(); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeInsertTabletStatementGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeInsertTabletStatementGenerator.java index 3a24312479cfa..f672200173ca8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeInsertTabletStatementGenerator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeInsertTabletStatementGenerator.java @@ -20,7 +20,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeIntoOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeIntoOperator.java index bed98c4208646..4b7fb66a4c5ce 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeIntoOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeIntoOperator.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeLinearFillOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeLinearFillOperator.java index a1e372c7a28e8..38fc787f61290 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeLinearFillOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeLinearFillOperator.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.AbstractLinearFillOperator; +import org.apache.iotdb.calc.execution.operator.process.fill.ILinearFill; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.ILinearFill; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.TsBlock; @@ -34,12 +35,12 @@ public TreeLinearFillOperator( } @Override - Column getHelperColumn(TsBlock tsBlock) { + protected Column getHelperColumn(TsBlock tsBlock) { return tsBlock.getTimeColumn(); } @Override - Integer getLastRowIndexForNonNullHelperColumn(TsBlock tsBlock) { + protected Integer getLastRowIndexForNonNullHelperColumn(TsBlock tsBlock) { return tsBlock.getPositionCount() - 1; } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeMergeSortOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeMergeSortOperator.java index c5ba949ad3749..ae811219d814c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeMergeSortOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeMergeSortOperator.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.MergeSortOperator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.SortKey; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeSortOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeSortOperator.java index 25cc7ffa3fe21..05de9d1e68ba2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeSortOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeSortOperator.java @@ -19,10 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.SortOperator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.calc.utils.sort.TreeDiskSpiller; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.SortKey; -import org.apache.iotdb.db.utils.sort.TreeDiskSpiller; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeTopKOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeTopKOperator.java index bef0b47819e3d..e0570c55d5f44 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeTopKOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TreeTopKOperator.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.TopKOperator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.utils.datastructure.SortKey; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ai/InferenceOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ai/InferenceOperator.java index d39d81aff5bed..8db754768a34d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ai/InferenceOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/ai/InferenceOperator.java @@ -21,16 +21,16 @@ import org.apache.iotdb.ainode.rpc.thrift.TInferenceReq; import org.apache.iotdb.ainode.rpc.thrift.TInferenceResp; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; import org.apache.iotdb.commons.client.exception.ClientManagerException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.exception.ainode.AINodeConnectionException; import org.apache.iotdb.db.exception.runtime.ModelInferenceProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.protocol.client.an.AINodeClient; import org.apache.iotdb.db.protocol.client.an.AINodeClientManager; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.model.ModelInferenceDescriptor; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/copyto/CopyToOptions.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/copyto/CopyToOptions.java index 68385784afb2a..10939b8b5e887 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/copyto/CopyToOptions.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/copyto/CopyToOptions.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.copyto; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.commons.schema.column.ColumnHeader; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.execution.operator.process.copyto.tsfile.CopyToTsFileOptions; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; import org.apache.iotdb.db.queryengine.plan.relational.planner.RelationPlan; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.tsfile.utils.Accountable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/copyto/TableCopyToOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/copyto/TableCopyToOperator.java index 5b85df2e731d1..8157709cfe6c6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/copyto/TableCopyToOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/copyto/TableCopyToOperator.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.copyto; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.commons.schema.column.ColumnHeader; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.copyto.tsfile.CopyToTsFileOptions; import org.apache.iotdb.db.queryengine.execution.operator.process.copyto.tsfile.TsFileFormatCopyToWriter; import org.apache.iotdb.db.storageengine.rescon.disk.TierManager; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/copyto/tsfile/CopyToTsFileOptions.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/copyto/tsfile/CopyToTsFileOptions.java index 2b677c53d2bb1..daa5e5cd4f28f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/copyto/tsfile/CopyToTsFileOptions.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/copyto/tsfile/CopyToTsFileOptions.java @@ -19,16 +19,16 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.copyto.tsfile; +import org.apache.iotdb.calc.utils.constant.SqlConstant; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.execution.operator.process.copyto.CopyToOptions; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.db.queryengine.plan.relational.planner.RelationPlan; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.type.TypeFactory; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/FullOuterTimeJoinOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/FullOuterTimeJoinOperator.java index 819a15622252a..915a89852eb69 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/FullOuterTimeJoinOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/FullOuterTimeJoinOperator.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.join; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.AbstractConsumeAllOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.AbstractConsumeAllOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.ColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.TimeComparator; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/HorizontallyConcatOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/HorizontallyConcatOperator.java index 6fae539d2f8d7..f9aaf444ac2fa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/HorizontallyConcatOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/HorizontallyConcatOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.join; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.AbstractConsumeAllOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.AbstractConsumeAllOperator; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/InnerTimeJoinOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/InnerTimeJoinOperator.java index 86c77ac48d043..60cdb8959772a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/InnerTimeJoinOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/InnerTimeJoinOperator.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.join; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.TimeComparator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/LeftOuterTimeJoinOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/LeftOuterTimeJoinOperator.java index b8843d4b854a8..ca5912c50c78f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/LeftOuterTimeJoinOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/LeftOuterTimeJoinOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.join; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.TimeComparator; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/TableLeftOuterTimeJoinOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/TableLeftOuterTimeJoinOperator.java index 19b9e2eb4d460..7ee1360886202 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/TableLeftOuterTimeJoinOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/TableLeftOuterTimeJoinOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.join; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.TimeComparator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/MergeSortComparatorUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/MergeSortComparatorUtils.java new file mode 100644 index 0000000000000..096e3d7ab4b5c --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/MergeSortComparatorUtils.java @@ -0,0 +1,50 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge; + +import org.apache.iotdb.calc.execution.operator.process.join.merge.MergeSortComparator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.db.queryengine.plan.statement.component.NullOrdering; +import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; +import org.apache.iotdb.db.queryengine.plan.statement.component.SortItem; + +import org.apache.tsfile.enums.TSDataType; +import org.apache.tsfile.external.commons.collections4.comparators.ComparatorChain; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +public class MergeSortComparatorUtils { + /** -1 in index is for time column. */ + public static Comparator getComparator( + List sortItemList, List indexList, List dataTypeList) { + + // use code-gen compile this comparator + List> list = new ArrayList<>(indexList.size()); + for (int i = 0; i < indexList.size(); i++) { + int index = indexList.get(i); + if (index == -2) { + continue; + } + TSDataType dataType = dataTypeList.get(i); + boolean asc = sortItemList.get(i).getOrdering() == Ordering.ASC; + boolean nullFirst = sortItemList.get(i).getNullOrdering() == NullOrdering.FIRST; + list.add(MergeSortComparator.genSingleComparator(asc, index, dataType, nullFirst)); + } + + return list.size() == 1 ? list.get(0) : new ComparatorChain<>(list); + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/MultiColumnMerger.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/MultiColumnMerger.java index 149667ed250aa..e92c055f1e604 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/MultiColumnMerger.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/MultiColumnMerger.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/NonOverlappedMultiColumnMerger.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/NonOverlappedMultiColumnMerger.java index 80759e0be13af..bb532fd24f344 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/NonOverlappedMultiColumnMerger.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/NonOverlappedMultiColumnMerger.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/SingleColumnMerger.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/SingleColumnMerger.java index ba33e219d0609..c7f9f08e0dae7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/SingleColumnMerger.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/merge/SingleColumnMerger.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.join.merge; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/AbstractUpdateLastCacheOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/AbstractUpdateLastCacheOperator.java index ac0ddf0e30b72..77ab84b6a4805 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/AbstractUpdateLastCacheOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/AbstractUpdateLastCacheOperator.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.last; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.db.queryengine.execution.driver.DataDriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.DataNodeQueryContext; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceLastCache; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TreeDeviceSchemaCacheManager; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/AlignedUpdateLastCacheOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/AlignedUpdateLastCacheOperator.java index 67aa5191db51d..8363324c1dd77 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/AlignedUpdateLastCacheOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/AlignedUpdateLastCacheOperator.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.last; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TreeDeviceSchemaCacheManager; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/AlignedUpdateViewPathLastCacheOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/AlignedUpdateViewPathLastCacheOperator.java index aaa285c4d5cb9..26aa5b95078e3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/AlignedUpdateViewPathLastCacheOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/AlignedUpdateViewPathLastCacheOperator.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.last; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.MeasurementPath; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TreeDeviceSchemaCacheManager; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryCollectOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryCollectOperator.java index d1cd2d387f0f7..4e4603fcfcc71 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryCollectOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryCollectOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.last; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryMergeOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryMergeOperator.java index ec90442d0e831..3338ac34b9089 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryMergeOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryMergeOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.last; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.common.conf.TSFileDescriptor; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryOperator.java index d2389a008987a..532eef1842707 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.last; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQuerySortOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQuerySortOperator.java index e40cb1ad1316a..694b7434de60f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQuerySortOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQuerySortOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.last; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryTransformOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryTransformOperator.java index 88d67a21f97fb..2a742cfbc5a0f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryTransformOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryTransformOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.last; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryUtil.java index aadd9c8df38f6..971225f888948 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryUtil.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/LastQueryUtil.java @@ -20,11 +20,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.last; import org.apache.iotdb.commons.conf.CommonDescriptor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.execution.aggregation.LastValueDescAccumulator; import org.apache.iotdb.db.queryengine.execution.aggregation.MaxTimeDescAccumulator; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import com.google.common.collect.ImmutableList; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/UpdateLastCacheOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/UpdateLastCacheOperator.java index a1b0a7fd8dc28..06a7dadb5b367 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/UpdateLastCacheOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/UpdateLastCacheOperator.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.last; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.path.MeasurementPath; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TreeDeviceSchemaCacheManager; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/UpdateViewPathLastCacheOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/UpdateViewPathLastCacheOperator.java index b97998273d141..6d5d3d1a406aa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/UpdateViewPathLastCacheOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/last/UpdateViewPathLastCacheOperator.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.last; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.path.MeasurementPath; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TreeDeviceSchemaCacheManager; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountGroupByLevelMergeOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountGroupByLevelMergeOperator.java index 5ab2dc1213394..1a15563234c26 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountGroupByLevelMergeOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountGroupByLevelMergeOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountGroupByLevelScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountGroupByLevelScanOperator.java index 084935f68b02a..69f36680fb747 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountGroupByLevelScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountGroupByLevelScanOperator.java @@ -21,12 +21,12 @@ import org.apache.iotdb.commons.exception.runtime.SchemaExecutionException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.driver.SchemaDriverContext; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.schema.source.ISchemaSource; import org.apache.iotdb.db.queryengine.execution.operator.source.SourceOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.ISchemaInfo; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.reader.ISchemaReader; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountMergeOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountMergeOperator.java index d406e6f14c42f..ab740a31ea193 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountMergeOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountMergeOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/NodeManageMemoryMergeOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/NodeManageMemoryMergeOperator.java index f9a7113ed6ced..ad1ffc8e7430d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/NodeManageMemoryMergeOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/NodeManageMemoryMergeOperator.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; import org.apache.iotdb.common.rpc.thrift.TSchemaNode; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.node.MNodeType; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/NodePathsConvertOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/NodePathsConvertOperator.java index 7fe9914ab0c29..2c399777dfeea 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/NodePathsConvertOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/NodePathsConvertOperator.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/NodePathsCountOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/NodePathsCountOperator.java index e253ca774a4e0..2c4b91c7d4543 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/NodePathsCountOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/NodePathsCountOperator.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.common.conf.TSFileDescriptor; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaCountOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaCountOperator.java index 69c7050455f75..9b2884233c13d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaCountOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaCountOperator.java @@ -21,13 +21,13 @@ import org.apache.iotdb.commons.exception.runtime.SchemaExecutionException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.SchemaConstant; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.driver.SchemaDriverContext; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.schema.source.ISchemaSource; import org.apache.iotdb.db.queryengine.execution.operator.source.SourceOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; import org.apache.iotdb.db.schemaengine.schemaregion.read.req.IShowDevicesPlan; import org.apache.iotdb.db.schemaengine.schemaregion.read.req.SchemaRegionReadPlanFactory; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchMergeOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchMergeOperator.java index 0ad55af64ce36..0fc3d5647a4dc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchMergeOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchMergeOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperator.java index b2ed81a71ae9d..9200a622efb59 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperator.java @@ -22,15 +22,15 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.exception.runtime.SchemaExecutionException; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.commons.schema.template.Template; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.queryengine.common.schematree.ClusterSchemaTree; import org.apache.iotdb.db.queryengine.common.schematree.node.SchemaNode; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.source.SourceOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; import org.apache.tsfile.common.conf.TSFileDescriptor; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryMergeOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryMergeOperator.java index 890094529ebd0..999db03329b40 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryMergeOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryMergeOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryOrderByHeatOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryOrderByHeatOperator.java index fe9f4355ab293..010c74d1261c5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryOrderByHeatOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryOrderByHeatOperator.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryScanOperator.java index 2e0e885ab75d6..493e58eea6f0e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryScanOperator.java @@ -20,13 +20,13 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema; import org.apache.iotdb.commons.exception.runtime.SchemaExecutionException; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.column.ColumnHeader; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.driver.SchemaDriverContext; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.schema.source.ISchemaSource; import org.apache.iotdb.db.queryengine.execution.operator.source.SourceOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.ISchemaInfo; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.reader.ISchemaReader; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceAttributeUpdater.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceAttributeUpdater.java index cc883bc7ad6f7..832d59fe42f14 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceAttributeUpdater.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceAttributeUpdater.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema.source; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.schema.node.role.IDeviceMNode; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.mem.mnode.IMemMNode; import org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.mem.mnode.info.TableDeviceInfo; @@ -44,7 +44,7 @@ import java.util.function.BiFunction; import java.util.stream.Collectors; -import static org.apache.iotdb.db.queryengine.execution.operator.process.FilterAndProjectOperator.constructFilteredTsBlock; +import static org.apache.iotdb.calc.execution.operator.process.FilterAndProjectOperator.constructFilteredTsBlock; public class DeviceAttributeUpdater extends DeviceUpdater { private final List commonTransformerList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceBlackListConstructor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceBlackListConstructor.java index ef71258c7c9d9..3391f3e4080d8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceBlackListConstructor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceBlackListConstructor.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema.source; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.schema.node.role.IDeviceMNode; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.db.schemaengine.rescon.MemSchemaRegionStatistics; import org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.mem.mnode.IMemMNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DevicePredicateFilter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DevicePredicateFilter.java index 42c87b944998d..589f119c3ae14 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DevicePredicateFilter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DevicePredicateFilter.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema.source; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.IDeviceSchemaInfo; import java.util.Iterator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DevicePredicateHandler.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DevicePredicateHandler.java index 9cd6102c1be76..ecbcbba858622 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DevicePredicateHandler.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DevicePredicateHandler.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema.source; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; import org.apache.iotdb.commons.utils.PathUtils; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.IDeviceSchemaInfo; import org.apache.iotdb.db.schemaengine.table.DataNodeTreeViewSchemaUtils; @@ -39,7 +39,7 @@ import java.util.Objects; import java.util.stream.Collectors; -import static org.apache.iotdb.db.queryengine.execution.operator.process.FilterAndProjectOperator.satisfy; +import static org.apache.iotdb.calc.execution.operator.process.FilterAndProjectOperator.satisfy; import static org.apache.iotdb.db.queryengine.execution.operator.schema.source.TableDeviceQuerySource.transformToTableDeviceTsBlockColumns; public abstract class DevicePredicateHandler implements AutoCloseable { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceUpdater.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceUpdater.java index 06716c91e3624..2679f501dd060 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceUpdater.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/DeviceUpdater.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator.schema.source; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.schema.node.role.IDeviceMNode; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.mem.mnode.IMemMNode; import org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.mem.mnode.info.TableDeviceInfo; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.impl.ShowDevicesResult; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/sink/IdentitySinkOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/sink/IdentitySinkOperator.java index 071061c29a926..48f14ce1c2df0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/sink/IdentitySinkOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/sink/IdentitySinkOperator.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.sink; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelIndex; import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISinkHandle; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/sink/ShuffleHelperOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/sink/ShuffleHelperOperator.java index 36f076dfd26a4..5e27908ad10ea 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/sink/ShuffleHelperOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/sink/ShuffleHelperOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.sink; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelIndex; import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISinkHandle; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/sink/SinkOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/sink/SinkOperator.java index 084b8f558b268..70c473714a3f4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/sink/SinkOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/sink/SinkOperator.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.sink; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractRegionScanDataSourceOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractRegionScanDataSourceOperator.java index 0f20259d5dcae..c70d3eeb85f0c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractRegionScanDataSourceOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractRegionScanDataSourceOperator.java @@ -20,7 +20,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; import org.apache.iotdb.commons.exception.IllegalPathException; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.storageengine.dataregion.read.IQueryDataSource; import org.apache.tsfile.common.conf.TSFileDescriptor; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractSeriesAggregationScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractSeriesAggregationScanOperator.java index 3c0b5ce82d873..4dc58dd76f109 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractSeriesAggregationScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractSeriesAggregationScanOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITimeRangeIterator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractSourceOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractSourceOperator.java index 285acceb7a19f..828857bfa9e9c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractSourceOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AbstractSourceOperator.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; -import org.apache.iotdb.db.queryengine.execution.operator.AbstractOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.calc.execution.operator.AbstractOperator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; public abstract class AbstractSourceOperator extends AbstractOperator implements SourceOperator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ActiveDeviceRegionScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ActiveDeviceRegionScanOperator.java index fc6e624270d4e..cf0b62a256665 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ActiveDeviceRegionScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ActiveDeviceRegionScanOperator.java @@ -21,13 +21,13 @@ import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.db.queryengine.common.DeviceContext; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeTTLCache; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.schemaengine.template.ClusterTemplateManager; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ActiveTimeSeriesRegionScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ActiveTimeSeriesRegionScanOperator.java index 2bf866fbd9a6f..b6ac9ecd85022 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ActiveTimeSeriesRegionScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ActiveTimeSeriesRegionScanOperator.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.db.queryengine.common.TimeseriesContext; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesAggregationScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesAggregationScanOperator.java index c80b71c7a37cb..588dd0d51d4c6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesAggregationScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesAggregationScanOperator.java @@ -20,11 +20,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; import org.apache.iotdb.commons.path.AlignedFullPath; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITimeRangeIterator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanOperator.java index 1fc8014b3ea89..e06b3d17b310a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/AlignedSeriesScanOperator.java @@ -20,9 +20,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; import org.apache.iotdb.commons.path.AlignedFullPath; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.IQueryDataSource; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ExchangeOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ExchangeOperator.java index 96233f17e0859..7f405618944ca 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ExchangeOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ExchangeOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.exchange.source.ISourceHandle; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/LastCacheScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/LastCacheScanOperator.java index 1070e49b1727e..e5978866b1102 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/LastCacheScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/LastCacheScanOperator.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.tsfile.read.common.block.TsBlock; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesAggregationScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesAggregationScanOperator.java index 70027337b5bae..94ad66d551398 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesAggregationScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesAggregationScanOperator.java @@ -20,11 +20,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; import org.apache.iotdb.commons.path.IFullPath; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITimeRangeIterator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanOperator.java index f83623a4cc2dd..69f1150ff210e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanOperator.java @@ -20,9 +20,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; import org.apache.iotdb.commons.path.IFullPath; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowDiskUsageOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowDiskUsageOperator.java index cf04c65dd4f0d..d94aa4ad9c8ce 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowDiskUsageOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowDiskUsageOperator.java @@ -20,11 +20,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.header.DatasetHeaderFactory; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.storageengine.dataregion.DataRegion; import org.apache.iotdb.db.storageengine.dataregion.utils.StorageEngineTimePartitionIterator; import org.apache.iotdb.db.storageengine.dataregion.utils.TreeDiskUsageStatisticUtil; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowQueriesOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowQueriesOperator.java index 75013c844dc7c..afeb5b0f744f4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowQueriesOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/ShowQueriesOperator.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; -import org.apache.iotdb.db.protocol.session.IClientSession; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.db.queryengine.common.header.DatasetHeaderFactory; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.execution.IQueryExecution; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.common.conf.TSFileDescriptor; @@ -140,7 +140,7 @@ private TsBlock buildTsBlock() { if (allowedUsername != null && !allowedUsername.equals(queryExecution.getUser())) { continue; } - if (queryExecution.getSQLDialect().equals(IClientSession.SqlDialect.TREE)) { + if (queryExecution.getSQLDialect().equals(SqlDialect.TREE)) { timeColumnBuilder.writeLong( TimestampPrecisionUtils.convertToCurrPrecision( queryExecution.getStartExecutionTime(), TimeUnit.MILLISECONDS)); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SourceOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SourceOperator.java index 6ac9f950b1b62..c0167377422dc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SourceOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SourceOperator.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; public interface SourceOperator extends Operator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractAggTableScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractAggTableScanOperator.java index 9d3979bafecd2..637f22a6c5d56 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractAggTableScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractAggTableScanOperator.java @@ -19,22 +19,23 @@ package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.TableAggregator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.commons.path.AlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITableTimeRangeIterator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.source.AbstractDataSourceOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.AlignedSeriesScanUtil; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanUtil; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.TableAggregator; import org.apache.iotdb.db.queryengine.execution.operator.window.IWindow; import org.apache.iotdb.db.queryengine.execution.operator.window.TimeWindow; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.relational.metadata.AlignedDeviceEntry; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.IQueryDataSource; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; @@ -63,8 +64,6 @@ import java.util.stream.Collectors; import static org.apache.iotdb.db.queryengine.execution.operator.AggregationUtil.satisfiedTimeRange; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.CURRENT_DEVICE_INDEX_STRING; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.constructAlignedPath; import static org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter.DEVICE_NUMBER; import static org.apache.tsfile.read.common.block.TsBlockUtil.skipPointsOutOfTimeRange; @@ -141,7 +140,8 @@ protected AbstractAggTableScanOperator(AbstractAggTableScanOperatorParameter par .map(IMeasurementSchema::getType) .collect(Collectors.toList()); this.currentDeviceIndex = 0; - this.operatorContext.recordSpecifiedInfo(CURRENT_DEVICE_INDEX_STRING, Integer.toString(0)); + this.operatorContext.recordSpecifiedInfo( + CommonOperatorUtils.CURRENT_DEVICE_INDEX_STRING, Integer.toString(0)); this.aggregatorInputChannels = parameter.aggregatorInputChannels; this.timeIterator = parameter.tableTimeRangeIterator; this.dateBinSize = @@ -166,7 +166,7 @@ protected void buildResultTsBlock() { resultTsBlock = resultTsBlockBuilder.build( new RunLengthEncodedColumn( - TIME_COLUMN_TEMPLATE, resultTsBlockBuilder.getPositionCount())); + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, resultTsBlockBuilder.getPositionCount())); resultTsBlockBuilder.reset(); } @@ -188,7 +188,7 @@ protected void constructAlignedSeriesScanUtil() { alignedPath, scanOrder, seriesScanOptions, - operatorContext.getInstanceContext(), + ((OperatorContext) operatorContext).getInstanceContext(), true, measurementColumnTSDataTypes); } @@ -342,7 +342,8 @@ private TsBlock process(TsBlock inputTsBlock, TimeRange curTimeRange) { TsBlock tsBlock = new TsBlock( inputRegion.getPositionCount(), - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, inputRegion.getPositionCount()), + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, inputRegion.getPositionCount()), valueColumns); for (TableAggregator aggregator : tableAggregators) { @@ -733,7 +734,7 @@ protected void checkIfAllAggregatorHasFinalResult() throws Exception { protected void nextDevice() throws Exception { currentDeviceIndex++; this.operatorContext.recordSpecifiedInfo( - CURRENT_DEVICE_INDEX_STRING, Integer.toString(currentDeviceIndex)); + CommonOperatorUtils.CURRENT_DEVICE_INDEX_STRING, Integer.toString(currentDeviceIndex)); } protected void resetTableAggregators() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractDefaultAggTableScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractDefaultAggTableScanOperator.java index 8c544a4d56459..f00b0049ef663 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractDefaultAggTableScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractDefaultAggTableScanOperator.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITableTimeRangeIterator; import org.apache.tsfile.block.column.Column; @@ -30,7 +30,7 @@ import java.util.Optional; import java.util.concurrent.TimeUnit; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.TIME_COLUMN_TEMPLATE; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.TIME_COLUMN_TEMPLATE; public abstract class AbstractDefaultAggTableScanOperator extends AbstractAggTableScanOperator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractTableScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractTableScanOperator.java index 60bfd87ba316a..1e3f85d49541f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractTableScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/AbstractTableScanOperator.java @@ -19,14 +19,15 @@ package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.commons.path.AlignedFullPath; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.source.AbstractSeriesScanOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.AlignedSeriesScanUtil; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.IQueryDataSource; @@ -36,7 +37,6 @@ import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; import org.apache.tsfile.read.common.block.TsBlockBuilder; -import org.apache.tsfile.read.common.block.column.LongColumn; import org.apache.tsfile.utils.RamUsageEstimator; import org.apache.tsfile.write.schema.IMeasurementSchema; @@ -48,18 +48,14 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; import static org.apache.iotdb.db.queryengine.execution.operator.source.AlignedSeriesScanOperator.appendDataIntoBuilder; import static org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter.DEVICE_NUMBER; -import static org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; public abstract class AbstractTableScanOperator extends AbstractSeriesScanOperator { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(TableScanOperator.class); - public static final String CURRENT_DEVICE_INDEX_STRING = "CurrentDeviceIndex"; - public static final LongColumn TIME_COLUMN_TEMPLATE = - new LongColumn(1, Optional.empty(), new long[] {0}); - private final List columnSchemas; private final int[] columnsIndexArray; @@ -108,7 +104,8 @@ public AbstractTableScanOperator(AbstractTableScanOperatorParameter parameter) { .map(IMeasurementSchema::getType) .collect(Collectors.toList()); this.currentDeviceIndex = 0; - this.operatorContext.recordSpecifiedInfo(CURRENT_DEVICE_INDEX_STRING, Integer.toString(0)); + this.operatorContext.recordSpecifiedInfo( + CommonOperatorUtils.CURRENT_DEVICE_INDEX_STRING, Integer.toString(0)); // allSensors include time and all field columns this.maxReturnSize = @@ -263,7 +260,7 @@ private void prepareForNextDevice() { queryDataSource.reset(); this.seriesScanUtil.initQueryDataSource(queryDataSource); this.operatorContext.recordSpecifiedInfo( - CURRENT_DEVICE_INDEX_STRING, Integer.toString(currentDeviceIndex)); + CommonOperatorUtils.CURRENT_DEVICE_INDEX_STRING, Integer.toString(currentDeviceIndex)); } } @@ -286,7 +283,7 @@ private void constructAlignedSeriesScanUtil() { alignedPath, scanOrder, seriesScanOptions, - operatorContext.getInstanceContext(), + ((OperatorContext) operatorContext).getInstanceContext(), true, measurementColumnTSDataTypes); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/CteScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/CteScanOperator.java index c45f6e4559544..c250ea040cab8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/CteScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/CteScanOperator.java @@ -21,13 +21,13 @@ package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.utils.cte.CteDataStore; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.source.SourceOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.utils.cte.CteDataReader; -import org.apache.iotdb.db.utils.cte.CteDataStore; import org.apache.iotdb.db.utils.cte.MemoryReader; import org.apache.tsfile.common.conf.TSFileDescriptor; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/DeviceIteratorScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/DeviceIteratorScanOperator.java index 14044158045f3..ddd8abd0057e1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/DeviceIteratorScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/DeviceIteratorScanOperator.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.source.AbstractDataSourceOperator; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; @@ -64,7 +65,7 @@ public DeviceIteratorScanOperator( this.currentDeviceIndex = 0; this.currentDeviceInit = false; this.operatorContext.recordSpecifiedInfo( - AbstractTableScanOperator.CURRENT_DEVICE_INDEX_STRING, Integer.toString(0)); + CommonOperatorUtils.CURRENT_DEVICE_INDEX_STRING, Integer.toString(0)); constructCurrentDeviceOperatorTree(); } @@ -100,8 +101,7 @@ private void nextDevice() throws Exception { queryDataSource.reset(); initQueryDataSource(queryDataSource); this.operatorContext.recordSpecifiedInfo( - AbstractTableScanOperator.CURRENT_DEVICE_INDEX_STRING, - Integer.toString(currentDeviceIndex)); + CommonOperatorUtils.CURRENT_DEVICE_INDEX_STRING, Integer.toString(currentDeviceIndex)); } private void constructCurrentDeviceOperatorTree() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java index 5b51c00942bb7..a1ea9c9dbb8f7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.common.rpc.thrift.Model; import org.apache.iotdb.common.rpc.thrift.TAINodeLocation; import org.apache.iotdb.common.rpc.thrift.TConfigNodeLocation; @@ -33,6 +34,14 @@ import org.apache.iotdb.commons.exception.auth.AccessDeniedException; import org.apache.iotdb.commons.pipe.agent.plugin.builtin.BuiltinPipePlugin; import org.apache.iotdb.commons.pipe.agent.plugin.meta.PipePluginMeta; +import org.apache.iotdb.commons.queryengine.common.ConnectionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.relational.function.TableBuiltinTableFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.util.ReservedIdentifiers; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.table.InformationSchema; import org.apache.iotdb.commons.schema.table.TableNodeStatus; @@ -68,9 +77,7 @@ import org.apache.iotdb.db.protocol.client.ConfigNodeClient; import org.apache.iotdb.db.protocol.client.ConfigNodeClientManager; import org.apache.iotdb.db.protocol.client.ConfigNodeInfo; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.SessionManager; -import org.apache.iotdb.db.queryengine.common.ConnectionInfo; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.QueryState; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; @@ -78,14 +85,9 @@ import org.apache.iotdb.db.queryengine.plan.execution.IQueryExecution; import org.apache.iotdb.db.queryengine.plan.execution.config.metadata.relational.ShowCreateViewTask; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter; -import org.apache.iotdb.db.queryengine.plan.relational.function.TableBuiltinTableFunction; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableDiskUsageInformationSchemaTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.util.ReservedIdentifiers; import org.apache.iotdb.db.relational.grammar.sql.RelationalSqlKeywords; import org.apache.iotdb.db.schemaengine.table.InformationSchemaUtils; import org.apache.iotdb.db.storageengine.dataregion.DataRegion; @@ -94,7 +96,6 @@ import org.apache.iotdb.db.storageengine.dataregion.utils.tableDiskUsageIndex.TableDiskUsageIndexReader; import org.apache.iotdb.db.storageengine.dataregion.utils.tableDiskUsageIndex.TimePartitionTableSizeQueryContext; import org.apache.iotdb.db.utils.MathUtils; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.iotdb.rpc.RpcUtils; import org.apache.iotdb.rpc.TSStatusCode; @@ -272,7 +273,7 @@ private QueriesSupplier(final List dataTypes, final UserEntity userE protected void constructLine() { final IQueryExecution queryExecution = queryExecutions.get(nextConsumedIndex); - if (queryExecution.getSQLDialect().equals(IClientSession.SqlDialect.TABLE)) { + if (queryExecution.getSQLDialect().equals(SqlDialect.TABLE)) { columnBuilders[0].writeBinary(BytesUtils.valueOf(queryExecution.getQueryId())); columnBuilders[1].writeLong( TimestampPrecisionUtils.convertToCurrPrecision( @@ -1546,8 +1547,7 @@ public TsBlock next() { final TsBlock result = resultBuilder.build( new RunLengthEncodedColumn( - AbstractTableScanOperator.TIME_COLUMN_TEMPLATE, - resultBuilder.getPositionCount())); + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, resultBuilder.getPositionCount())); resultBuilder.reset(); return result; } @@ -1573,7 +1573,9 @@ private ConnectionsSupplier(final List dataTypes, final UserEntity u protected void constructLine() { ConnectionInfo connectionInfo = sessionConnectionIterator.next(); columnBuilders[0].writeBinary( - new Binary(String.valueOf(connectionInfo.getDataNodeId()), TSFileConfig.STRING_CHARSET)); + new Binary( + String.valueOf(IoTDBDescriptor.getInstance().getConfig().getDataNodeId()), + TSFileConfig.STRING_CHARSET)); columnBuilders[1].writeBinary( new Binary(String.valueOf(connectionInfo.getUserId()), TSFileConfig.STRING_CHARSET)); columnBuilders[2].writeBinary( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaTableScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaTableScanOperator.java index d8a625fb92b6e..b8c3a4cbea4d1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaTableScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaTableScanOperator.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.source.SourceOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.tsfile.common.conf.TSFileDescriptor; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/LastQueryAggTableScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/LastQueryAggTableScanOperator.java index 8b4719bc1f13f..f0d1f58556011 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/LastQueryAggTableScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/LastQueryAggTableScanOperator.java @@ -19,16 +19,16 @@ package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.LastAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.LastByDescAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.LastDescAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.TableAggregator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.fragment.DataNodeQueryContext; import org.apache.iotdb.db.queryengine.execution.operator.process.last.LastQueryUtil; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.LastAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.LastByDescAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.LastDescAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.TableAggregator; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceSchemaCache; @@ -51,10 +51,10 @@ import java.util.concurrent.TimeUnit; import static com.google.common.base.Preconditions.checkState; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.Utils.serializeTimeValueWithNull; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.Utils.serializeTimeValueWithNull; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; import static org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceLastCache.EMPTY_PRIMITIVE_TYPE; import static org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceLastCache.EMPTY_TIME_VALUE_PAIR; -import static org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; /** * This class is used to execute aggregation table scan when apply {@code canUseLastCacheOptimize()} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MeasurementToTableViewAdaptorUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MeasurementToTableViewAdaptorUtils.java index 0088b2a0956d5..73b4704ac963a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MeasurementToTableViewAdaptorUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/MeasurementToTableViewAdaptorUtils.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.tsfile.block.column.Column; @@ -32,7 +32,7 @@ import java.util.List; import java.util.Optional; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.TIME_COLUMN_TEMPLATE; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.TIME_COLUMN_TEMPLATE; public class MeasurementToTableViewAdaptorUtils { private MeasurementToTableViewAdaptorUtils() {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TreeNonAlignedDeviceViewAggregationScanOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TreeNonAlignedDeviceViewAggregationScanOperator.java index 4258f335a12ec..e42ae8cbe8ebf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TreeNonAlignedDeviceViewAggregationScanOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TreeNonAlignedDeviceViewAggregationScanOperator.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITableTimeRangeIterator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.source.AbstractDataSourceOperator; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.storageengine.dataregion.read.IQueryDataSource; @@ -38,8 +38,8 @@ import java.util.List; import java.util.Optional; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.CURRENT_DEVICE_INDEX_STRING; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.TIME_COLUMN_TEMPLATE; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.CURRENT_DEVICE_INDEX_STRING; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.TIME_COLUMN_TEMPLATE; public class TreeNonAlignedDeviceViewAggregationScanOperator extends AbstractDefaultAggTableScanOperator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TreeToTableViewAdaptorOperator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TreeToTableViewAdaptorOperator.java index ff631af40721d..0a2ad64477254 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TreeToTableViewAdaptorOperator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TreeToTableViewAdaptorOperator.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.source.relational; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/window/ainode/InferenceWindowParameter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/window/ainode/InferenceWindowParameter.java index b9ab1343c3b83..1d2194c3eafbd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/window/ainode/InferenceWindowParameter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/window/ainode/InferenceWindowParameter.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.window.ainode; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverScheduler.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverScheduler.java index 811b2adec163c..047253f784215 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverScheduler.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverScheduler.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.schedule; +import org.apache.iotdb.calc.exception.MemoryNotEnoughException; import org.apache.iotdb.commons.concurrent.ThreadName; import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.exception.StartupException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; import org.apache.iotdb.commons.service.IService; import org.apache.iotdb.commons.service.ServiceType; import org.apache.iotdb.commons.utils.TestOnly; @@ -30,9 +32,7 @@ import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.exception.CpuNotEnoughException; -import org.apache.iotdb.db.queryengine.exception.MemoryNotEnoughException; import org.apache.iotdb.db.queryengine.execution.driver.DataDriver; import org.apache.iotdb.db.queryengine.execution.driver.IDriver; import org.apache.iotdb.db.queryengine.execution.exchange.IMPPDataExchangeManager; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverTaskThread.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverTaskThread.java index 132c11dadc176..976d096c1ca18 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverTaskThread.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverTaskThread.java @@ -21,7 +21,7 @@ import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.concurrent.ThreadName; -import org.apache.iotdb.db.conf.IoTDBDescriptor; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.db.queryengine.execution.driver.IDriver; import org.apache.iotdb.db.queryengine.execution.schedule.queue.IndexedBlockingQueue; import org.apache.iotdb.db.queryengine.execution.schedule.queue.multilevelqueue.MultilevelPriorityQueue; @@ -40,7 +40,7 @@ public class DriverTaskThread extends AbstractDriverThread { private static final double DRIVER_TASK_EXECUTION_TIME_SLICE_IN_MS = - IoTDBDescriptor.getInstance().getConfig().getDriverTaskExecutionTimeSliceInMs(); + CommonDescriptor.getInstance().getConfig().getDriverTaskExecutionTimeSliceInMs(); /** * In multi-level feedback queue, levels with lower priority have longer time slices. Currently, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/IDriverScheduler.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/IDriverScheduler.java index 1569870bd493e..9252baf788ed5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/IDriverScheduler.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/IDriverScheduler.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.schedule; +import org.apache.iotdb.calc.exception.MemoryNotEnoughException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.exception.CpuNotEnoughException; -import org.apache.iotdb.db.queryengine.exception.MemoryNotEnoughException; import org.apache.iotdb.db.queryengine.execution.driver.IDriver; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/Coordinator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/Coordinator.java index 9342b3a4674b0..9cee0e71a9702 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/Coordinator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/Coordinator.java @@ -30,20 +30,28 @@ import org.apache.iotdb.commons.conf.CommonConfig; import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.conf.IoTDBConstant; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.memory.IMemoryBlock; import org.apache.iotdb.commons.memory.MemoryBlockType; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeManager; import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.query.QueryTimeoutRuntimeException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.PreparedStatementInfo; import org.apache.iotdb.db.queryengine.common.DataNodeEndPoints; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.MPPQueryContext.ExplainType; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.QueryIdGenerator; import org.apache.iotdb.db.queryengine.execution.QueryState; import org.apache.iotdb.db.queryengine.plan.analyze.IPartitionFetcher; @@ -57,7 +65,6 @@ import org.apache.iotdb.db.queryengine.plan.execution.config.TreeConfigTaskVisitor; import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanner; import org.apache.iotdb.db.queryengine.plan.planner.TreeModelPlanner; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; import org.apache.iotdb.db.queryengine.plan.relational.planner.TableModelPlanner; @@ -89,18 +96,14 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExecuteImmediate; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Explain; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExplainAnalyze; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExtendRegion; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Flush; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.KillQuery; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadConfiguration; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadModel; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.MigrateRegion; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PipeStatement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Prepare; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ReconstructRegion; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RelationalAuthorStatement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RemoveAINode; @@ -140,15 +143,12 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StopExternalService; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StopRepairData; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubscriptionStatement; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.UnloadModel; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Use; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WrappedInsertStatement; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewrite; import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewriteFactory; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager; import org.apache.iotdb.db.queryengine.plan.statement.IConfigStatement; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import org.apache.iotdb.db.utils.SetThreadName; @@ -432,7 +432,7 @@ private IQueryExecution createQueryExecutionForTreeModel( * along with CTE query dataset. */ public ExecutionResult executeForTableModel( - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement statement, + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement statement, SqlParser sqlParser, IClientSession clientSession, long queryId, @@ -468,7 +468,7 @@ public ExecutionResult executeForTableModel( } public ExecutionResult executeForTableModel( - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement statement, + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement statement, SqlParser sqlParser, IClientSession clientSession, long queryId, @@ -549,7 +549,7 @@ public ExecutionResult executeForTreeModel( /** For compatibility of MQTT and REST, this method should never be called. */ @Deprecated public ExecutionResult executeForTableModel( - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement statement, + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement statement, SqlParser sqlParser, IClientSession currSession, Long queryId, @@ -601,7 +601,7 @@ private IQueryExecution createQueryExecutionForTableModel( } private IQueryExecution createQueryExecutionForTableModel( - final org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement statement, + final org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement statement, final SqlParser sqlParser, final IClientSession clientSession, final MPPQueryContext queryContext, @@ -688,12 +688,14 @@ private IQueryExecution createQueryExecutionForTableModel( queryContext)); } // Initialize variables for TableModelPlanner - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement statementToUse = statement; + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement statementToUse = + statement; List parameters = Collections.emptyList(); Map, Expression> parameterLookup = Collections.emptyMap(); // Unwrap Explain/ExplainAnalyze to check for inner Execute/ExecuteImmediate - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement innerStatement = statement; + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement innerStatement = + statement; if (statement instanceof Explain) { innerStatement = ((Explain) statement).getStatement(); } else if (statement instanceof ExplainAnalyze) { @@ -710,7 +712,7 @@ private IQueryExecution createQueryExecutionForTableModel( String.format("Prepared statement '%s' does not exist", statementName)); } - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement resolvedSql = + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement resolvedSql = preparedInfo.getSql(); parameterLookup = ParameterExtractor.bindParameters(resolvedSql, executeStatement.getParameters()); @@ -730,7 +732,7 @@ private IQueryExecution createQueryExecutionForTableModel( String sql = executeImmediateStatement.getSqlString(); List literalParameters = executeImmediateStatement.getParameters(); - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement resolvedSql = + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement resolvedSql = sqlParser.createStatement(sql, clientSession.getZoneId(), clientSession); if (!literalParameters.isEmpty()) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analysis.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analysis.java index 0d17b50a119ab..be20d218e6a70 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analysis.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analysis.java @@ -29,10 +29,10 @@ import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.SchemaPartition; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.NodeRef; import org.apache.iotdb.commons.schema.template.Template; import org.apache.iotdb.db.queryengine.common.DeviceContext; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.NodeRef; import org.apache.iotdb.db.queryengine.common.TimeseriesContext; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; import org.apache.iotdb.db.queryengine.common.schematree.ISchemaTree; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java index 4c30067a9b5e5..2005d4fdeb7b0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeUtils.java @@ -24,26 +24,26 @@ import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.DataPartitionQueryParam; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression.Operator; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics; import org.apache.iotdb.confignode.rpc.thrift.TRegionRouteMapResp; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.protocol.client.ConfigNodeClient; import org.apache.iotdb.db.protocol.client.ConfigNodeClientManager; import org.apache.iotdb.db.protocol.client.ConfigNodeInfo; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Delete; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression.Operator; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TimeRange; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertBaseStatement; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertMultiTabletsStatement; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java index e38267ab22356..6c42dedee3917 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java @@ -19,12 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.analyze; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.DataPartitionQueryParam; import org.apache.iotdb.commons.partition.SchemaNodeManagementPartition; @@ -44,7 +46,6 @@ import org.apache.iotdb.db.exception.ainode.GetModelInfoException; import org.apache.iotdb.db.exception.metadata.template.TemplateIncompatibleException; import org.apache.iotdb.db.exception.metadata.view.UnsupportedViewException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.exception.sql.StatementAnalyzeException; import org.apache.iotdb.db.queryengine.common.DeviceContext; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; @@ -140,7 +141,6 @@ import org.apache.iotdb.db.queryengine.plan.statement.sys.ShowDiskUsageStatement; import org.apache.iotdb.db.queryengine.plan.statement.sys.ShowQueriesStatement; import org.apache.iotdb.db.queryengine.plan.statement.sys.ShowVersionStatement; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.iotdb.rpc.RpcUtils; import org.apache.iotdb.rpc.TSStatusCode; @@ -173,6 +173,8 @@ import java.util.stream.Collectors; import static com.google.common.base.Preconditions.checkState; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT_TIME_HEADER; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.TREE_MODEL_DATABASE_PREFIX; import static org.apache.iotdb.commons.conf.IoTDBConstant.ALLOWED_SCHEMA_PROPS; import static org.apache.iotdb.commons.conf.IoTDBConstant.DEADBAND; import static org.apache.iotdb.commons.conf.IoTDBConstant.LOSS; @@ -202,8 +204,6 @@ import static org.apache.iotdb.db.queryengine.plan.parser.ASTVisitor.parseNodeString; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.DataNodeLocationSupplierFactory.getReadableDataNodeLocations; import static org.apache.iotdb.db.schemaengine.schemaregion.view.visitor.GetSourcePathsVisitor.getSourcePaths; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT_TIME_HEADER; -import static org.apache.iotdb.db.utils.constant.SqlConstant.TREE_MODEL_DATABASE_PREFIX; /** This visitor is used to analyze each type of Statement and returns the {@link Analysis}. */ public class AnalyzeVisitor extends StatementVisitor { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionAnalyzer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionAnalyzer.java index 9a847a9ebd132..4fa2dd07dd61b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionAnalyzer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionAnalyzer.java @@ -19,12 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.analyze; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.commons.conf.IoTDBConstant; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinScalarFunction; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinTimeSeriesGeneratingFunction; import org.apache.iotdb.commons.schema.column.ColumnHeader; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.schematree.ISchemaTree; import org.apache.iotdb.db.queryengine.plan.expression.Expression; @@ -54,9 +57,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.visitor.cartesian.ConcatDeviceAndBindSchemaForPredicateVisitor; import org.apache.iotdb.db.queryengine.plan.expression.visitor.cartesian.ConcatExpressionWithSuffixPathsVisitor; import org.apache.iotdb.db.queryengine.plan.statement.component.ResultColumn; -import org.apache.iotdb.db.queryengine.plan.udf.BuiltinScalarFunction; -import org.apache.iotdb.db.queryengine.plan.udf.BuiltinTimeSeriesGeneratingFunction; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.tsfile.common.constant.TsFileConstant; import org.apache.tsfile.file.metadata.IDeviceID; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionTypeAnalyzer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionTypeAnalyzer.java index adc80c7bb1522..e194c39f0d210 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionTypeAnalyzer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionTypeAnalyzer.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.analyze; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.common.NodeRef; +import org.apache.iotdb.calc.utils.constant.SqlConstant; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.NodeRef; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.binary.ArithmeticBinaryExpression; @@ -44,7 +45,6 @@ import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDAFInformationInferrer; import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFInformationInferrer; import org.apache.iotdb.db.utils.TypeInferenceUtils; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.write.schema.IMeasurementSchema; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/GroupByLevelHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/GroupByLevelHelper.java index a220fdf2883d3..5431aaf3b268a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/GroupByLevelHelper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/GroupByLevelHelper.java @@ -20,9 +20,9 @@ package org.apache.iotdb.db.queryengine.plan.analyze; import org.apache.iotdb.commons.conf.IoTDBConstant; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.tsfile.utils.Pair; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/PredicateUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/PredicateUtils.java index 9b45d2c51fa55..246f43b16aee9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/PredicateUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/PredicateUtils.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.analyze; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionFactory; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; @@ -41,8 +43,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.visitor.predicate.PredicatePushIntoScanChecker; import org.apache.iotdb.db.queryengine.plan.expression.visitor.predicate.PredicateSimplifier; import org.apache.iotdb.db.queryengine.plan.expression.visitor.predicate.ReversePredicateVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.filter.basic.Filter; @@ -284,7 +284,7 @@ public static Filter convertPredicateToTimeFilter(Expression predicate) { } public static Filter convertPredicateToTimeFilter( - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression predicate, + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression predicate, ZoneId zoneId, TimeUnit currPrecision) { if (predicate == null) { @@ -312,7 +312,7 @@ public static Filter convertPredicateToFilter( } public static Filter convertPredicateToFilter( - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression predicate, + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression predicate, Map measurementColumnsIndexMap, Map schemaMap, String timeColumnName, @@ -442,7 +442,7 @@ public static boolean predicateCanPushIntoScan(Expression predicate) { } public static boolean predicateCanPushIntoScan( - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression predicate) { + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression predicate) { return new org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate .PredicatePushIntoScanChecker() .process(predicate, null); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/SelectIntoUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/SelectIntoUtils.java index 7e23b0b4590fb..aee41a925fd2c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/SelectIntoUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/SelectIntoUtils.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.analyze; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedAggregationAnalyze.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedAggregationAnalyze.java index 3fc8b7e5339a1..d504becba2671 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedAggregationAnalyze.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedAggregationAnalyze.java @@ -18,11 +18,11 @@ */ package org.apache.iotdb.db.queryengine.plan.analyze; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.NodeRef; import org.apache.iotdb.commons.schema.template.Template; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.NodeRef; import org.apache.iotdb.db.queryengine.common.schematree.ISchemaTree; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand; @@ -44,6 +44,7 @@ import java.util.Map; import java.util.Set; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT_TIME; import static org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.ENDTIME; import static org.apache.iotdb.db.queryengine.plan.analyze.AnalyzeVisitor.DEVICE_EXPRESSION; import static org.apache.iotdb.db.queryengine.plan.analyze.AnalyzeVisitor.analyzeExpressionType; @@ -56,7 +57,6 @@ import static org.apache.iotdb.db.queryengine.plan.analyze.TemplatedAnalyze.analyzeDeviceViewOutput; import static org.apache.iotdb.db.queryengine.plan.optimization.LimitOffsetPushDown.canPushDownLimitOffsetInGroupByTimeForDevice; import static org.apache.iotdb.db.queryengine.plan.optimization.LimitOffsetPushDown.pushDownLimitOffsetInGroupByTimeForDevice; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT_TIME; /** Methods in this class are used for aggregation, templated with align by device situation. */ public class TemplatedAggregationAnalyze { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedAnalyze.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedAnalyze.java index 21b8d9d8dc105..b99a7bc20d273 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedAnalyze.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedAnalyze.java @@ -20,11 +20,11 @@ package org.apache.iotdb.db.queryengine.plan.analyze; import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.DataPartitionQueryParam; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.schema.template.Template; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.schematree.DeviceSchemaInfo; import org.apache.iotdb.db.queryengine.common.schematree.ISchemaTree; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedInfo.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedInfo.java index 12e27ea91e3f5..959b350f9ccff 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedInfo.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TemplatedInfo.java @@ -20,11 +20,11 @@ package org.apache.iotdb.db.queryengine.plan.analyze; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TypeProvider.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TypeProvider.java index 4dc2d5a4ae026..dcc2c5e41a3fa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TypeProvider.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/TypeProvider.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.analyze; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.utils.TypeUtil; +import org.apache.iotdb.commons.queryengine.plan.analyze.ITableTypeProvider; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.utils.TypeUtil; import com.google.common.collect.ImmutableMap; import org.apache.tsfile.enums.TSDataType; @@ -40,7 +41,7 @@ import static java.util.Objects.requireNonNull; import static org.apache.iotdb.db.queryengine.plan.expression.leaf.TimestampOperand.TIMESTAMP_EXPRESSION_STRING; -public class TypeProvider { +public class TypeProvider implements ITableTypeProvider { private final Map treeModelTypeMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileAnalyzer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileAnalyzer.java index 9d350d97c82e1..e1e6d59719145 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileAnalyzer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileAnalyzer.java @@ -22,14 +22,15 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.auth.AuthException; import org.apache.iotdb.commons.conf.CommonDescriptor; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.load.LoadAnalyzeException; import org.apache.iotdb.db.exception.load.LoadAnalyzeTypeMismatchException; import org.apache.iotdb.db.exception.load.LoadEmptyFileException; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.analyze.ClusterPartitionFetcher; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; import org.apache.iotdb.db.queryengine.plan.analyze.IPartitionFetcher; @@ -46,7 +47,6 @@ import org.apache.iotdb.db.storageengine.load.converter.LoadTsFileDataTypeConverter; import org.apache.iotdb.db.storageengine.load.metrics.LoadTsFileCostMetricsSet; import org.apache.iotdb.db.storageengine.load.util.LoadUtil; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.iotdb.rpc.RpcUtils; import org.apache.iotdb.rpc.TSStatusCode; @@ -408,7 +408,7 @@ && handleSingleMiniFile(i)) { sessionInfo.getUserEntity(), sessionInfo.getZoneId(), sessionInfo.getDatabaseName().orElse(null), - IClientSession.SqlDialect.TABLE); + SqlDialect.TABLE); context.setSession(newSessionInfo); doAnalyzeSingleTableFile(tsFile, reader, timeseriesMetadataIterator, tableSchemaMap); } else { @@ -418,7 +418,7 @@ && handleSingleMiniFile(i)) { sessionInfo.getUserEntity(), sessionInfo.getZoneId(), sessionInfo.getDatabaseName().orElse(null), - IClientSession.SqlDialect.TREE); + SqlDialect.TREE); context.setSession(newSessionInfo); doAnalyzeSingleTreeFile(tsFile, reader, timeseriesMetadataIterator); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileTableSchemaCache.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileTableSchemaCache.java index 6754468bad532..237f5eea36378 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileTableSchemaCache.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileTableSchemaCache.java @@ -20,7 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.analyze.load; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PatternTreeMap; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.confignode.rpc.thrift.TDatabaseSchema; import org.apache.iotdb.db.auth.AuthorityChecker; @@ -28,16 +31,13 @@ import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.load.LoadAnalyzeException; import org.apache.iotdb.db.exception.load.LoadRuntimeOutOfMemoryException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.execution.config.ConfigTaskResult; import org.apache.iotdb.db.queryengine.plan.execution.config.executor.ClusterConfigTaskExecutor; import org.apache.iotdb.db.queryengine.plan.execution.config.metadata.relational.CreateDBTask; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.ITableDeviceSchemaValidation; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; import org.apache.iotdb.db.storageengine.dataregion.modification.ModEntry; import org.apache.iotdb.db.storageengine.dataregion.modification.ModificationFile; @@ -296,9 +296,7 @@ public void createTableAndDatabaseIfNecessary(final String tableName) autoCreateTableDatabaseIfAbsent(database); needToCreateDatabase = false; } - final org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema fileSchema = - org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema.fromTsFileTableSchema( - tableName, schema); + final TableSchema fileSchema = TableSchema.fromTsFileTableSchema(tableName, schema); final TableSchema realSchema = metadata .validateTableHeaderSchema4TsFile( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/TreeSchemaAutoCreatorAndVerifier.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/TreeSchemaAutoCreatorAndVerifier.java index cf2aedc6c19f2..de56a8603c5ff 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/TreeSchemaAutoCreatorAndVerifier.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/TreeSchemaAutoCreatorAndVerifier.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.analyze.load; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.audit.UserEntity; import org.apache.iotdb.commons.auth.AuthException; @@ -26,6 +27,7 @@ import org.apache.iotdb.commons.client.exception.ClientManagerException; import org.apache.iotdb.commons.consensus.ConfigRegionId; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics; @@ -37,7 +39,6 @@ import org.apache.iotdb.db.exception.load.LoadAnalyzeTypeMismatchException; import org.apache.iotdb.db.exception.load.LoadFileException; import org.apache.iotdb.db.exception.load.LoadRuntimeOutOfMemoryException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.protocol.client.ConfigNodeClient; import org.apache.iotdb.db.protocol.client.ConfigNodeClientManager; import org.apache.iotdb.db.protocol.client.ConfigNodeInfo; @@ -52,7 +53,6 @@ import org.apache.iotdb.db.queryengine.plan.statement.metadata.ShowDatabaseStatement; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; import org.apache.iotdb.db.storageengine.dataregion.tsfile.timeindex.ITimeIndex; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.iotdb.rpc.TSStatusCode; import org.apache.thrift.TException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/AutoCreateSchemaExecutor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/AutoCreateSchemaExecutor.java index 2c6ed30cd75ec..8143277a19853 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/AutoCreateSchemaExecutor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/AutoCreateSchemaExecutor.java @@ -23,6 +23,7 @@ import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.schema.template.Template; @@ -31,7 +32,6 @@ import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.load.LoadAnalyzeTypeMismatchException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.schematree.ClusterSchemaTree; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/ClusterSchemaFetchExecutor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/ClusterSchemaFetchExecutor.java index d575f6420eb7c..3014213e67cd6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/ClusterSchemaFetchExecutor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/ClusterSchemaFetchExecutor.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.analyze.schema; +import org.apache.iotdb.calc.exception.MemoryNotEnoughException; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.MetadataException; @@ -32,7 +33,6 @@ import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.schematree.ClusterSchemaTree; -import org.apache.iotdb.db.queryengine.exception.MemoryNotEnoughException; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.analyze.ClusterPartitionFetcher; import org.apache.iotdb.db.queryengine.plan.execution.ExecutionResult; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/SchemaValidator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/SchemaValidator.java index ecd7539107b44..b946a82eb383c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/SchemaValidator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/SchemaValidator.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.analyze.schema; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.schematree.ISchemaTree; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/IQueryExecution.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/IQueryExecution.java index 9b5a183d98a68..f4beb09917c27 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/IQueryExecution.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/IQueryExecution.java @@ -20,7 +20,7 @@ package org.apache.iotdb.db.queryengine.plan.execution; import org.apache.iotdb.commons.exception.IoTDBException; -import org.apache.iotdb.db.protocol.session.IClientSession; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; import org.apache.iotdb.db.queryengine.plan.analyze.QueryType; @@ -97,7 +97,7 @@ public interface IQueryExecution { String getStatementType(); - IClientSession.SqlDialect getSQLDialect(); + SqlDialect getSQLDialect(); String getUser(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java index 785a273238a7b..d22fe293ace7b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java @@ -18,17 +18,18 @@ */ package org.apache.iotdb.db.queryengine.plan.execution; +import org.apache.iotdb.calc.metric.QueryExecutionMetricSet; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.query.KilledByOthersException; import org.apache.iotdb.db.exception.query.QueryTimeoutRuntimeException; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; @@ -37,7 +38,6 @@ import org.apache.iotdb.db.queryengine.execution.exchange.MPPDataExchangeService; import org.apache.iotdb.db.queryengine.execution.exchange.source.ISourceHandle; import org.apache.iotdb.db.queryengine.execution.exchange.source.SourceHandle; -import org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet; import org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; @@ -72,9 +72,9 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Throwables.throwIfUnchecked; +import static org.apache.iotdb.calc.metric.QueryExecutionMetricSet.WAIT_FOR_RESULT; import static org.apache.iotdb.commons.utils.ErrorHandlingCommonUtils.getRootCause; import static org.apache.iotdb.db.queryengine.common.DataNodeEndPoints.isSameNode; -import static org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet.WAIT_FOR_RESULT; import static org.apache.iotdb.rpc.TSStatusCode.DATE_OUT_OF_RANGE; /** @@ -732,7 +732,7 @@ public String getStatementType() { } @Override - public IClientSession.SqlDialect getSQLDialect() { + public SqlDialect getSQLDialect() { return context.getSession().getSqlDialect(); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java index a3fde74fa4194..121601ef00eeb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigExecution.java @@ -22,8 +22,8 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; import org.apache.iotdb.db.queryengine.execution.QueryStateMachine; @@ -369,7 +369,7 @@ public String getStatementType() { } @Override - public IClientSession.SqlDialect getSQLDialect() { + public SqlDialect getSQLDialect() { return context.getSession().getSqlDialect(); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java index 1b0ea2c75e882..34271f0c61d26 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java @@ -28,6 +28,7 @@ import org.apache.iotdb.commons.auth.entity.User; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.exception.auth.AccessDeniedException; import org.apache.iotdb.commons.executable.ExecutableManager; import org.apache.iotdb.commons.path.PartialPath; @@ -35,6 +36,14 @@ import org.apache.iotdb.commons.pipe.config.constant.PipeSinkConstant; import org.apache.iotdb.commons.pipe.config.constant.PipeSourceConstant; import org.apache.iotdb.commons.pipe.config.constant.SystemConstant; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeManager; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeNotFoundException; import org.apache.iotdb.commons.schema.table.TreeViewSchema; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TimeColumnSchema; @@ -44,7 +53,6 @@ import org.apache.iotdb.db.audit.DNAuditLogger; import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.conf.IoTDBConfig; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; @@ -157,7 +165,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateTopic; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateTraining; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateView; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataType; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DatabaseStatement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Deallocate; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DeleteDevice; @@ -172,19 +179,14 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropSubscription; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropTable; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropTopic; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExtendRegion; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Flush; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.KillQuery; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadConfiguration; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadModel; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.MigrateRegion; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Prepare; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Property; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ReconstructRegion; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RelationalAuthorStatement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RemoveAINode; @@ -234,8 +236,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ViewFieldDefinition; import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewrite; import org.apache.iotdb.db.queryengine.plan.relational.type.AuthorRType; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeNotFoundException; import org.apache.iotdb.db.queryengine.plan.statement.metadata.DatabaseSchemaStatement; import org.apache.iotdb.db.queryengine.plan.statement.metadata.RemoveAINodeStatement; import org.apache.iotdb.db.queryengine.plan.statement.metadata.RemoveConfigNodeStatement; @@ -275,6 +275,8 @@ import static org.apache.iotdb.commons.conf.IoTDBConstant.TTL_INFINITE; import static org.apache.iotdb.commons.executable.ExecutableManager.getUnTrustedUriErrorMsg; import static org.apache.iotdb.commons.executable.ExecutableManager.isUriTrusted; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureTranslator.toTypeSignature; import static org.apache.iotdb.commons.schema.table.TsTable.TABLE_ALLOWED_PROPERTIES; import static org.apache.iotdb.commons.schema.table.TsTable.TIME_COLUMN_NAME; import static org.apache.iotdb.commons.schema.table.TsTable.TTL_PROPERTY; @@ -282,11 +284,9 @@ import static org.apache.iotdb.db.queryengine.plan.execution.config.metadata.relational.CreateDBTask.SCHEMA_REGION_GROUP_NUM_KEY; import static org.apache.iotdb.db.queryengine.plan.execution.config.metadata.relational.CreateDBTask.TIME_PARTITION_INTERVAL_KEY; import static org.apache.iotdb.db.queryengine.plan.execution.config.metadata.relational.CreateDBTask.TTL_KEY; -import static org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toTypeSignature; import static org.apache.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR; -public class TableConfigTaskVisitor extends AstVisitor { +public class TableConfigTaskVisitor implements AstVisitor { public static final String DATABASE_NOT_SPECIFIED = "database is not specified"; @@ -310,20 +310,20 @@ public TableConfigTaskVisitor( } @Override - protected IConfigTask visitNode(final Node node, final MPPQueryContext context) { + public IConfigTask visitNode(final Node node, final MPPQueryContext context) { throw new UnsupportedOperationException( "Unsupported statement type: " + node.getClass().getName()); } @Override - protected IConfigTask visitCreateDB(final CreateDB node, final MPPQueryContext context) { + public IConfigTask visitCreateDB(final CreateDB node, final MPPQueryContext context) { accessControl.checkCanCreateDatabase( context.getSession().getUserName(), node.getDbName(), context); return visitDatabaseStatement(node, context); } @Override - protected IConfigTask visitAlterDB(final AlterDB node, final MPPQueryContext context) { + public IConfigTask visitAlterDB(final AlterDB node, final MPPQueryContext context) { accessControl.checkCanAlterDatabase( context.getSession().getUserName(), node.getDbName(), context); return visitDatabaseStatement(node, context); @@ -397,7 +397,7 @@ private IConfigTask visitDatabaseStatement( } @Override - protected IConfigTask visitUse(final Use node, final MPPQueryContext context) { + public IConfigTask visitUse(final Use node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkCanShowOrUseDatabase( context.getSession().getUserName(), node.getDatabaseId().getValue(), context); @@ -405,7 +405,7 @@ protected IConfigTask visitUse(final Use node, final MPPQueryContext context) { } @Override - protected IConfigTask visitDropDB(final DropDB node, final MPPQueryContext context) { + public IConfigTask visitDropDB(final DropDB node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkCanDropDatabase( context.getSession().getUserName(), node.getDbName().getValue(), context); @@ -413,7 +413,7 @@ protected IConfigTask visitDropDB(final DropDB node, final MPPQueryContext conte } @Override - protected IConfigTask visitShowDB(final ShowDB node, final MPPQueryContext context) { + public IConfigTask visitShowDB(final ShowDB node, final MPPQueryContext context) { context.setQueryType(QueryType.READ); return new ShowDBTask( node, @@ -435,7 +435,7 @@ public static boolean canShowDB( } @Override - protected IConfigTask visitShowCluster( + public IConfigTask visitShowCluster( final ShowCluster showCluster, final MPPQueryContext context) { context.setQueryType(QueryType.READ); accessControl.checkUserGlobalSysPrivilege(context); @@ -447,7 +447,7 @@ protected IConfigTask visitShowCluster( } @Override - protected IConfigTask visitShowRegions( + public IConfigTask visitShowRegions( final ShowRegions showRegions, final MPPQueryContext context) { context.setQueryType(QueryType.READ); accessControl.checkUserGlobalSysPrivilege(context); @@ -464,7 +464,7 @@ protected IConfigTask visitShowRegions( } @Override - protected IConfigTask visitRemoveDataNode( + public IConfigTask visitRemoveDataNode( final RemoveDataNode removeDataNode, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); @@ -476,7 +476,7 @@ protected IConfigTask visitRemoveDataNode( } @Override - protected IConfigTask visitRemoveConfigNode( + public IConfigTask visitRemoveConfigNode( final RemoveConfigNode removeConfigNode, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); @@ -488,7 +488,7 @@ protected IConfigTask visitRemoveConfigNode( } @Override - protected IConfigTask visitRemoveAINode( + public IConfigTask visitRemoveAINode( final RemoveAINode removeAINode, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); @@ -498,7 +498,7 @@ protected IConfigTask visitRemoveAINode( } @Override - protected IConfigTask visitShowDataNodes( + public IConfigTask visitShowDataNodes( final ShowDataNodes showDataNodesStatement, final MPPQueryContext context) { context.setQueryType(QueryType.READ); accessControl.checkUserGlobalSysPrivilege(context); @@ -506,7 +506,7 @@ protected IConfigTask visitShowDataNodes( } @Override - protected IConfigTask visitShowAvailableUrls( + public IConfigTask visitShowAvailableUrls( final ShowAvailableUrls showAvailableUrls, final MPPQueryContext context) { context.setQueryType(QueryType.READ); DNAuditLogger.getInstance() @@ -516,7 +516,7 @@ protected IConfigTask visitShowAvailableUrls( } @Override - protected IConfigTask visitShowConfigNodes( + public IConfigTask visitShowConfigNodes( final ShowConfigNodes showConfigNodesStatement, final MPPQueryContext context) { context.setQueryType(QueryType.READ); accessControl.checkUserGlobalSysPrivilege(context); @@ -524,7 +524,7 @@ protected IConfigTask visitShowConfigNodes( } @Override - protected IConfigTask visitShowAINodes( + public IConfigTask visitShowAINodes( final ShowAINodes showAINodesStatement, final MPPQueryContext context) { context.setQueryType(QueryType.READ); accessControl.checkUserGlobalSysPrivilege(context); @@ -532,7 +532,7 @@ protected IConfigTask visitShowAINodes( } @Override - protected IConfigTask visitClearCache( + public IConfigTask visitClearCache( final ClearCache clearCacheStatement, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); @@ -540,14 +540,14 @@ protected IConfigTask visitClearCache( } @Override - protected IConfigTask visitCreateTable(final CreateTable node, final MPPQueryContext context) { + public IConfigTask visitCreateTable(final CreateTable node, final MPPQueryContext context) { final Pair databaseTablePair = parseTable4CreateTableOrView(node, context); return new CreateTableTask( databaseTablePair.getRight(), databaseTablePair.getLeft(), node.isIfNotExists()); } @Override - protected IConfigTask visitCreateView(final CreateView node, final MPPQueryContext context) { + public IConfigTask visitCreateView(final CreateView node, final MPPQueryContext context) { final Pair databaseTablePair = parseTable4CreateTableOrView(node, context); final TsTable table = databaseTablePair.getRight(); accessControl.checkCanCreateViewFromTreePath(node.getPrefixPath(), context); @@ -663,8 +663,7 @@ private void validateAndGenerateTimeColumn( } @Override - protected IConfigTask visitAlterColumnDataType( - AlterColumnDataType node, MPPQueryContext context) { + public IConfigTask visitAlterColumnDataType(AlterColumnDataType node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); final Pair databaseTablePair = splitQualifiedName(node.getTableName()); final String columnName = node.getColumnName().getValue(); @@ -687,7 +686,7 @@ protected IConfigTask visitAlterColumnDataType( } @Override - protected IConfigTask visitRenameTable(final RenameTable node, final MPPQueryContext context) { + public IConfigTask visitRenameTable(final RenameTable node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); final Pair databaseTablePair = splitQualifiedName(node.getSource()); final String database = databaseTablePair.getLeft(); @@ -711,7 +710,7 @@ protected IConfigTask visitRenameTable(final RenameTable node, final MPPQueryCon } @Override - protected IConfigTask visitAddColumn(final AddColumn node, final MPPQueryContext context) { + public IConfigTask visitAddColumn(final AddColumn node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); final Pair databaseTablePair = splitQualifiedName(node.getTableName()); final String database = databaseTablePair.getLeft(); @@ -744,7 +743,7 @@ protected IConfigTask visitAddColumn(final AddColumn node, final MPPQueryContext } @Override - protected IConfigTask visitRenameColumn(final RenameColumn node, final MPPQueryContext context) { + public IConfigTask visitRenameColumn(final RenameColumn node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); final Pair databaseTablePair = splitQualifiedName(node.getTable()); final String database = databaseTablePair.getLeft(); @@ -771,7 +770,7 @@ protected IConfigTask visitRenameColumn(final RenameColumn node, final MPPQueryC } @Override - protected IConfigTask visitDropColumn(final DropColumn node, final MPPQueryContext context) { + public IConfigTask visitDropColumn(final DropColumn node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); final Pair databaseTablePair = splitQualifiedName(node.getTable()); final String database = databaseTablePair.getLeft(); @@ -791,8 +790,7 @@ protected IConfigTask visitDropColumn(final DropColumn node, final MPPQueryConte } @Override - protected IConfigTask visitSetProperties( - final SetProperties node, final MPPQueryContext context) { + public IConfigTask visitSetProperties(final SetProperties node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); final Pair databaseTablePair = splitQualifiedName(node.getName()); final String database = databaseTablePair.getLeft(); @@ -811,7 +809,7 @@ protected IConfigTask visitSetProperties( } @Override - protected IConfigTask visitSetTableComment( + public IConfigTask visitSetTableComment( final SetTableComment node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); final Pair databaseTablePair = splitQualifiedName(node.getTableName()); @@ -831,7 +829,7 @@ protected IConfigTask visitSetTableComment( } @Override - protected IConfigTask visitSetColumnComment( + public IConfigTask visitSetColumnComment( final SetColumnComment node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); final Pair databaseTablePair = splitQualifiedName(node.getTable()); @@ -918,7 +916,7 @@ private TSDataType getDataType(final DataType dataType) { } @Override - protected IConfigTask visitDropTable(final DropTable node, final MPPQueryContext context) { + public IConfigTask visitDropTable(final DropTable node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); final Pair databaseTablePair = splitQualifiedName(node.getTableName()); final String database = databaseTablePair.getLeft(); @@ -932,7 +930,7 @@ protected IConfigTask visitDropTable(final DropTable node, final MPPQueryContext } @Override - protected IConfigTask visitDeleteDevice(final DeleteDevice node, final MPPQueryContext context) { + public IConfigTask visitDeleteDevice(final DeleteDevice node, final MPPQueryContext context) { new Analyzer( context, context.getSession(), @@ -951,7 +949,7 @@ protected IConfigTask visitDeleteDevice(final DeleteDevice node, final MPPQueryC } @Override - protected IConfigTask visitShowTables(final ShowTables node, final MPPQueryContext context) { + public IConfigTask visitShowTables(final ShowTables node, final MPPQueryContext context) { context.setQueryType(QueryType.READ); String database = clientSession.getDatabaseName(); if (node.getDbName().isPresent()) { @@ -990,8 +988,7 @@ public static boolean canShowTable( } @Override - protected IConfigTask visitDescribeTable( - final DescribeTable node, final MPPQueryContext context) { + public IConfigTask visitDescribeTable(final DescribeTable node, final MPPQueryContext context) { context.setQueryType(QueryType.READ); final Pair databaseTablePair = splitQualifiedName(node.getTable()); final String database = databaseTablePair.getLeft(); @@ -1011,14 +1008,14 @@ protected IConfigTask visitDescribeTable( } @Override - protected IConfigTask visitFlush(final Flush node, final MPPQueryContext context) { + public IConfigTask visitFlush(final Flush node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new FlushTask(((FlushStatement) node.getInnerTreeStatement())); } @Override - protected IConfigTask visitSetConfiguration(SetConfiguration node, MPPQueryContext context) { + public IConfigTask visitSetConfiguration(SetConfiguration node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); SetConfigurationStatement setConfigurationStatement = (SetConfigurationStatement) node.getInnerTreeStatement(); @@ -1035,7 +1032,7 @@ protected IConfigTask visitSetConfiguration(SetConfiguration node, MPPQueryConte } @Override - protected IConfigTask visitShowConfiguration(ShowConfiguration node, MPPQueryContext context) { + public IConfigTask visitShowConfiguration(ShowConfiguration node, MPPQueryContext context) { context.setQueryType(QueryType.READ); ShowConfigurationStatement showConfigurationStatement = (ShowConfigurationStatement) node.getInnerTreeStatement(); @@ -1048,28 +1045,28 @@ protected IConfigTask visitShowConfiguration(ShowConfiguration node, MPPQueryCon } @Override - protected IConfigTask visitStartRepairData(StartRepairData node, MPPQueryContext context) { + public IConfigTask visitStartRepairData(StartRepairData node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new StartRepairDataTask(((StartRepairDataStatement) node.getInnerTreeStatement())); } @Override - protected IConfigTask visitStopRepairData(StopRepairData node, MPPQueryContext context) { + public IConfigTask visitStopRepairData(StopRepairData node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new StopRepairDataTask(((StopRepairDataStatement) node.getInnerTreeStatement())); } @Override - protected IConfigTask visitLoadConfiguration(LoadConfiguration node, MPPQueryContext context) { + public IConfigTask visitLoadConfiguration(LoadConfiguration node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserIsAdmin(context.getSession().getUserEntity()); return new LoadConfigurationTask(((LoadConfigurationStatement) node.getInnerTreeStatement())); } @Override - protected IConfigTask visitSetSystemStatus(SetSystemStatus node, MPPQueryContext context) { + public IConfigTask visitSetSystemStatus(SetSystemStatus node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new SetSystemStatusTask(((SetSystemStatusStatement) node.getInnerTreeStatement())); @@ -1120,7 +1117,7 @@ private int parseIntFromLiteral(final Object value, final String name) { } @Override - protected IConfigTask visitCreatePipe(final CreatePipe node, final MPPQueryContext context) { + public IConfigTask visitCreatePipe(final CreatePipe node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); @@ -1267,7 +1264,7 @@ public static void checkAndEnrichSinkUser( } @Override - protected IConfigTask visitAlterPipe(final AlterPipe node, final MPPQueryContext context) { + public IConfigTask visitAlterPipe(final AlterPipe node, final MPPQueryContext context) { context.setQueryType(QueryType.OTHER); final String userName = context.getSession().getUserName(); @@ -1314,34 +1311,34 @@ protected IConfigTask visitAlterPipe(final AlterPipe node, final MPPQueryContext } @Override - protected IConfigTask visitDropPipe(DropPipe node, MPPQueryContext context) { + public IConfigTask visitDropPipe(DropPipe node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new DropPipeTask(node); } @Override - protected IConfigTask visitStartPipe(StartPipe node, MPPQueryContext context) { + public IConfigTask visitStartPipe(StartPipe node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new StartPipeTask(node); } @Override - protected IConfigTask visitStopPipe(StopPipe node, MPPQueryContext context) { + public IConfigTask visitStopPipe(StopPipe node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new StopPipeTask(node); } @Override - protected IConfigTask visitShowPipes(ShowPipes node, MPPQueryContext context) { + public IConfigTask visitShowPipes(ShowPipes node, MPPQueryContext context) { context.setQueryType(QueryType.READ); return new ShowPipeTask(node, context.getSession().getUserName()); } @Override - protected IConfigTask visitCreatePipePlugin(CreatePipePlugin node, MPPQueryContext context) { + public IConfigTask visitCreatePipePlugin(CreatePipePlugin node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); if (node.getUriString() != null && isUriTrusted(node.getUriString())) { @@ -1355,21 +1352,21 @@ protected IConfigTask visitCreatePipePlugin(CreatePipePlugin node, MPPQueryConte } @Override - protected IConfigTask visitDropPipePlugin(DropPipePlugin node, MPPQueryContext context) { + public IConfigTask visitDropPipePlugin(DropPipePlugin node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new DropPipePluginTask(node); } @Override - protected IConfigTask visitShowPipePlugins(ShowPipePlugins node, MPPQueryContext context) { + public IConfigTask visitShowPipePlugins(ShowPipePlugins node, MPPQueryContext context) { context.setQueryType(QueryType.READ); accessControl.checkUserGlobalSysPrivilege(context); return new ShowPipePluginsTask(node); } @Override - protected IConfigTask visitCreateTopic(CreateTopic node, MPPQueryContext context) { + public IConfigTask visitCreateTopic(CreateTopic node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); @@ -1381,100 +1378,98 @@ protected IConfigTask visitCreateTopic(CreateTopic node, MPPQueryContext context } @Override - protected IConfigTask visitDropTopic(DropTopic node, MPPQueryContext context) { + public IConfigTask visitDropTopic(DropTopic node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new DropTopicTask(node); } @Override - protected IConfigTask visitShowTopics(ShowTopics node, MPPQueryContext context) { + public IConfigTask visitShowTopics(ShowTopics node, MPPQueryContext context) { context.setQueryType(QueryType.READ); accessControl.checkUserGlobalSysPrivilege(context); return new ShowTopicsTask(node); } @Override - protected IConfigTask visitShowSubscriptions(ShowSubscriptions node, MPPQueryContext context) { + public IConfigTask visitShowSubscriptions(ShowSubscriptions node, MPPQueryContext context) { context.setQueryType(QueryType.READ); accessControl.checkUserGlobalSysPrivilege(context); return new ShowSubscriptionsTask(node); } @Override - protected IConfigTask visitDropSubscription(DropSubscription node, MPPQueryContext context) { + public IConfigTask visitDropSubscription(DropSubscription node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new DropSubscriptionTask(node); } @Override - protected IConfigTask visitShowCurrentUser(ShowCurrentUser node, MPPQueryContext context) { + public IConfigTask visitShowCurrentUser(ShowCurrentUser node, MPPQueryContext context) { context.setQueryType(QueryType.READ); return new ShowCurrentUserTask(context.getSession().getUserName()); } @Override - protected IConfigTask visitShowCurrentSqlDialect( + public IConfigTask visitShowCurrentSqlDialect( ShowCurrentSqlDialect node, MPPQueryContext context) { context.setQueryType(QueryType.READ); return new ShowCurrentSqlDialectTask(context.getSession().getSqlDialect().name()); } @Override - protected IConfigTask visitSetSqlDialect(SetSqlDialect node, MPPQueryContext context) { + public IConfigTask visitSetSqlDialect(SetSqlDialect node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); return new SetSqlDialectTask(node.getSqlDialect()); } @Override - protected IConfigTask visitPrepare(Prepare node, MPPQueryContext context) { + public IConfigTask visitPrepare(Prepare node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); return new PrepareTask(node.getStatementName().getValue(), node.getSql()); } @Override - protected IConfigTask visitDeallocate(Deallocate node, MPPQueryContext context) { + public IConfigTask visitDeallocate(Deallocate node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); return new DeallocateTask(node.getStatementName().getValue()); } @Override - protected IConfigTask visitShowCurrentDatabase( - ShowCurrentDatabase node, MPPQueryContext context) { + public IConfigTask visitShowCurrentDatabase(ShowCurrentDatabase node, MPPQueryContext context) { context.setQueryType(QueryType.READ); return new ShowCurrentDatabaseTask(context.getSession().getDatabaseName().orElse(null)); } @Override - protected IConfigTask visitShowVersion(ShowVersion node, MPPQueryContext context) { + public IConfigTask visitShowVersion(ShowVersion node, MPPQueryContext context) { context.setQueryType(QueryType.READ); return new ShowVersionTask(); } @Override - protected IConfigTask visitShowVariables(ShowVariables node, MPPQueryContext context) { + public IConfigTask visitShowVariables(ShowVariables node, MPPQueryContext context) { context.setQueryType(QueryType.READ); accessControl.checkUserGlobalSysPrivilege(context); return new ShowVariablesTask(); } @Override - protected IConfigTask visitShowClusterId(ShowClusterId node, MPPQueryContext context) { + public IConfigTask visitShowClusterId(ShowClusterId node, MPPQueryContext context) { context.setQueryType(QueryType.READ); accessControl.checkUserGlobalSysPrivilege(context); return new ShowClusterIdTask(); } @Override - protected IConfigTask visitShowCurrentTimestamp( - ShowCurrentTimestamp node, MPPQueryContext context) { + public IConfigTask visitShowCurrentTimestamp(ShowCurrentTimestamp node, MPPQueryContext context) { context.setQueryType(QueryType.READ); return new ShowCurrentTimestampTask(); } @Override - protected IConfigTask visitRelationalAuthorPlan( + public IConfigTask visitRelationalAuthorPlan( RelationalAuthorStatement node, MPPQueryContext context) { context.setQueryType(node.getQueryType()); node.setExecutedByUserId(context.getUserId()); @@ -1496,7 +1491,7 @@ private void visitUpdateUser(RelationalAuthorStatement node) { } @Override - protected IConfigTask visitKillQuery(KillQuery node, MPPQueryContext context) { + public IConfigTask visitKillQuery(KillQuery node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); String allowedUsername = context.getSession().getUserName(); if (accessControl.hasGlobalPrivilege( @@ -1507,7 +1502,7 @@ protected IConfigTask visitKillQuery(KillQuery node, MPPQueryContext context) { } @Override - protected IConfigTask visitCreateFunction(CreateFunction node, MPPQueryContext context) { + public IConfigTask visitCreateFunction(CreateFunction node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); if (node.getUriString().map(ExecutableManager::isUriTrusted).orElse(true)) { @@ -1521,20 +1516,20 @@ protected IConfigTask visitCreateFunction(CreateFunction node, MPPQueryContext c } @Override - protected IConfigTask visitShowFunctions(ShowFunctions node, MPPQueryContext context) { + public IConfigTask visitShowFunctions(ShowFunctions node, MPPQueryContext context) { context.setQueryType(QueryType.READ); return new ShowFunctionsTask(Model.TABLE); } @Override - protected IConfigTask visitDropFunction(DropFunction node, MPPQueryContext context) { + public IConfigTask visitDropFunction(DropFunction node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new DropFunctionTask(Model.TABLE, node.getUdfName()); } @Override - protected IConfigTask visitCreateExternalService( + public IConfigTask visitCreateExternalService( CreateExternalService node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); @@ -1542,31 +1537,28 @@ protected IConfigTask visitCreateExternalService( } @Override - protected IConfigTask visitStartExternalService( - StartExternalService node, MPPQueryContext context) { + public IConfigTask visitStartExternalService(StartExternalService node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new StartExternalServiceTask(node.getServiceName()); } @Override - protected IConfigTask visitStopExternalService( - StopExternalService node, MPPQueryContext context) { + public IConfigTask visitStopExternalService(StopExternalService node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new StopExternalServiceTask(node.getServiceName()); } @Override - protected IConfigTask visitDropExternalService( - DropExternalService node, MPPQueryContext context) { + public IConfigTask visitDropExternalService(DropExternalService node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new DropExternalServiceTask(node.getServiceName(), node.isForcedly()); } @Override - protected IConfigTask visitMigrateRegion(MigrateRegion migrateRegion, MPPQueryContext context) { + public IConfigTask visitMigrateRegion(MigrateRegion migrateRegion, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); // As the implementation is identical, we'll simply translate to the @@ -1575,7 +1567,7 @@ protected IConfigTask visitMigrateRegion(MigrateRegion migrateRegion, MPPQueryCo } @Override - protected IConfigTask visitReconstructRegion( + public IConfigTask visitReconstructRegion( ReconstructRegion reconstructRegion, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); @@ -1585,7 +1577,7 @@ protected IConfigTask visitReconstructRegion( } @Override - protected IConfigTask visitExtendRegion(ExtendRegion extendRegion, MPPQueryContext context) { + public IConfigTask visitExtendRegion(ExtendRegion extendRegion, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); // As the implementation is identical, we'll simply translate to the @@ -1594,7 +1586,7 @@ protected IConfigTask visitExtendRegion(ExtendRegion extendRegion, MPPQueryConte } @Override - protected IConfigTask visitRemoveRegion(RemoveRegion removeRegion, MPPQueryContext context) { + public IConfigTask visitRemoveRegion(RemoveRegion removeRegion, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); // As the implementation is identical, we'll simply translate to the @@ -1603,7 +1595,7 @@ protected IConfigTask visitRemoveRegion(RemoveRegion removeRegion, MPPQueryConte } @Override - protected IConfigTask visitCreateTraining(CreateTraining node, MPPQueryContext context) { + public IConfigTask visitCreateTraining(CreateTraining node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new CreateTuningTask( @@ -1611,7 +1603,7 @@ protected IConfigTask visitCreateTraining(CreateTraining node, MPPQueryContext c } @Override - protected IConfigTask visitCreateModel(CreateModel node, MPPQueryContext context) { + public IConfigTask visitCreateModel(CreateModel node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); String uri = node.getUri(); @@ -1624,40 +1616,40 @@ protected IConfigTask visitCreateModel(CreateModel node, MPPQueryContext context } @Override - protected IConfigTask visitShowModels(ShowModels node, MPPQueryContext context) { + public IConfigTask visitShowModels(ShowModels node, MPPQueryContext context) { context.setQueryType(QueryType.READ); return new ShowModelsTask(node.getModelId()); } @Override - protected IConfigTask visitDropModel(DropModel node, MPPQueryContext context) { + public IConfigTask visitDropModel(DropModel node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new DropModelTask(node.getModelId()); } @Override - protected IConfigTask visitShowLoadedModels(ShowLoadedModels node, MPPQueryContext context) { + public IConfigTask visitShowLoadedModels(ShowLoadedModels node, MPPQueryContext context) { context.setQueryType(QueryType.READ); accessControl.checkUserGlobalSysPrivilege(context); return new ShowLoadedModelsTask(node.getDeviceIdList()); } @Override - protected IConfigTask visitShowAIDevices(ShowAIDevices node, MPPQueryContext context) { + public IConfigTask visitShowAIDevices(ShowAIDevices node, MPPQueryContext context) { context.setQueryType(QueryType.READ); return new ShowAIDevicesTask(); } @Override - protected IConfigTask visitLoadModel(LoadModel node, MPPQueryContext context) { + public IConfigTask visitLoadModel(LoadModel node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new LoadModelTask(node.getModelId(), node.getDeviceIdList()); } @Override - protected IConfigTask visitUnloadModel(UnloadModel node, MPPQueryContext context) { + public IConfigTask visitUnloadModel(UnloadModel node, MPPQueryContext context) { context.setQueryType(QueryType.OTHER); accessControl.checkUserGlobalSysPrivilege(context); return new UnloadModelTask(node.getModelId(), node.getDeviceIdList()); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java index 4e33c8240b449..7dd36850bb194 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java @@ -22,12 +22,12 @@ import org.apache.iotdb.common.rpc.thrift.Model; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.audit.UserEntity; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.exception.auth.AccessDeniedException; import org.apache.iotdb.commons.executable.ExecutableManager; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.pipe.config.constant.SystemConstant; import org.apache.iotdb.db.auth.AuthorityChecker; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.execution.config.metadata.AlterEncodingCompressorTask; import org.apache.iotdb.db.queryengine.plan.execution.config.metadata.AlterTimeSeriesTask; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/ClusterConfigTaskExecutor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/ClusterConfigTaskExecutor.java index 5325560301c64..87c3c1428d8cf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/ClusterConfigTaskExecutor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/ClusterConfigTaskExecutor.java @@ -57,6 +57,7 @@ import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.executable.ExecutableManager; import org.apache.iotdb.commons.executable.ExecutableResource; import org.apache.iotdb.commons.path.MeasurementPath; @@ -73,6 +74,9 @@ import org.apache.iotdb.commons.pipe.datastructure.visibility.Visibility; import org.apache.iotdb.commons.pipe.datastructure.visibility.VisibilityUtils; import org.apache.iotdb.commons.pipe.sink.payload.airgap.AirGapPseudoTPipeTransferRequest; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.commons.schema.cache.CacheClearOptions; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; @@ -179,7 +183,6 @@ import org.apache.iotdb.db.exception.ainode.AINodeConnectionException; import org.apache.iotdb.db.exception.metadata.PathNotExistException; import org.apache.iotdb.db.exception.metadata.SchemaQuotaExceededException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.pipe.agent.PipeDataNodeAgent; import org.apache.iotdb.db.pipe.source.dataregion.DataRegionListeningFilter; import org.apache.iotdb.db.protocol.client.ConfigNodeClient; @@ -191,7 +194,6 @@ import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.common.schematree.ISchemaTree; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; @@ -311,7 +313,6 @@ import org.apache.iotdb.db.queryengine.plan.statement.sys.quota.SetThrottleQuotaStatement; import org.apache.iotdb.db.queryengine.plan.statement.sys.quota.ShowSpaceQuotaStatement; import org.apache.iotdb.db.queryengine.plan.statement.sys.quota.ShowThrottleQuotaStatement; -import org.apache.iotdb.db.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.db.schemaengine.SchemaEngine; import org.apache.iotdb.db.schemaengine.rescon.DataNodeSchemaQuotaManager; import org.apache.iotdb.db.schemaengine.table.InformationSchemaUtils; @@ -386,6 +387,7 @@ import java.util.function.Predicate; import java.util.stream.Collectors; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.ROOT; import static org.apache.iotdb.commons.conf.IoTDBConstant.MAX_DATABASE_NAME_LENGTH; import static org.apache.iotdb.commons.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD; import static org.apache.iotdb.commons.schema.SchemaConstant.ALL_MATCH_SCOPE; @@ -393,7 +395,6 @@ import static org.apache.iotdb.db.protocol.client.ConfigNodeClient.MSG_RECONNECTION_FAIL; import static org.apache.iotdb.db.queryengine.common.header.DatasetHeaderFactory.getShowExternalServiceHeader; import static org.apache.iotdb.db.queryengine.plan.execution.config.metadata.externalservice.ShowExternalServiceTask.appendServiceEntry; -import static org.apache.iotdb.db.utils.constant.SqlConstant.ROOT; import static org.apache.iotdb.udf.api.type.Type.OBJECT; public class ClusterConfigTaskExecutor implements IConfigTaskExecutor { @@ -1627,7 +1628,7 @@ public SettableFuture showCurrentSqlDialect(final String sqlDi } @Override - public SettableFuture setSqlDialect(IClientSession.SqlDialect sqlDialect) { + public SettableFuture setSqlDialect(SqlDialect sqlDialect) { final SettableFuture future = SettableFuture.create(); try { SessionManager.getInstance().getCurrSession().setSqlDialectAndClean(sqlDialect); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/IConfigTaskExecutor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/IConfigTaskExecutor.java index 9e02ba6cff7f4..32f63d61a2771 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/IConfigTaskExecutor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/executor/IConfigTaskExecutor.java @@ -24,6 +24,8 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.common.rpc.thrift.TSetConfigurationReq; import org.apache.iotdb.commons.cluster.NodeStatus; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; import org.apache.iotdb.commons.schema.cache.CacheClearOptions; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; @@ -33,7 +35,6 @@ import org.apache.iotdb.confignode.rpc.thrift.TThrottleQuotaResp; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.execution.config.ConfigTaskResult; import org.apache.iotdb.db.queryengine.plan.execution.config.metadata.region.ExtendRegionTask; import org.apache.iotdb.db.queryengine.plan.execution.config.metadata.region.MigrateRegionTask; @@ -445,7 +446,7 @@ SettableFuture createTableView( SettableFuture showCurrentSqlDialect(String sqlDialect); - SettableFuture setSqlDialect(IClientSession.SqlDialect sqlDialect); + SettableFuture setSqlDialect(SqlDialect sqlDialect); SettableFuture showCurrentUser(String currentUser); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/GetTimeSlotListTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/GetTimeSlotListTask.java index 7bdd850bd0853..2e0037e91e07a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/GetTimeSlotListTask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/GetTimeSlotListTask.java @@ -20,6 +20,7 @@ package org.apache.iotdb.db.queryengine.plan.execution.config.metadata; import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.utils.TimePartitionUtils; @@ -30,7 +31,6 @@ import org.apache.iotdb.db.queryengine.plan.execution.config.IConfigTask; import org.apache.iotdb.db.queryengine.plan.execution.config.executor.IConfigTaskExecutor; import org.apache.iotdb.db.queryengine.plan.statement.metadata.GetTimeSlotListStatement; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.iotdb.rpc.TSStatusCode; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowFunctionsTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowFunctionsTask.java index 608cc0b284efe..d9fcf3a979c76 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowFunctionsTask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowFunctionsTask.java @@ -20,6 +20,11 @@ package org.apache.iotdb.db.queryengine.plan.execution.config.metadata; import org.apache.iotdb.common.rpc.thrift.Model; +import org.apache.iotdb.commons.queryengine.plan.relational.function.TableBuiltinTableFunction; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinAggregationFunction; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinScalarFunction; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinTimeSeriesGeneratingFunction; +import org.apache.iotdb.commons.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.udf.UDFInformation; @@ -31,11 +36,6 @@ import org.apache.iotdb.db.queryengine.plan.execution.config.ConfigTaskResult; import org.apache.iotdb.db.queryengine.plan.execution.config.IConfigTask; import org.apache.iotdb.db.queryengine.plan.execution.config.executor.IConfigTaskExecutor; -import org.apache.iotdb.db.queryengine.plan.relational.function.TableBuiltinTableFunction; -import org.apache.iotdb.db.queryengine.plan.udf.BuiltinAggregationFunction; -import org.apache.iotdb.db.queryengine.plan.udf.BuiltinScalarFunction; -import org.apache.iotdb.db.queryengine.plan.udf.BuiltinTimeSeriesGeneratingFunction; -import org.apache.iotdb.db.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.db.queryengine.plan.udf.TreeUDFUtils; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowRegionTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowRegionTask.java index f13df675a013c..83289ba8cded3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowRegionTask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/ShowRegionTask.java @@ -20,6 +20,7 @@ package org.apache.iotdb.db.queryengine.plan.execution.config.metadata; import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.utils.FileUtils; @@ -32,7 +33,6 @@ import org.apache.iotdb.db.queryengine.plan.execution.config.IConfigTask; import org.apache.iotdb.db.queryengine.plan.execution.config.executor.IConfigTaskExecutor; import org.apache.iotdb.db.queryengine.plan.statement.metadata.ShowRegionStatement; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.iotdb.db.utils.MathUtils; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/relational/DeleteDeviceTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/relational/DeleteDeviceTask.java index 0ab31dda196a7..b21cac77466b5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/relational/DeleteDeviceTask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/relational/DeleteDeviceTask.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.queryengine.plan.execution.config.metadata.relational; import org.apache.iotdb.commons.conf.IoTDBConstant; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; import org.apache.iotdb.commons.schema.column.ColumnHeader; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; import org.apache.iotdb.db.queryengine.plan.execution.config.ConfigTaskResult; import org.apache.iotdb.db.queryengine.plan.execution.config.IConfigTask; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/relational/ShowCreateViewTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/relational/ShowCreateViewTask.java index f4a8578c1e7e2..42f6397083a41 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/relational/ShowCreateViewTask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/relational/ShowCreateViewTask.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.execution.config.metadata.relational; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.table.TreeViewSchema; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; import org.apache.iotdb.db.queryengine.common.header.DatasetHeaderFactory; import org.apache.iotdb.db.queryengine.plan.execution.config.ConfigTaskResult; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/PrepareTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/PrepareTask.java index c83808f4cecaf..89295bed6677a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/PrepareTask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/PrepareTask.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.execution.config.session; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.queryengine.plan.execution.config.ConfigTaskResult; import org.apache.iotdb.db.queryengine.plan.execution.config.IConfigTask; import org.apache.iotdb.db.queryengine.plan.execution.config.executor.IConfigTaskExecutor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.rpc.TSStatusCode; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/PreparedStatementHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/PreparedStatementHelper.java index cade26c08320d..6ac494a6a58cc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/PreparedStatementHelper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/PreparedStatementHelper.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.execution.config.session; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.PreparedStatementInfo; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; /** Helper for prepared statement registration/unregistration. */ public class PreparedStatementHelper { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/PreparedStatementMemoryManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/PreparedStatementMemoryManager.java index 9d5a3fb098e5c..e0d318fce75b8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/PreparedStatementMemoryManager.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/PreparedStatementMemoryManager.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.execution.config.session; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.memory.IMemoryBlock; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.PreparedStatementInfo; import org.apache.iotdb.db.queryengine.plan.Coordinator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/SetSqlDialectTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/SetSqlDialectTask.java index df4e3d3c641f3..693fc4a1c7cf5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/SetSqlDialectTask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/session/SetSqlDialectTask.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.execution.config.session; -import org.apache.iotdb.db.protocol.session.IClientSession; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; import org.apache.iotdb.db.queryengine.plan.execution.config.ConfigTaskResult; import org.apache.iotdb.db.queryengine.plan.execution.config.IConfigTask; import org.apache.iotdb.db.queryengine.plan.execution.config.executor.IConfigTaskExecutor; @@ -27,9 +27,9 @@ import com.google.common.util.concurrent.ListenableFuture; public class SetSqlDialectTask implements IConfigTask { - private final IClientSession.SqlDialect sqlDialect; + private final SqlDialect sqlDialect; - public SetSqlDialectTask(IClientSession.SqlDialect sqlDialect) { + public SetSqlDialectTask(SqlDialect sqlDialect) { this.sqlDialect = sqlDialect; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/sys/pipe/ShowPipeTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/sys/pipe/ShowPipeTask.java index 09b925d3978c1..d204cd048022b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/sys/pipe/ShowPipeTask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/sys/pipe/ShowPipeTask.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.execution.config.sys.pipe; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.confignode.rpc.thrift.TShowPipeInfo; @@ -30,7 +31,6 @@ import org.apache.iotdb.db.queryengine.plan.execution.config.executor.IConfigTaskExecutor; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowPipes; import org.apache.iotdb.db.queryengine.plan.statement.metadata.pipe.ShowPipesStatement; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.iotdb.rpc.TSStatusCode; import com.google.common.util.concurrent.ListenableFuture; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/memory/StatementMemorySourceVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/memory/StatementMemorySourceVisitor.java index 4dd481d847c05..3e5ef4bd90706 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/memory/StatementMemorySourceVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/memory/StatementMemorySourceVisitor.java @@ -23,6 +23,7 @@ import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.node.MNodeType; @@ -31,7 +32,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.distribution.DistributionPlanner; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.statement.StatementNode; import org.apache.iotdb.db.queryengine.plan.statement.StatementVisitor; import org.apache.iotdb.db.queryengine.plan.statement.metadata.CountDevicesStatement; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/memory/TableModelStatementMemorySourceVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/memory/TableModelStatementMemorySourceVisitor.java index 932d941979223..39b771c45c327 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/memory/TableModelStatementMemorySourceVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/memory/TableModelStatementMemorySourceVisitor.java @@ -20,14 +20,16 @@ package org.apache.iotdb.db.queryengine.plan.execution.memory; import org.apache.iotdb.commons.conf.IoTDBConstant; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanner; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.TableLogicalPlanner; import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanGenerator; @@ -35,9 +37,7 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CountDevice; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Explain; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDevice; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; @@ -56,7 +56,7 @@ import static org.apache.iotdb.db.queryengine.plan.execution.memory.StatementMemorySourceVisitor.getStatementMemorySource; public class TableModelStatementMemorySourceVisitor - extends AstVisitor { + implements AstVisitor { @Override public StatementMemorySource visitNode( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/Expression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/Expression.java index 9b89a122b06d4..14982238008fe 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/Expression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/Expression.java @@ -19,8 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.expression; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.expression.binary.AdditionExpression; import org.apache.iotdb.db.queryengine.plan.expression.binary.DivisionExpression; import org.apache.iotdb.db.queryengine.plan.expression.binary.EqualToExpression; @@ -50,10 +52,8 @@ import org.apache.iotdb.db.queryengine.plan.expression.unary.NegationExpression; import org.apache.iotdb.db.queryengine.plan.expression.unary.RegularExpression; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.statement.StatementNode; import org.apache.iotdb.db.queryengine.transformation.dag.memory.LayerMemoryAssigner; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.Accountable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/ExpressionFactory.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/ExpressionFactory.java index b45a90c5b8026..f0d8a2cd0b805 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/ExpressionFactory.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/ExpressionFactory.java @@ -23,6 +23,7 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinTimeSeriesGeneratingFunction; import org.apache.iotdb.db.queryengine.plan.expression.binary.AdditionExpression; import org.apache.iotdb.db.queryengine.plan.expression.binary.EqualToExpression; import org.apache.iotdb.db.queryengine.plan.expression.binary.GreaterEqualExpression; @@ -45,7 +46,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.unary.LogicNotExpression; import org.apache.iotdb.db.queryengine.plan.expression.unary.RegularExpression; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; -import org.apache.iotdb.db.queryengine.plan.udf.BuiltinTimeSeriesGeneratingFunction; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.TimeDuration; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/binary/BinaryExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/binary/BinaryExpression.java index 39189759a60f1..d5485afa83265 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/binary/BinaryExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/binary/BinaryExpression.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.expression.binary; -import org.apache.iotdb.db.queryengine.common.NodeRef; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; +import org.apache.iotdb.commons.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.transformation.dag.memory.LayerMemoryAssigner; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/ConstantOperand.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/ConstantOperand.java index f4527cdc755a3..e954723f306fb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/ConstantOperand.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/ConstantOperand.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.expression.leaf; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.transformation.dag.memory.LayerMemoryAssigner; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/LeafOperand.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/LeafOperand.java index 31d8aa4ff07a0..4608cecd0bcf6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/LeafOperand.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/LeafOperand.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.expression.leaf; -import org.apache.iotdb.db.queryengine.common.NodeRef; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; +import org.apache.iotdb.commons.queryengine.common.NodeRef; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/NullOperand.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/NullOperand.java index 4e2781a133c5e..771a3bd32650f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/NullOperand.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/NullOperand.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.expression.leaf; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.transformation.dag.memory.LayerMemoryAssigner; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimeSeriesOperand.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimeSeriesOperand.java index 4ce4c00fe4c6c..a6f1e98746848 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimeSeriesOperand.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimeSeriesOperand.java @@ -21,10 +21,10 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.transformation.dag.memory.LayerMemoryAssigner; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimestampOperand.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimestampOperand.java index 6c817a203363b..b138d4de55011 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimestampOperand.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/leaf/TimestampOperand.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.expression.leaf; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.transformation.dag.memory.LayerMemoryAssigner; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/FunctionExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/FunctionExpression.java index aef4a199c390e..f977a24a1bb33 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/FunctionExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/FunctionExpression.java @@ -19,21 +19,22 @@ package org.apache.iotdb.db.queryengine.plan.expression.multi; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.common.NodeRef; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.expression.multi.FunctionType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinAggregationFunction; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinScalarFunction; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.BuiltInScalarFunctionHelperFactory; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; -import org.apache.iotdb.db.queryengine.plan.udf.BuiltinAggregationFunction; -import org.apache.iotdb.db.queryengine.plan.udf.BuiltinScalarFunction; import org.apache.iotdb.db.queryengine.plan.udf.TreeUDFUtils; import org.apache.iotdb.db.queryengine.transformation.dag.memory.LayerMemoryAssigner; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFInformationInferrer; import org.apache.iotdb.udf.api.customizer.strategy.AccessStrategy; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/BuiltInScalarFunctionHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/BuiltInScalarFunctionHelper.java index 621b06660a886..45e6d3e6aab47 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/BuiltInScalarFunctionHelper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/BuiltInScalarFunctionHelper.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.expression.multi.builtin; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.Transformer; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/CastFunctionHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/CastFunctionHelper.java index 9a610ba05fc77..e6c2c509df20e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/CastFunctionHelper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/CastFunctionHelper.java @@ -19,37 +19,25 @@ package org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.helper; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.common.SessionInfo; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.CastFunctionColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; import org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.BuiltInScalarFunctionHelper; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.CastFunctionColumnTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.Transformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.scalar.CastFunctionTransformer; -import org.apache.iotdb.db.utils.DateTimeUtils; -import org.apache.tsfile.common.conf.TSFileConfig; import org.apache.tsfile.enums.TSDataType; -import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.read.common.type.TypeFactory; -import org.apache.tsfile.utils.Binary; -import org.apache.tsfile.utils.BytesUtils; -import org.apache.tsfile.utils.DateUtils; - -import javax.annotation.Nonnull; import java.time.ZoneId; -import java.time.format.DateTimeParseException; import java.util.Map; -import static org.apache.iotdb.db.utils.constant.SqlConstant.CAST_TYPE; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.CAST_TYPE; public class CastFunctionHelper implements BuiltInScalarFunctionHelper { - public static final String ERROR_MSG = "Unsupported target dataType: %s"; - @Override public void checkBuiltInScalarFunctionInputDataType(TSDataType tsDataType) throws SemanticException { @@ -88,319 +76,4 @@ public void appendFunctionAttributes( builder.append(" AS "); builder.append(functionAttributes.entrySet().iterator().next().getValue()); } - - public static int castLongToInt(long value) { - if (value > Integer.MAX_VALUE || value < Integer.MIN_VALUE) { - throw new SemanticException( - String.format("long value %d is out of range of integer value.", value)); - } - return (int) value; - } - - public static int castFloatToInt(float value) { - if (value > Integer.MAX_VALUE || value < Integer.MIN_VALUE) { - throw new SemanticException( - String.format("Float value %f is out of range of integer value.", value)); - } - return Math.round(value); - } - - public static long castFloatToLong(float value) { - if (value > Long.MAX_VALUE || value < Long.MIN_VALUE) { - throw new SemanticException( - String.format("Float value %f is out of range of long value.", value)); - } - return Math.round((double) value); - } - - public static int castDoubleToInt(double value) { - if (value > Integer.MAX_VALUE || value < Integer.MIN_VALUE) { - throw new SemanticException( - String.format("Double value %f is out of range of integer value.", value)); - } - return Math.round((float) value); - } - - public static long castDoubleToLong(double value) { - if (value > Long.MAX_VALUE || value < Long.MIN_VALUE) { - throw new SemanticException( - String.format("Double value %f is out of range of long value.", value)); - } - return Math.round(value); - } - - public static float castDoubleToFloat(double value) { - if (value > Float.MAX_VALUE || value < -Float.MAX_VALUE) { - throw new SemanticException( - String.format("Double value %f is out of range of float value.", value)); - } - return (float) value; - } - - public static float castTextToFloat(String value) { - float f = Float.parseFloat(value); - if (f == Float.POSITIVE_INFINITY || f == Float.NEGATIVE_INFINITY) { - throw new SemanticException( - String.format("Text value %s is out of range of float value.", value)); - } - return f; - } - - public static double castTextToDouble(String value) { - double d = Double.parseDouble(value); - if (d == Double.POSITIVE_INFINITY || d == Double.NEGATIVE_INFINITY) { - throw new SemanticException( - String.format("Text value %s is out of range of double value.", value)); - } - return d; - } - - public static boolean castTextToBoolean(String value) { - String lowerCase = value.toLowerCase(); - if (lowerCase.equals("true")) { - return true; - } else if (lowerCase.equals("false")) { - return false; - } else { - throw new SemanticException(String.format("Invalid text input for boolean type: %s", value)); - } - } - - // used by IrExpressionInterpreter to do constant folding - public static Object cast( - @Nonnull Object value, Type sourceType, Type targetType, SessionInfo session) { - switch (sourceType.getTypeEnum()) { - case INT32: - int intV = value instanceof Integer ? (int) value : ((Long) value).intValue(); - return castInt(intV, targetType); - case DATE: - int dateV = value instanceof Integer ? (int) value : ((Long) value).intValue(); - return castDate(dateV, targetType, session.getZoneId()); - case INT64: - long longV = (Long) value; - return castLong(longV, targetType); - case TIMESTAMP: - long timestampV = (Long) value; - return castTimestamp(timestampV, targetType, session.getZoneId()); - case FLOAT: - float floatV = value instanceof Float ? (float) value : ((Double) value).floatValue(); - return castFloat(floatV, targetType); - case DOUBLE: - double doubleV = (Double) value; - return castDouble(doubleV, targetType); - case BOOLEAN: - boolean boolV = (Boolean) value; - return castBool(boolV, targetType); - case TEXT: - case STRING: - case BLOB: - Binary binaryV = (Binary) value; - return castBinary(binaryV, targetType, session.getZoneId()); - default: - throw new UnsupportedOperationException( - String.format("Unsupported source dataType: %s", sourceType.getTypeEnum())); - } - } - - private static Object castInt(int value, Type targetType) { - switch (targetType.getTypeEnum()) { - case INT32: - case DATE: - return value; - case INT64: - case TIMESTAMP: - return (long) value; - case FLOAT: - return (float) value; - case DOUBLE: - return (double) value; - case BOOLEAN: - return value != 0; - case TEXT: - case STRING: - return BytesUtils.valueOf(String.valueOf(value)); - case BLOB: - return new Binary(BytesUtils.intToBytes(value)); - default: - throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); - } - } - - private static Object castDate(int value, Type targetType, ZoneId zoneId) { - switch (targetType.getTypeEnum()) { - case INT32: - case DATE: - return value; - case INT64: - return (long) value; - case TIMESTAMP: - return DateTimeUtils.correctPrecision(DateUtils.parseIntToTimestamp(value, zoneId)); - case FLOAT: - return (float) value; - case DOUBLE: - return (double) value; - case BOOLEAN: - return value != 0; - case TEXT: - case STRING: - return BytesUtils.valueOf(DateUtils.formatDate(value)); - case BLOB: - return new Binary(BytesUtils.intToBytes(value)); - default: - throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); - } - } - - private static Object castLong(long value, Type targetType) { - switch (targetType.getTypeEnum()) { - case INT32: - case DATE: - return CastFunctionHelper.castLongToInt(value); - case INT64: - case TIMESTAMP: - return value; - case FLOAT: - return (float) value; - case DOUBLE: - return (double) value; - case BOOLEAN: - return value != 0L; - case TEXT: - case STRING: - return BytesUtils.valueOf(String.valueOf(value)); - case BLOB: - return new Binary(BytesUtils.longToBytes(value)); - default: - throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); - } - } - - private static Object castTimestamp(long value, Type targetType, ZoneId zoneId) { - switch (targetType.getTypeEnum()) { - case INT32: - return CastFunctionHelper.castLongToInt(value); - case DATE: - return DateUtils.parseDateExpressionToInt(DateTimeUtils.convertToLocalDate(value, zoneId)); - case INT64: - case TIMESTAMP: - return value; - case FLOAT: - return (float) value; - case DOUBLE: - return (double) value; - case BOOLEAN: - return value != 0L; - case TEXT: - case STRING: - return BytesUtils.valueOf(DateTimeUtils.convertLongToDate(value, zoneId)); - case BLOB: - return new Binary(BytesUtils.longToBytes(value)); - default: - throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); - } - } - - private static Object castFloat(float value, Type targetType) { - switch (targetType.getTypeEnum()) { - case INT32: - case DATE: - return CastFunctionHelper.castFloatToInt(value); - case INT64: - case TIMESTAMP: - return CastFunctionHelper.castFloatToLong(value); - case FLOAT: - return value; - case DOUBLE: - return (double) value; - case BOOLEAN: - return value != 0.0f; - case TEXT: - case STRING: - return BytesUtils.valueOf(String.valueOf(value)); - case BLOB: - return new Binary(BytesUtils.floatToBytes(value)); - default: - throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); - } - } - - private static Object castDouble(double value, Type targetType) { - switch (targetType.getTypeEnum()) { - case INT32: - case DATE: - return CastFunctionHelper.castDoubleToInt(value); - case INT64: - case TIMESTAMP: - return CastFunctionHelper.castDoubleToLong(value); - case FLOAT: - return CastFunctionHelper.castDoubleToFloat(value); - case DOUBLE: - return value; - case BOOLEAN: - return value != 0.0d; - case TEXT: - case STRING: - return BytesUtils.valueOf(String.valueOf(value)); - case BLOB: - return new Binary(BytesUtils.doubleToBytes(value)); - default: - throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); - } - } - - private static Object castBool(boolean value, Type targetType) { - switch (targetType.getTypeEnum()) { - case INT32: - case DATE: - return value ? 1 : 0; - case INT64: - case TIMESTAMP: - return value ? 1L : 0L; - case FLOAT: - return value ? 1.0f : 0.0f; - case DOUBLE: - return value ? 1.0d : 0.0d; - case BOOLEAN: - return value; - case TEXT: - case STRING: - return BytesUtils.valueOf(String.valueOf(value)); - case BLOB: - return new Binary(BytesUtils.boolToBytes(value)); - default: - throw new UnsupportedOperationException(String.format(ERROR_MSG, targetType.getTypeEnum())); - } - } - - private static Object castBinary(Binary value, Type targetType, ZoneId zoneId) { - String stringValue = value.getStringValue(TSFileConfig.STRING_CHARSET); - try { - switch (targetType.getTypeEnum()) { - case INT32: - return Integer.parseInt(stringValue); - case DATE: - return DateUtils.parseDateExpressionToInt(stringValue); - case INT64: - return Long.parseLong(stringValue); - case TIMESTAMP: - return DateTimeUtils.convertDatetimeStrToLong(stringValue, zoneId); - case FLOAT: - return CastFunctionHelper.castTextToFloat(stringValue); - case DOUBLE: - return CastFunctionHelper.castTextToDouble(stringValue); - case BOOLEAN: - return CastFunctionHelper.castTextToBoolean(stringValue); - case TEXT: - case STRING: - case BLOB: - return value; - default: - throw new UnsupportedOperationException( - String.format(ERROR_MSG, targetType.getTypeEnum())); - } - } catch (DateTimeParseException | NumberFormatException e) { - throw new SemanticException( - String.format("Cannot cast %s to %s type", stringValue, targetType.getDisplayName())); - } - } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/DiffFunctionHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/DiffFunctionHelper.java index 858d21ecad8bb..0c2c65d4af112 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/DiffFunctionHelper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/DiffFunctionHelper.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.helper; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DiffFunctionColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; import org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.BuiltInScalarFunctionHelper; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DiffFunctionColumnTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.Transformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.scalar.DiffFunctionTransformer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/ReplaceFunctionHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/ReplaceFunctionHelper.java index af28d6cc857f8..1877aa38d793f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/ReplaceFunctionHelper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/ReplaceFunctionHelper.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.helper; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.ReplaceFunctionColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; import org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.BuiltInScalarFunctionHelper; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.ReplaceFunctionColumnTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.Transformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.scalar.ReplaceFunctionTransformer; @@ -33,8 +33,8 @@ import java.util.Map; -import static org.apache.iotdb.db.utils.constant.SqlConstant.REPLACE_FROM; -import static org.apache.iotdb.db.utils.constant.SqlConstant.REPLACE_TO; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.REPLACE_FROM; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.REPLACE_TO; public class ReplaceFunctionHelper implements BuiltInScalarFunctionHelper { @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/RoundFunctionHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/RoundFunctionHelper.java index 0a4a8bf4a738d..80c74e37782d2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/RoundFunctionHelper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/RoundFunctionHelper.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.helper; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.RoundFunctionColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; import org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.BuiltInScalarFunctionHelper; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.RoundFunctionColumnTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.Transformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.scalar.RoundFunctionTransformer; @@ -33,8 +33,8 @@ import java.util.Map; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.ROUND_PLACES; import static org.apache.iotdb.db.queryengine.plan.parser.ASTVisitor.checkFunctionExpressionInputSize; -import static org.apache.iotdb.db.utils.constant.SqlConstant.ROUND_PLACES; public class RoundFunctionHelper implements BuiltInScalarFunctionHelper { @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/SubStringFunctionHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/SubStringFunctionHelper.java index 7d9490ac75983..04aa409391885 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/SubStringFunctionHelper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/builtin/helper/SubStringFunctionHelper.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.helper; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; import org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.BuiltInScalarFunctionHelper; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.Transformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.scalar.SubStringFunctionColumnTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.scalar.SubStringFunctionTransformer; @@ -34,11 +34,11 @@ import java.util.LinkedHashMap; import java.util.Map; -import static org.apache.iotdb.db.utils.constant.SqlConstant.SUBSTRING_FOR; -import static org.apache.iotdb.db.utils.constant.SqlConstant.SUBSTRING_FROM; -import static org.apache.iotdb.db.utils.constant.SqlConstant.SUBSTRING_IS_STANDARD; -import static org.apache.iotdb.db.utils.constant.SqlConstant.SUBSTRING_LENGTH; -import static org.apache.iotdb.db.utils.constant.SqlConstant.SUBSTRING_START; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.SUBSTRING_FOR; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.SUBSTRING_FROM; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.SUBSTRING_IS_STANDARD; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.SUBSTRING_LENGTH; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.SUBSTRING_START; public class SubStringFunctionHelper implements BuiltInScalarFunctionHelper { public static final String BLANK_STRING = " "; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/other/CaseWhenThenExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/other/CaseWhenThenExpression.java index c0a30bb685430..60c7c2b8bcc91 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/other/CaseWhenThenExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/other/CaseWhenThenExpression.java @@ -19,16 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.expression.other; -import org.apache.iotdb.db.queryengine.common.NodeRef; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; +import org.apache.iotdb.commons.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.binary.WhenThenExpression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.NullOperand; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.transformation.dag.memory.LayerMemoryAssigner; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.external.commons.lang3.Validate; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/other/GroupByTimeExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/other/GroupByTimeExpression.java index 4ee3c174bc4b5..fb33b9670ce41 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/other/GroupByTimeExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/other/GroupByTimeExpression.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.expression.other; -import org.apache.iotdb.db.queryengine.common.NodeRef; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; +import org.apache.iotdb.commons.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.transformation.dag.memory.LayerMemoryAssigner; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/ternary/BetweenExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/ternary/BetweenExpression.java index 00b307df3409c..6f3d944f7e8ff 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/ternary/BetweenExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/ternary/BetweenExpression.java @@ -21,7 +21,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.ternary; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/ternary/TernaryExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/ternary/TernaryExpression.java index 3fb533a9f00f0..17bb1e5a965b8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/ternary/TernaryExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/ternary/TernaryExpression.java @@ -21,12 +21,12 @@ package org.apache.iotdb.db.queryengine.plan.expression.ternary; -import org.apache.iotdb.db.queryengine.common.NodeRef; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; +import org.apache.iotdb.commons.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.transformation.dag.memory.LayerMemoryAssigner; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/InExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/InExpression.java index 0ace411cd94ef..394a1c0723de6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/InExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/InExpression.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.unary; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/IsNullExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/IsNullExpression.java index 9542b29e2da8f..948174ee7a6f7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/IsNullExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/IsNullExpression.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.unary; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/LikeExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/LikeExpression.java index f9cdf0427bf0e..f000eccd39e49 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/LikeExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/LikeExpression.java @@ -19,8 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.unary; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; @@ -149,12 +148,4 @@ public long ramBytesUsed() { + MemoryEstimationHelper.getEstimatedSizeOfAccountableObject(expression) + RamUsageEstimator.sizeOf(pattern); } - - public static Optional getEscapeCharacter(String escape) { - if (escape.length() == 1) { - return Optional.of(escape.charAt(0)); - } else { - throw new SemanticException("Escape string must be a single character"); - } - } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/LogicNotExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/LogicNotExpression.java index 9797376e54588..05e967c791b22 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/LogicNotExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/LogicNotExpression.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.unary; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/NegationExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/NegationExpression.java index d496a05c2617a..249fca1bcc760 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/NegationExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/NegationExpression.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.unary; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/RegularExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/RegularExpression.java index 06194ef5bc776..9882388d17f96 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/RegularExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/RegularExpression.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.unary; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/UnaryExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/UnaryExpression.java index 8b0689299ffcb..2056dec437c0b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/UnaryExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/unary/UnaryExpression.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.expression.unary; -import org.apache.iotdb.db.queryengine.common.NodeRef; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; +import org.apache.iotdb.commons.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ExpressionVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.transformation.dag.memory.LayerMemoryAssigner; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/BindTypeForTimeSeriesOperandVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/BindTypeForTimeSeriesOperandVisitor.java index 13df1ff2c2bd8..759d8457c4fda 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/BindTypeForTimeSeriesOperandVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/BindTypeForTimeSeriesOperandVisitor.java @@ -20,9 +20,9 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.schema.column.ColumnHeader; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.LeafOperand; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/ColumnTransformerVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/ColumnTransformerVisitor.java index 9bdee1e4788b3..2f094fd820627 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/ColumnTransformerVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/ColumnTransformerVisitor.java @@ -19,7 +19,39 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor; -import org.apache.iotdb.db.queryengine.common.NodeRef; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.TreeCaseWhenThenColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.ArithmeticAdditionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.ArithmeticDivisionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.ArithmeticModuloColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.ArithmeticMultiplicationColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.ArithmeticSubtractionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareEqualToColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareGreaterEqualColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareGreaterThanColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareLessEqualColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareLessThanColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareNonEqualColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.LogicAndColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.LogicOrColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.LongDivisionLongColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.LongModulusLongColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.ConstantColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.IdentityColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.NullColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.TimeColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.multi.MappableUDFColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ternary.BetweenColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.ArithmeticNegationColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.InColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.IsNullColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.LikeColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.LogicNotColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.RegularColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; +import org.apache.iotdb.commons.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.binary.BinaryExpression; @@ -38,39 +70,7 @@ import org.apache.iotdb.db.queryengine.plan.expression.unary.LikeExpression; import org.apache.iotdb.db.queryengine.plan.expression.unary.RegularExpression; import org.apache.iotdb.db.queryengine.plan.expression.unary.UnaryExpression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.TreeCaseWhenThenColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.ArithmeticAdditionColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.ArithmeticDivisionColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.ArithmeticModuloColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.ArithmeticMultiplicationColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.ArithmeticSubtractionColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareEqualToColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareGreaterEqualColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareGreaterThanColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareLessEqualColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareLessThanColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareNonEqualColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.LogicAndColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.LogicOrColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.LongDivisionLongColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.LongModulusLongColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.ConstantColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.IdentityColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.LeafColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.NullColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.TimeColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.multi.MappableUDFColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ternary.BetweenColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.ArithmeticNegationColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.InColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.IsNullColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.LikeColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.LogicNotColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.RegularColumnTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFContext; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils; import org.apache.tsfile.common.regexp.LikePattern; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/CompleteMeasurementSchemaVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/CompleteMeasurementSchemaVisitor.java index f8bb7b8dbe7bd..bac3b533f0c7d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/CompleteMeasurementSchemaVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/CompleteMeasurementSchemaVisitor.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.db.exception.metadata.view.BrokenViewException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.schematree.ISchemaTree; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.binary.BinaryExpression; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/CountTimeAggregationAmountVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/CountTimeAggregationAmountVisitor.java index 1a573f856c26e..1c9b0fbedd33b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/CountTimeAggregationAmountVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/CountTimeAggregationAmountVisitor.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.LeafOperand; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; @@ -27,7 +27,7 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT_TIME; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT_TIME; public class CountTimeAggregationAmountVisitor extends CollectVisitor { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/IntermediateLayerVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/IntermediateLayerVisitor.java index b2ab7c6e10f95..014c19ac95716 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/IntermediateLayerVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/IntermediateLayerVisitor.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.queryengine.common.NodeRef; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; +import org.apache.iotdb.commons.queryengine.common.NodeRef; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.binary.BinaryExpression; @@ -72,7 +73,6 @@ import org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.RegularTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.TransparentTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFContext; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.udf.api.customizer.strategy.AccessStrategy; import org.apache.tsfile.common.regexp.LikePattern; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/ReconstructVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/ReconstructVisitor.java index 94e2022637558..5bce5752adfd6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/ReconstructVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/ReconstructVisitor.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.binary.BinaryExpression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.LeafOperand; @@ -26,7 +27,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.other.CaseWhenThenExpression; import org.apache.iotdb.db.queryengine.plan.expression.ternary.TernaryExpression; import org.apache.iotdb.db.queryengine.plan.expression.unary.UnaryExpression; -import org.apache.iotdb.db.utils.constant.SqlConstant; import java.util.ArrayList; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/BindSchemaForExpressionVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/BindSchemaForExpressionVisitor.java index a26863e5a4e33..6802023cc0d08 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/BindSchemaForExpressionVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/BindSchemaForExpressionVisitor.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor.cartesian; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.schema.view.LogicalViewSchema; @@ -33,7 +34,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; import org.apache.iotdb.db.queryengine.plan.expression.visitor.CompleteMeasurementSchemaVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.view.visitor.TransformToExpressionVisitor; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.tsfile.external.commons.lang3.Validate; import org.apache.tsfile.write.schema.IMeasurementSchema; @@ -44,10 +44,10 @@ import java.util.List; import java.util.stream.Collectors; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT_TIME; import static org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils.cartesianProduct; import static org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils.reconstructFunctionExpressionsWithMemoryCheck; import static org.apache.iotdb.db.utils.TypeInferenceUtils.bindTypeForBuiltinAggregationNonSeriesInputExpressions; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT_TIME; public class BindSchemaForExpressionVisitor extends CartesianProductVisitor { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/BindSchemaForPredicateVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/BindSchemaForPredicateVisitor.java index 71691cd79e651..fcb426dd97a5a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/BindSchemaForPredicateVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/BindSchemaForPredicateVisitor.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor.cartesian; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; @@ -31,7 +32,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimestampOperand; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.tsfile.external.commons.lang3.Validate; @@ -41,13 +41,13 @@ import java.util.List; import java.util.stream.Collectors; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT_TIME; import static org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils.cartesianProduct; import static org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils.reconstructBinaryExpressionsWithMemoryCheck; import static org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils.reconstructFunctionExpressionsWithMemoryCheck; import static org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils.reconstructTimeSeriesOperandsWithMemoryCheck; import static org.apache.iotdb.db.queryengine.plan.expression.visitor.cartesian.BindSchemaForExpressionVisitor.transformViewPath; import static org.apache.iotdb.db.utils.TypeInferenceUtils.bindTypeForBuiltinAggregationNonSeriesInputExpressions; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT_TIME; public class BindSchemaForPredicateVisitor extends CartesianProductVisitor { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForExpressionVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForExpressionVisitor.java index 00e71b6f08caa..309d4a741bcf1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForExpressionVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForExpressionVisitor.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor.cartesian; +import org.apache.iotdb.calc.utils.constant.SqlConstant; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.schematree.ISchemaTree; import org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils; @@ -30,7 +31,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimestampOperand; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.tsfile.external.commons.lang3.Validate; @@ -41,11 +41,11 @@ import java.util.List; import java.util.stream.Collectors; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT_TIME; import static org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils.cartesianProduct; import static org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils.reconstructFunctionExpressionsWithMemoryCheck; import static org.apache.iotdb.db.queryengine.plan.expression.visitor.cartesian.BindSchemaForExpressionVisitor.transformViewPath; import static org.apache.iotdb.db.utils.TypeInferenceUtils.bindTypeForBuiltinAggregationNonSeriesInputExpressions; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT_TIME; public class ConcatDeviceAndBindSchemaForExpressionVisitor extends CartesianProductVisitor { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForHavingVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForHavingVisitor.java index 79fdd754f273a..0ff52b29756a2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForHavingVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForHavingVisitor.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor.cartesian; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForPredicateVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForPredicateVisitor.java index e263970ed8006..1dfa37d386b56 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForPredicateVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForPredicateVisitor.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor.cartesian; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.schematree.ISchemaTree; import org.apache.iotdb.db.queryengine.plan.expression.Expression; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatExpressionWithSuffixPathsVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatExpressionWithSuffixPathsVisitor.java index 391c66ad3c228..b92ca3918d216 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatExpressionWithSuffixPathsVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatExpressionWithSuffixPathsVisitor.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor.cartesian; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; @@ -27,7 +28,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimestampOperand; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.tsfile.common.constant.TsFileConstant; import org.apache.tsfile.external.commons.lang3.Validate; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/predicate/ConvertPredicateToFilterVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/predicate/ConvertPredicateToFilterVisitor.java index 1b14f05833724..97aa833f306de 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/predicate/ConvertPredicateToFilterVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/predicate/ConvertPredicateToFilterVisitor.java @@ -20,6 +20,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor.predicate; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; @@ -41,7 +42,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.unary.LikeExpression; import org.apache.iotdb.db.queryengine.plan.expression.unary.LogicNotExpression; import org.apache.iotdb.db.queryengine.plan.expression.unary.RegularExpression; -import org.apache.iotdb.db.utils.DateTimeUtils; import com.google.common.io.BaseEncoding; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/predicate/ConvertPredicateToTimeFilterVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/predicate/ConvertPredicateToTimeFilterVisitor.java index 7982de7d01542..1cb61c0b8df46 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/predicate/ConvertPredicateToTimeFilterVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/predicate/ConvertPredicateToTimeFilterVisitor.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.expression.visitor.predicate; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionType; import org.apache.iotdb.db.queryengine.plan.expression.binary.CompareBinaryExpression; @@ -38,7 +39,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.unary.LikeExpression; import org.apache.iotdb.db.queryengine.plan.expression.unary.LogicNotExpression; import org.apache.iotdb.db.queryengine.plan.expression.unary.RegularExpression; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.filter.basic.Filter; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/AggregationPushDown.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/AggregationPushDown.java index 461087768e5c3..a4eb327f5b77e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/AggregationPushDown.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/AggregationPushDown.java @@ -24,24 +24,25 @@ import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinAggregationFunction; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.analyze.PredicateUtils; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.DeviceViewNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.GroupByLevelNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.GroupByTagNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ProjectNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.RawDataAggregationNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleDeviceViewNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SlidingWindowAggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode; @@ -56,7 +57,6 @@ import org.apache.iotdb.db.queryengine.plan.statement.StatementType; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.queryengine.plan.statement.crud.QueryStatement; -import org.apache.iotdb.db.queryengine.plan.udf.BuiltinAggregationFunction; import org.apache.iotdb.db.schemaengine.schemaregion.utils.MetaUtils; import org.apache.iotdb.db.utils.SchemaUtils; @@ -74,7 +74,7 @@ import java.util.Set; import static com.google.common.base.Preconditions.checkState; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT_TIME; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT_TIME; public class AggregationPushDown implements PlanOptimizer { @@ -183,7 +183,7 @@ private boolean cannotUseStatisticsForTemplate(Set aggregationExpres return false; } - private static class Rewriter extends PlanVisitor { + private static class Rewriter implements PlanVisitor { @Override public PlanNode visitPlan(PlanNode node, RewriterContext context) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDown.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDown.java index 921ab33058807..00d289c399b10 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDown.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDown.java @@ -19,18 +19,18 @@ package org.apache.iotdb.db.queryengine.plan.optimization; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ColumnInjectNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ProjectNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.RawDataAggregationNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SlidingWindowAggregationNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesAggregationSourceNode; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; import org.apache.iotdb.db.queryengine.plan.statement.crud.QueryStatement; @@ -77,7 +77,7 @@ public PlanNode optimize(PlanNode plan, Analysis analysis, MPPQueryContext conte return plan; } - private static class Rewriter extends PlanVisitor { + private static class Rewriter implements PlanVisitor { @Override public PlanNode visitPlan(PlanNode node, Void context) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/LimitOffsetPushDown.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/LimitOffsetPushDown.java index 9e5149d9d34cc..c291a196b5ac3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/LimitOffsetPushDown.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/LimitOffsetPushDown.java @@ -20,31 +20,31 @@ package org.apache.iotdb.db.queryengine.plan.optimization; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.analyze.ExpressionAnalyzer; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.CollectNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FillNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FilterNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.LimitNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.OffsetNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SortNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TransformNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.LeftOuterTimeJoinNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.AlignedSeriesScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.ShowDiskUsageNode; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; -import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.plan.statement.component.GroupByTimeComponent; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.queryengine.plan.statement.crud.QueryStatement; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.tsfile.utils.TimeDuration; @@ -87,7 +87,7 @@ public PlanNode optimize(PlanNode plan, Analysis analysis, MPPQueryContext conte return plan.accept(new Rewriter(), new RewriterContext(analysis)); } - private static class Rewriter extends PlanVisitor { + private static class Rewriter implements PlanVisitor { @Override public PlanNode visitPlan(PlanNode node, RewriterContext context) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/OrderByExpressionWithLimitChangeToTopK.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/OrderByExpressionWithLimitChangeToTopK.java index 90b5d2fdb434c..5e28676757690 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/OrderByExpressionWithLimitChangeToTopK.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/OrderByExpressionWithLimitChangeToTopK.java @@ -19,17 +19,17 @@ package org.apache.iotdb.db.queryengine.plan.optimization; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FillNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FilterNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.LimitNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SortNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TopKNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TransformNode; @@ -39,8 +39,8 @@ import java.util.ArrayList; import java.util.List; +import static org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy.LINEAR; import static org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TopKNode.LIMIT_VALUE_USE_TOP_K; -import static org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy.LINEAR; /** * Replace `SortNode`+`LimitNode` to `TopKNode` and replace `MergeSortNode`+`LimitNode` to @@ -93,7 +93,7 @@ public PlanNode optimize(PlanNode plan, Analysis analysis, MPPQueryContext conte return plan.accept(new Rewriter(), new RewriterContext(context)); } - private static class Rewriter extends PlanVisitor { + private static class Rewriter implements PlanVisitor { @Override public PlanNode visitPlan(PlanNode node, RewriterContext context) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/PlanOptimizer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/PlanOptimizer.java index 03d6e3c7e5b4c..90d390f40bbe5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/PlanOptimizer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/PlanOptimizer.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.optimization; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; public interface PlanOptimizer { PlanNode optimize(PlanNode plan, Analysis analysis, MPPQueryContext context); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/PredicatePushDown.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/PredicatePushDown.java index 4a03287439e73..828fd67eb077c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/PredicatePushDown.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/PredicatePushDown.java @@ -22,6 +22,10 @@ import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -31,13 +35,9 @@ import org.apache.iotdb.db.queryengine.plan.analyze.TemplatedInfo; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FilterNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TransformNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.InnerTimeJoinNode; @@ -82,7 +82,7 @@ public PlanNode optimize(PlanNode plan, Analysis analysis, MPPQueryContext conte new Rewriter(), new RewriterContext(analysis, context, queryStatement.isAlignByDevice())); } - private static class Rewriter extends PlanVisitor { + private static class Rewriter implements PlanVisitor { @Override public PlanNode visitPlan(PlanNode node, RewriterContext context) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java index c7a4acfcd59c8..39c52a5c4984b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.parser; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType; import org.apache.iotdb.common.rpc.thrift.TTimedQuota; import org.apache.iotdb.common.rpc.thrift.ThrottleType; @@ -28,9 +29,22 @@ import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.cq.TimeoutPolicy; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataTypeParameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericDataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NumericParameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TypeParameter; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.commons.schema.cache.CacheClearOptions; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.filter.SchemaFilter; @@ -40,8 +54,6 @@ import org.apache.iotdb.commons.utils.PathUtils; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.qp.sql.IoTDBSqlParser; import org.apache.iotdb.db.qp.sql.IoTDBSqlParser.ConstantContext; import org.apache.iotdb.db.qp.sql.IoTDBSqlParser.CountDatabasesContext; @@ -96,21 +108,12 @@ import org.apache.iotdb.db.queryengine.plan.expression.unary.RegularExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ColumnDefinition; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateView; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataTypeParameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericDataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NumericParameter; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Property; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TypeParameter; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ViewFieldDefinition; import org.apache.iotdb.db.queryengine.plan.statement.AuthorType; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; import org.apache.iotdb.db.queryengine.plan.statement.component.FillComponent; -import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.plan.statement.component.FromComponent; import org.apache.iotdb.db.queryengine.plan.statement.component.GroupByComponent; import org.apache.iotdb.db.queryengine.plan.statement.component.GroupByConditionComponent; @@ -255,9 +258,7 @@ import org.apache.iotdb.db.queryengine.plan.statement.sys.quota.ShowThrottleQuotaStatement; import org.apache.iotdb.db.schemaengine.template.TemplateAlterOperationType; import org.apache.iotdb.db.storageengine.load.config.LoadTsFileConfigurator; -import org.apache.iotdb.db.utils.DateTimeUtils; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; -import org.apache.iotdb.db.utils.constant.SqlConstant; +import org.apache.iotdb.db.utils.DataNodeDateTimeUtils; import org.apache.iotdb.trigger.api.enums.TriggerEvent; import org.apache.iotdb.trigger.api.enums.TriggerType; @@ -301,30 +302,30 @@ import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.stream.Collectors.toList; +import static org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils.getEscapeCharacter; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.CAST_FUNCTION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.CAST_TYPE; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.REPLACE_FROM; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.REPLACE_FUNCTION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.REPLACE_TO; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.ROUND_FUNCTION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.ROUND_PLACES; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.SUBSTRING_FUNCTION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.SUBSTRING_IS_STANDARD; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.SUBSTRING_LENGTH; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.SUBSTRING_START; import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES_COMPRESSION; import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES_COMPRESSOR; import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES_ENCODING; +import static org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils.TIMESTAMP_PRECISION; +import static org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils.currPrecision; import static org.apache.iotdb.commons.schema.SchemaConstant.ALL_RESULT_NODES; import static org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory.FIELD; import static org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory.TAG; import static org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory.TIME; -import static org.apache.iotdb.db.queryengine.plan.expression.unary.LikeExpression.getEscapeCharacter; import static org.apache.iotdb.db.queryengine.plan.optimization.LimitOffsetPushDown.canPushDownLimitOffsetToGroupByTime; import static org.apache.iotdb.db.queryengine.plan.optimization.LimitOffsetPushDown.pushDownLimitOffsetToTimeParameter; import static org.apache.iotdb.db.queryengine.plan.relational.sql.parser.AstBuilder.lowerIdentifier; -import static org.apache.iotdb.db.utils.TimestampPrecisionUtils.TIMESTAMP_PRECISION; -import static org.apache.iotdb.db.utils.TimestampPrecisionUtils.currPrecision; -import static org.apache.iotdb.db.utils.constant.SqlConstant.CAST_FUNCTION; -import static org.apache.iotdb.db.utils.constant.SqlConstant.CAST_TYPE; -import static org.apache.iotdb.db.utils.constant.SqlConstant.REPLACE_FROM; -import static org.apache.iotdb.db.utils.constant.SqlConstant.REPLACE_FUNCTION; -import static org.apache.iotdb.db.utils.constant.SqlConstant.REPLACE_TO; -import static org.apache.iotdb.db.utils.constant.SqlConstant.ROUND_FUNCTION; -import static org.apache.iotdb.db.utils.constant.SqlConstant.ROUND_PLACES; -import static org.apache.iotdb.db.utils.constant.SqlConstant.SUBSTRING_FUNCTION; -import static org.apache.iotdb.db.utils.constant.SqlConstant.SUBSTRING_IS_STANDARD; -import static org.apache.iotdb.db.utils.constant.SqlConstant.SUBSTRING_LENGTH; -import static org.apache.iotdb.db.utils.constant.SqlConstant.SUBSTRING_START; /** Parse AST to Statement. */ public class ASTVisitor extends IoTDBSqlParserBaseVisitor { @@ -1232,7 +1233,7 @@ private void parseResampleClause( IoTDBSqlParser.ResampleClauseContext ctx, CreateContinuousQueryStatement statement) { if (ctx.EVERY() != null) { statement.setEveryInterval( - DateTimeUtils.convertDurationStrToLong(ctx.everyInterval.getText())); + DataNodeDateTimeUtils.convertDurationStrToLong(ctx.everyInterval.getText())); } else { QueryStatement queryStatement = statement.getQueryBodyStatement(); if (!queryStatement.isGroupByTime()) { @@ -1250,10 +1251,10 @@ private void parseResampleClause( if (ctx.RANGE() != null) { statement.setStartTimeOffset( - DateTimeUtils.convertDurationStrToLong(ctx.startTimeOffset.getText())); + DataNodeDateTimeUtils.convertDurationStrToLong(ctx.startTimeOffset.getText())); if (ctx.endTimeOffset != null) { statement.setEndTimeOffset( - DateTimeUtils.convertDurationStrToLong(ctx.endTimeOffset.getText())); + DataNodeDateTimeUtils.convertDurationStrToLong(ctx.endTimeOffset.getText())); } } else { statement.setStartTimeOffset(statement.getEveryInterval()); @@ -1878,7 +1879,8 @@ private GroupByTimeComponent parseGroupByTimeClause( } // Parse time interval - groupByTimeComponent.setInterval(DateTimeUtils.constructTimeDuration(ctx.interval.getText())); + groupByTimeComponent.setInterval( + DataNodeDateTimeUtils.constructTimeDuration(ctx.interval.getText())); groupByTimeComponent.setOriginalInterval(ctx.interval.getText()); if (groupByTimeComponent.getInterval().monthDuration == 0 && groupByTimeComponent.getInterval().nonMonthDuration == 0) { @@ -1888,7 +1890,8 @@ private GroupByTimeComponent parseGroupByTimeClause( // parse sliding step if (ctx.step != null) { - groupByTimeComponent.setSlidingStep(DateTimeUtils.constructTimeDuration(ctx.step.getText())); + groupByTimeComponent.setSlidingStep( + DataNodeDateTimeUtils.constructTimeDuration(ctx.step.getText())); groupByTimeComponent.setOriginalSlidingStep(ctx.step.getText()); } else { groupByTimeComponent.setSlidingStep(groupByTimeComponent.getInterval()); @@ -1965,7 +1968,7 @@ private GroupByComponent parseGroupByClause( groupByConditionComponent.setIgnoringNull(ignoringNull); return groupByConditionComponent; } else if (windowType == WindowType.SESSION_WINDOW) { - long interval = DateTimeUtils.convertDurationStrToLong(ctx.timeInterval.getText()); + long interval = DataNodeDateTimeUtils.convertDurationStrToLong(ctx.timeInterval.getText()); return new GroupBySessionComponent(interval); } else if (windowType == WindowType.COUNT_WINDOW) { ExpressionContext countExpressionContext = expressions.get(0); @@ -2095,7 +2098,7 @@ public FillComponent parseFillClause(IoTDBSqlParser.FillClauseContext ctx) { "Only FILL(PREVIOUS) support specifying the time duration threshold."); } fillComponent.setTimeDurationThreshold( - DateTimeUtils.constructTimeDuration(ctx.interval.getText())); + DataNodeDateTimeUtils.constructTimeDuration(ctx.interval.getText())); } return fillComponent; } @@ -3577,11 +3580,11 @@ public Long parseDateExpression(IoTDBSqlParser.DateExpressionContext ctx, String for (int i = 1; i < ctx.getChildCount(); i = i + 2) { if ("+".equals(ctx.getChild(i).getText())) { time += - DateTimeUtils.convertDurationStrToLong( + DataNodeDateTimeUtils.convertDurationStrToLong( time, ctx.getChild(i + 1).getText(), precision, false); } else { time -= - DateTimeUtils.convertDurationStrToLong( + DataNodeDateTimeUtils.convertDurationStrToLong( time, ctx.getChild(i + 1).getText(), precision, false); } } @@ -3593,9 +3596,13 @@ private Long parseDateExpression(IoTDBSqlParser.DateExpressionContext ctx, long time = parseDateTimeFormat(ctx.getChild(0).getText(), currentTime, zoneId); for (int i = 1; i < ctx.getChildCount(); i = i + 2) { if ("+".equals(ctx.getChild(i).getText())) { - time += DateTimeUtils.convertDurationStrToLong(time, ctx.getChild(i + 1).getText(), false); + time += + DataNodeDateTimeUtils.convertDurationStrToLong( + time, ctx.getChild(i + 1).getText(), false); } else { - time -= DateTimeUtils.convertDurationStrToLong(time, ctx.getChild(i + 1).getText(), false); + time -= + DataNodeDateTimeUtils.convertDurationStrToLong( + time, ctx.getChild(i + 1).getText(), false); } } return time; @@ -5021,13 +5028,13 @@ private Property parseProperty(final IoTDBSqlParser.PropertyContext ctx) { .literalExpression())); } - private org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression parseExpression( + private org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression parseExpression( final IoTDBSqlParser.LiteralExpressionContext context) { if (context.STRING_LITERAL() != null) { - return new org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral( + return new org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral( parseStringLiteral(context.getText())); } else if (context.INTEGER_LITERAL() != null) { - return new org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral( + return new org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral( context.getText()); } throw new UnsupportedOperationException("Currently other expressions are not supported"); @@ -5064,8 +5071,7 @@ public Statement visitShowCurrentTimestamp(IoTDBSqlParser.ShowCurrentTimestampCo @Override public Statement visitSetSqlDialect(IoTDBSqlParser.SetSqlDialectContext ctx) { - return new SetSqlDialectStatement( - ctx.TABLE() == null ? IClientSession.SqlDialect.TREE : IClientSession.SqlDialect.TABLE); + return new SetSqlDialectStatement(ctx.TABLE() == null ? SqlDialect.TREE : SqlDialect.TABLE); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGenerator.java index 901196d0e1b08..a6c26b02ee977 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGenerator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGenerator.java @@ -19,14 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.parser; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.qp.sql.IoTDBSqlParser; import org.apache.iotdb.db.qp.sql.SqlLexer; import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeDevicePathCache; @@ -69,8 +71,6 @@ import org.apache.iotdb.db.schemaengine.template.TemplateQueryType; import org.apache.iotdb.db.utils.QueryDataSetUtils; import org.apache.iotdb.db.utils.TabletDecoder; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.iotdb.mpp.rpc.thrift.TFetchTimeseriesReq; import org.apache.iotdb.service.rpc.thrift.TSAggregationQueryReq; import org.apache.iotdb.service.rpc.thrift.TSCreateAlignedTimeseriesReq; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java new file mode 100644 index 0000000000000..efc215174aba2 --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java @@ -0,0 +1,2085 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.db.queryengine.plan.planner; + +import org.apache.iotdb.calc.execution.operator.CommonOperatorContext; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.FilterAndProjectOperator; +import org.apache.iotdb.calc.execution.operator.process.LimitOperator; +import org.apache.iotdb.calc.execution.operator.process.OffsetOperator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.LastDescAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.TableAggregator; +import org.apache.iotdb.calc.execution.relational.ColumnTransformerBuilder; +import org.apache.iotdb.calc.plan.planner.TableOperatorGenerator; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer; +import org.apache.iotdb.common.rpc.thrift.TEndPoint; +import org.apache.iotdb.commons.conf.CommonDescriptor; +import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.path.AlignedFullPath; +import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; +import org.apache.iotdb.commons.schema.table.TsTable; +import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; +import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; +import org.apache.iotdb.db.conf.IoTDBDescriptor; +import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; +import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITableTimeRangeIterator; +import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.TableDateBinTimeRangeIterator; +import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.TableSingleTimeWindowIterator; +import org.apache.iotdb.db.queryengine.execution.driver.DataDriverContext; +import org.apache.iotdb.db.queryengine.execution.exchange.MPPDataExchangeManager; +import org.apache.iotdb.db.queryengine.execution.exchange.MPPDataExchangeService; +import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelIndex; +import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; +import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISinkHandle; +import org.apache.iotdb.db.queryengine.execution.exchange.sink.ShuffleSinkHandle; +import org.apache.iotdb.db.queryengine.execution.exchange.source.ISourceHandle; +import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceManager; +import org.apache.iotdb.db.queryengine.execution.operator.EmptyDataOperator; +import org.apache.iotdb.db.queryengine.execution.operator.ExplainAnalyzeOperator; +import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; +import org.apache.iotdb.db.queryengine.execution.operator.process.TableIntoOperator; +import org.apache.iotdb.db.queryengine.execution.operator.process.copyto.TableCopyToOperator; +import org.apache.iotdb.db.queryengine.execution.operator.process.join.FullOuterTimeJoinOperator; +import org.apache.iotdb.db.queryengine.execution.operator.process.join.InnerTimeJoinOperator; +import org.apache.iotdb.db.queryengine.execution.operator.process.join.TableLeftOuterTimeJoinOperator; +import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.AscTimeComparator; +import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.ColumnMerger; +import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.DescTimeComparator; +import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; +import org.apache.iotdb.db.queryengine.execution.operator.process.last.LastQueryUtil; +import org.apache.iotdb.db.queryengine.execution.operator.schema.CountMergeOperator; +import org.apache.iotdb.db.queryengine.execution.operator.schema.SchemaCountOperator; +import org.apache.iotdb.db.queryengine.execution.operator.schema.SchemaQueryScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.schema.source.DevicePredicateFilter; +import org.apache.iotdb.db.queryengine.execution.operator.schema.source.SchemaSourceFactory; +import org.apache.iotdb.db.queryengine.execution.operator.sink.IdentitySinkOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.AbstractDataSourceOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.ExchangeOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractAggTableScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.relational.CteScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.relational.DefaultAggTableScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.relational.DeviceIteratorScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.relational.InformationSchemaTableScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.relational.LastQueryAggTableScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TreeAlignedDeviceViewAggregationScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TreeAlignedDeviceViewScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TreeNonAlignedDeviceViewAggregationScanOperator; +import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TreeToTableViewAdaptorOperator; +import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeTTLCache; +import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; +import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.CountSchemaMergeNode; +import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; +import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; +import org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.ConvertPredicateToTimeFilterVisitor; +import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; +import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; +import org.apache.iotdb.db.queryengine.plan.relational.metadata.NonAlignedDeviceEntry; +import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; +import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceSchemaCache; +import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; +import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AlignedAggregationTreeDeviceViewScanNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.NonAlignedAggregationTreeDeviceViewScanNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeAlignedDeviceViewScanNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeNonAlignedDeviceViewScanNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceFetchNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryCountNode; +import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryScanNode; +import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; +import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.IDeviceSchemaInfo; +import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; +import org.apache.iotdb.db.schemaengine.table.DataNodeTreeViewSchemaUtils; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import org.apache.tsfile.common.conf.TSFileDescriptor; +import org.apache.tsfile.enums.TSDataType; +import org.apache.tsfile.file.metadata.IDeviceID; +import org.apache.tsfile.file.metadata.idcolumn.FourOrHigherLevelDBExtractor; +import org.apache.tsfile.file.metadata.idcolumn.ThreeLevelDBExtractor; +import org.apache.tsfile.file.metadata.idcolumn.TwoLevelDBExtractor; +import org.apache.tsfile.read.TimeValuePair; +import org.apache.tsfile.read.common.TimeRange; +import org.apache.tsfile.read.common.type.BinaryType; +import org.apache.tsfile.read.common.type.BlobType; +import org.apache.tsfile.read.common.type.BooleanType; +import org.apache.tsfile.read.common.type.ObjectType; +import org.apache.tsfile.read.common.type.Type; +import org.apache.tsfile.read.common.type.TypeFactory; +import org.apache.tsfile.read.filter.basic.Filter; +import org.apache.tsfile.utils.Pair; +import org.apache.tsfile.utils.RamUsageEstimator; +import org.apache.tsfile.utils.TsPrimitiveType; +import org.apache.tsfile.write.schema.IMeasurementSchema; +import org.apache.tsfile.write.schema.MeasurementSchema; + +import javax.validation.constraints.NotNull; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.OptionalLong; +import java.util.Set; +import java.util.stream.Collectors; + +import static com.google.common.base.Preconditions.checkArgument; +import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.planner.ir.GlobalTimePredicateExtractVisitor.isTimeColumn; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.AVG; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.EXTREME; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.FIRST_AGGREGATION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.FIRST_BY_AGGREGATION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.LAST_AGGREGATION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.LAST_BY_AGGREGATION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.MAX; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.MIN; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.SUM; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; +import static org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory.FIELD; +import static org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory.TIME; +import static org.apache.iotdb.db.queryengine.common.DataNodeEndPoints.isSameNode; +import static org.apache.iotdb.db.queryengine.execution.operator.sink.IdentitySinkOperator.DELIMITER_BETWEEN_ID; +import static org.apache.iotdb.db.queryengine.execution.operator.sink.IdentitySinkOperator.DOWNSTREAM_PLAN_NODE_ID; +import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.constructAlignedPath; +import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.InformationSchemaContentSupplierFactory.getSupplier; +import static org.apache.iotdb.db.queryengine.plan.analyze.PredicateUtils.convertPredicateToFilter; +import static org.apache.iotdb.db.queryengine.plan.planner.OperatorTreeGenerator.isFilterGtOrGe; +import static org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions.updateFilterUsingTTL; +import static org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceLastCache.EMPTY_PRIMITIVE_TYPE; +import static org.apache.tsfile.read.common.type.TimestampType.TIMESTAMP; + +public class DataNodeTableOperatorGenerator + extends TableOperatorGenerator + implements PlanVisitor { + + private static final MPPDataExchangeManager MPP_DATA_EXCHANGE_MANAGER = + MPPDataExchangeService.getInstance().getMPPDataExchangeManager(); + + public DataNodeTableOperatorGenerator(Metadata metadata) { + super(metadata); + } + + @Override + protected String getSortTmpDir(CommonOperatorContext operatorContext) { + OperatorContext dataNodeOperatorContext = (OperatorContext) operatorContext; + dataNodeOperatorContext.getDriverContext().setHaveTmpFile(true); + dataNodeOperatorContext.getDriverContext().getFragmentInstanceContext().setMayHaveTmpFile(true); + return IoTDBDescriptor.getInstance().getConfig().getSortTmpDir() + + File.separator + + dataNodeOperatorContext + .getDriverContext() + .getFragmentInstanceContext() + .getId() + .getFullId() + + File.separator + + dataNodeOperatorContext.getDriverContext().getPipelineId() + + File.separator; + } + + @Override + protected OperatorContext addOperatorContext( + LocalExecutionPlanContext context, PlanNodeId planNodeId, String operatorType) { + return context + .getDriverContext() + .addOperatorContext(context.getNextOperatorId(), planNodeId, operatorType); + } + + @Override + public Operator visitCteScan(CteScanNode node, LocalExecutionPlanContext context) { + OperatorContext operatorContext = + addOperatorContext(context, node.getPlanNodeId(), CteScanOperator.class.getSimpleName()); + return new CteScanOperator( + operatorContext, + node.getPlanNodeId(), + node.getDataStore(), + context.getFragmentInstanceId().getQueryId()); + } + + @Override + public Operator visitIdentitySink(IdentitySinkNode node, LocalExecutionPlanContext context) { + context.addExchangeSumNum(1); + OperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), IdentitySinkOperator.class.getSimpleName()); + String downStreamPlanNodeId = + node.getDownStreamChannelLocationList().stream() + .map(DownStreamChannelLocation::getRemotePlanNodeId) + .collect(Collectors.joining(DELIMITER_BETWEEN_ID)); + if (!downStreamPlanNodeId.isEmpty()) { + operatorContext.recordSpecifiedInfo(DOWNSTREAM_PLAN_NODE_ID, downStreamPlanNodeId); + } + checkArgument( + MPP_DATA_EXCHANGE_MANAGER != null, "MPP_DATA_EXCHANGE_MANAGER should not be null"); + FragmentInstanceId localInstanceId = context.getInstanceContext().getId(); + DownStreamChannelIndex downStreamChannelIndex = new DownStreamChannelIndex(0); + ISinkHandle sinkHandle = + MPP_DATA_EXCHANGE_MANAGER.createShuffleSinkHandle( + node.getDownStreamChannelLocationList(), + downStreamChannelIndex, + ShuffleSinkHandle.ShuffleStrategyEnum.PLAIN, + localInstanceId.toThrift(), + node.getPlanNodeId().getId(), + context.getInstanceContext()); + + if (node.getChildren().size() == 1) { + Operator child = node.getChildren().get(0).accept(this, context); + List children = new ArrayList<>(1); + children.add(child); + sinkHandle.setMaxBytesCanReserve(context.getMaxBytesOneHandleCanReserve()); + context.getDriverContext().setSink(sinkHandle); + return new IdentitySinkOperator( + operatorContext, children, downStreamChannelIndex, sinkHandle); + } else { + throw new IllegalStateException( + "IdentitySinkNode should only have one child in table model."); + } + } + + @Override + public Operator visitTableExchange(ExchangeNode node, LocalExecutionPlanContext context) { + OperatorContext operatorContext = + addOperatorContext(context, node.getPlanNodeId(), ExchangeOperator.class.getSimpleName()); + + FragmentInstanceId localInstanceId = context.getInstanceContext().getId(); + FragmentInstanceId remoteInstanceId = node.getUpstreamInstanceId(); + + TEndPoint upstreamEndPoint = node.getUpstreamEndpoint(); + boolean isSameNode = isSameNode(upstreamEndPoint); + ISourceHandle sourceHandle = + isSameNode + ? MPP_DATA_EXCHANGE_MANAGER.createLocalSourceHandleForFragment( + localInstanceId.toThrift(), + node.getPlanNodeId().getId(), + node.getUpstreamPlanNodeId().getId(), + remoteInstanceId.toThrift(), + node.getIndexOfUpstreamSinkHandle(), + context.getInstanceContext()::failed, + context.getInstanceContext().isHighestPriority()) + : MPP_DATA_EXCHANGE_MANAGER.createSourceHandle( + localInstanceId.toThrift(), + node.getPlanNodeId().getId(), + node.getIndexOfUpstreamSinkHandle(), + upstreamEndPoint, + remoteInstanceId.toThrift(), + context.getInstanceContext()::failed, + context.getInstanceContext().isHighestPriority()); + if (!isSameNode) { + context.addExchangeSumNum(1); + } + sourceHandle.setMaxBytesCanReserve(context.getMaxBytesOneHandleCanReserve()); + ExchangeOperator exchangeOperator = + new ExchangeOperator(operatorContext, sourceHandle, node.getUpstreamPlanNodeId()); + context.addExchangeOperator(exchangeOperator); + return exchangeOperator; + } + + public static IDeviceID.TreeDeviceIdColumnValueExtractor createTreeDeviceIdColumnValueExtractor( + String treeDBName) { + try { + PartialPath db = new PartialPath(treeDBName); + int dbLevel = db.getNodes().length; + // For the path of 'root.**', we can only get the root level in this place + // In this case, we still need to support deviceId such as 'root.db' + // The relevant deviceId must be two level db, but we can't get it now + if (dbLevel == 1 || dbLevel == 2) { + return new TwoLevelDBExtractor(treeDBName.length()); + } else if (dbLevel == 3) { + return new ThreeLevelDBExtractor(treeDBName.length()); + } else if (dbLevel >= 4) { + return new FourOrHigherLevelDBExtractor(dbLevel); + } else { + throw new IllegalArgumentException( + "tree db name should at least be two level: " + treeDBName); + } + } catch (IllegalPathException e) { + throw new IllegalArgumentException(e); + } + } + + @Override + public Operator visitTreeNonAlignedDeviceViewScan( + TreeNonAlignedDeviceViewScanNode node, LocalExecutionPlanContext context) { + + boolean containsFieldColumn = false; + for (Map.Entry entry : node.getAssignments().entrySet()) { + if (entry.getValue().getColumnCategory() == FIELD) { + containsFieldColumn = true; + break; + } + } + TsTable tsTable = + DataNodeTableCache.getInstance() + .getTable( + node.getQualifiedObjectName().getDatabaseName(), + node.getQualifiedObjectName().getObjectName()); + if (!containsFieldColumn) { + Map newAssignments = new LinkedHashMap<>(node.getAssignments()); + for (TsTableColumnSchema columnSchema : tsTable.getColumnList()) { + if (columnSchema.getColumnCategory() == FIELD) { + newAssignments.put( + new Symbol(columnSchema.getColumnName()), + new ColumnSchema( + columnSchema.getColumnName(), + TypeFactory.getType(columnSchema.getDataType()), + false, + columnSchema.getColumnCategory())); + containsFieldColumn = true; + } + } + node.setAssignments(newAssignments); + } + // For non-aligned series, scan cannot be performed when no field columns + // can be obtained, so an empty result set is returned. + if (!containsFieldColumn || node.getDeviceEntries().isEmpty()) { + OperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), EmptyDataOperator.class.getSimpleName()); + return new EmptyDataOperator(operatorContext); + } + String treePrefixPath = DataNodeTreeViewSchemaUtils.getPrefixPath(tsTable); + IDeviceID.TreeDeviceIdColumnValueExtractor extractor = + createTreeDeviceIdColumnValueExtractor(treePrefixPath); + long viewTTL = tsTable.getCachedTableTTL(); + + DeviceIteratorScanOperator.TreeNonAlignedDeviceViewScanParameters parameter = + constructTreeNonAlignedDeviceViewScanOperatorParameter( + node, + context, + TreeNonAlignedDeviceViewScanNode.class.getSimpleName(), + node.getMeasurementColumnNameMap(), + extractor, + viewTTL); + + DeviceIteratorScanOperator treeNonAlignedDeviceIteratorScanOperator = + new DeviceIteratorScanOperator( + parameter.context, parameter.deviceEntries, parameter.generator); + addSource( + treeNonAlignedDeviceIteratorScanOperator, + context, + node, + parameter.measurementColumnNames, + parameter.measurementSchemas, + parameter.allSensors, + TreeNonAlignedDeviceViewScanNode.class.getSimpleName()); + + if (!parameter.generator.keepOffsetAndLimitOperatorAfterDeviceIterator()) { + return treeNonAlignedDeviceIteratorScanOperator; + } + Operator operator = treeNonAlignedDeviceIteratorScanOperator; + if (node.getPushDownOffset() > 0) { + operator = new OffsetOperator(parameter.context, node.getPushDownOffset(), operator); + } + if (node.getPushDownLimit() > 0) { + operator = new LimitOperator(parameter.context, node.getPushDownLimit(), operator); + } + return operator; + } + + private DeviceIteratorScanOperator.TreeNonAlignedDeviceViewScanParameters + constructTreeNonAlignedDeviceViewScanOperatorParameter( + TreeNonAlignedDeviceViewScanNode node, + LocalExecutionPlanContext context, + String className, + Map fieldColumnsRenameMap, + IDeviceID.TreeDeviceIdColumnValueExtractor extractor, + long viewTTL) { + if (node.isPushLimitToEachDevice() && node.getPushDownOffset() > 0) { + throw new IllegalArgumentException( + "PushDownOffset should not be set when isPushLimitToEachDevice is true."); + } + CommonTableScanOperatorParameters commonParameter = + new CommonTableScanOperatorParameters(node, fieldColumnsRenameMap, true); + List measurementSchemas = commonParameter.measurementSchemas; + List measurementSchemaIndex2Symbols = commonParameter.measurementSchemaIndex2Symbol; + List measurementColumnNames = commonParameter.measurementColumnNames; + List fullColumnSchemas = commonParameter.columnSchemas; + List symbolInputs = commonParameter.symbolInputs; + int[] columnsIndexArray = commonParameter.columnsIndexArray; + + boolean isSingleColumn = measurementSchemas.size() == 1; + + OperatorContext operatorContext = addOperatorContext(context, node.getPlanNodeId(), className); + + Set allSensors = new HashSet<>(measurementColumnNames); + + DeviceIteratorScanOperator.DeviceChildOperatorTreeGenerator deviceChildOperatorTreeGenerator = + new DeviceIteratorScanOperator.DeviceChildOperatorTreeGenerator() { + + private Operator operator; + private List seriesScanOptionsList; + private List seriesScanOperators; + private FilterAndProjectOperator filterAndProjectOperator; + private OffsetOperator reuseOffsetOperator; + private LimitOperator reuseLimitOperator; + private Operator startCloseInternalOperator; + + private List cannotPushDownConjuncts; + private boolean removeUpperOffsetAndLimitOperator; + + private final long INSTANCE_SIZE = + RamUsageEstimator.shallowSizeOfInstance(this.getClass()); + + @Override + public long ramBytesUsed() { + return INSTANCE_SIZE + + (seriesScanOptionsList == null + ? 0L + : seriesScanOptionsList.stream() + .mapToLong(seriesScanOption -> seriesScanOption.ramBytesUsed()) + .sum()); + } + + @Override + public boolean keepOffsetAndLimitOperatorAfterDeviceIterator() { + calculateSeriesScanOptionsList(); + return !removeUpperOffsetAndLimitOperator && !node.isPushLimitToEachDevice(); + } + + @Override + public void generateCurrentDeviceOperatorTree( + DeviceEntry deviceEntry, boolean needAdaptor) { + calculateSeriesScanOptionsList(); + if (needAdaptor) { + operator = constructTreeToTableViewAdaptorOperator(deviceEntry); + } else { + seriesScanOperators = new ArrayList<>(measurementSchemas.size()); + operator = constructAndJoinScanOperators(deviceEntry); + } + boolean needToPruneColumn = + node.getAssignments().size() != node.getOutputSymbols().size(); + if (isSingleColumn) { + operator = needToPruneColumn ? getFilterAndProjectOperator(operator) : operator; + return; + } + if (!cannotPushDownConjuncts.isEmpty() || needToPruneColumn) { + operator = getFilterAndProjectOperator(operator); + } + if (!node.isPushLimitToEachDevice() || removeUpperOffsetAndLimitOperator) { + return; + } + if (node.getPushDownLimit() > 0) { + operator = new LimitOperator(operatorContext, node.getPushDownLimit(), operator); + } + } + + private void calculateSeriesScanOptionsList() { + if (seriesScanOptionsList != null) { + return; + } + seriesScanOptionsList = new ArrayList<>(measurementSchemas.size()); + cannotPushDownConjuncts = new ArrayList<>(); + Map> pushDownConjunctsForEachMeasurement = new HashMap<>(); + if (node.getPushDownPredicate() != null) { + List conjuncts = IrUtils.extractConjuncts(node.getPushDownPredicate()); + for (Expression conjunct : conjuncts) { + Set symbols = SymbolsExtractor.extractUnique(conjunct); + boolean containsMultiDataSource = symbols.size() > 1; + if (containsMultiDataSource) { + cannotPushDownConjuncts.add(conjunct); + continue; + } + Symbol symbol = symbols.iterator().next(); + pushDownConjunctsForEachMeasurement + .computeIfAbsent(symbol, k -> new ArrayList<>()) + .add(conjunct); + } + } + + // Using getSeriesScanOptionsBuilder to create SeriesScanBuilder will cause multiple + // calls to setTimeFilterForTableModel and generate a deeply nested Or filter. + // Therefore, a separate setting is made here + Filter timeFilter = null; + if (node.getTimePredicate().isPresent()) { + Expression timePredicate = node.getTimePredicate().get(); + timeFilter = + timePredicate.accept( + new ConvertPredicateToTimeFilterVisitor( + context.getZoneId(), TimestampPrecisionUtils.currPrecision), + null); + context + .getDriverContext() + .getFragmentInstanceContext() + .setTimeFilterForTableModel(timeFilter); + } + + boolean canPushDownLimit = cannotPushDownConjuncts.isEmpty(); + // only use full outer time join + boolean canPushDownLimitToAllSeriesScanOptions = + canPushDownLimit && pushDownConjunctsForEachMeasurement.isEmpty(); + // the left child of LeftOuterTimeJoinOperator is SeriesScanOperator + boolean pushDownOffsetAndLimitToLeftChildSeriesScanOperator = + canPushDownLimit && pushDownConjunctsForEachMeasurement.size() == 1; + // the left child of LeftOuterTimeJoinOperator is InnerTimeJoinOperator + boolean pushDownOffsetAndLimitAfterInnerJoinOperator = + canPushDownLimit && pushDownConjunctsForEachMeasurement.size() > 1; + removeUpperOffsetAndLimitOperator = + pushDownOffsetAndLimitToLeftChildSeriesScanOperator + || pushDownOffsetAndLimitAfterInnerJoinOperator + || isSingleColumn; + for (Symbol symbol : measurementSchemaIndex2Symbols) { + List pushDownPredicatesForCurrentMeasurement = + pushDownConjunctsForEachMeasurement.get(symbol); + Expression pushDownPredicateForCurrentMeasurement = + isSingleColumn + ? node.getPushDownPredicate() + : (pushDownPredicatesForCurrentMeasurement == null + ? null + : IrUtils.combineConjuncts(pushDownPredicatesForCurrentMeasurement)); + SeriesScanOptions.Builder builder = new SeriesScanOptions.Builder(); + // time filter may be stateful, so we need to copy it + builder.withGlobalTimeFilter(timeFilter == null ? null : timeFilter.copy()); + builder.withIsTableViewForTreeModel(true).withAllSensors(allSensors); + if (pushDownPredicateForCurrentMeasurement != null) { + builder.withPushDownFilter( + convertPredicateToFilter( + pushDownPredicateForCurrentMeasurement, + Collections.singletonMap(symbol.getName(), 0), + commonParameter.columnSchemaMap, + commonParameter.timeColumnName, + context.getZoneId(), + TimestampPrecisionUtils.currPrecision)); + } + if (isSingleColumn + || (pushDownOffsetAndLimitToLeftChildSeriesScanOperator + && pushDownPredicateForCurrentMeasurement != null)) { + builder.withPushDownLimit(node.getPushDownLimit()); + builder.withPushLimitToEachDevice(node.isPushLimitToEachDevice()); + } + + // In the case of single column, both offset and limit are pushed down to the + // SeriesScanOperator + if (!isSingleColumn && canPushDownLimitToAllSeriesScanOptions) { + builder.withPushDownLimit(node.getPushDownLimit() + node.getPushDownOffset()); + } + if (isSingleColumn + || (pushDownOffsetAndLimitToLeftChildSeriesScanOperator + && pushDownPredicateForCurrentMeasurement != null)) { + builder.withPushDownOffset( + node.isPushLimitToEachDevice() ? 0 : node.getPushDownOffset()); + } + SeriesScanOptions options = builder.build(); + options.setTTLForTableView(viewTTL); + seriesScanOptionsList.add(options); + } + } + + private Operator constructTreeToTableViewAdaptorOperator(DeviceEntry deviceEntry) { + seriesScanOperators = new ArrayList<>(measurementSchemas.size()); + operator = constructAndJoinScanOperators(deviceEntry); + return new TreeToTableViewAdaptorOperator( + operatorContext, + deviceEntry, + columnsIndexArray, + fullColumnSchemas, + operator, + extractor); + } + + private Operator constructAndJoinScanOperators(DeviceEntry deviceEntry) { + List childrenWithPushDownPredicate = new ArrayList<>(); + List innerJoinDataTypeList = new ArrayList<>(); + List childrenWithoutPushDownPredicate = new ArrayList<>(); + List fullOuterTimeJoinDataTypeList = new ArrayList<>(); + Map leftOuterJoinColumnIndexMap = new HashMap<>(); + for (int i = 0; i < measurementSchemas.size(); i++) { + IMeasurementSchema measurementSchema = measurementSchemas.get(i); + NonAlignedFullPath path = + new NonAlignedFullPath(deviceEntry.getDeviceID(), measurementSchema); + SeriesScanOptions seriesScanOptions = seriesScanOptionsList.get(i); + Operator seriesScanOperator = + new SeriesScanOperator( + operatorContext, + node.getPlanNodeId(), + path, + node.getScanOrder(), + seriesScanOptions); + seriesScanOperators.add(seriesScanOperator); + if (seriesScanOptions.getPushDownFilter() != null) { + childrenWithPushDownPredicate.add(seriesScanOperator); + innerJoinDataTypeList.add(measurementSchema.getType()); + leftOuterJoinColumnIndexMap.put( + new InputLocation(0, childrenWithPushDownPredicate.size() - 1), i); + } else { + childrenWithoutPushDownPredicate.add(seriesScanOperator); + fullOuterTimeJoinDataTypeList.add(measurementSchema.getType()); + leftOuterJoinColumnIndexMap.put( + new InputLocation(1, childrenWithoutPushDownPredicate.size() - 1), i); + } + } + Operator leftChild = + generateInnerTimeJoinOperator(childrenWithPushDownPredicate, innerJoinDataTypeList); + Operator rightChild = + generateFullOuterTimeJoinOperator( + childrenWithoutPushDownPredicate, fullOuterTimeJoinDataTypeList); + return generateLeftOuterTimeJoinOperator( + leftChild, + rightChild, + childrenWithPushDownPredicate.size(), + leftOuterJoinColumnIndexMap, + IMeasurementSchema.getDataTypeList(measurementSchemas)); + } + + private Operator generateInnerTimeJoinOperator( + List operators, List dataTypes) { + if (operators.isEmpty()) { + return null; + } + if (operators.size() == 1) { + return operators.get(0); + } + Map outputColumnMap = new HashMap<>(); + for (int i = 0; i < operators.size(); i++) { + outputColumnMap.put(new InputLocation(i, 0), i); + } + Operator currentOperator = + new InnerTimeJoinOperator( + operatorContext, + operators, + dataTypes, + node.getScanOrder() == Ordering.ASC + ? new AscTimeComparator() + : new DescTimeComparator(), + outputColumnMap); + boolean addOffsetAndLimitOperatorAfterLeftChild = + operators.size() > 1 && cannotPushDownConjuncts.isEmpty(); + if (addOffsetAndLimitOperatorAfterLeftChild) { + if (node.getPushDownOffset() > 0) { + currentOperator = getReuseOffsetOperator(currentOperator); + } + if (node.getPushDownLimit() > 0) { + currentOperator = getReuseLimitOperator(currentOperator); + } + } + return currentOperator; + } + + private Operator generateFullOuterTimeJoinOperator( + List operators, List dataTypes) { + if (operators.isEmpty()) { + return null; + } + if (operators.size() == 1) { + return operators.get(0); + } + List columnMergers = new ArrayList<>(operators.size()); + for (int i = 0; i < operators.size(); i++) { + columnMergers.add( + new SingleColumnMerger( + new InputLocation(i, 0), + node.getScanOrder() == Ordering.ASC + ? new AscTimeComparator() + : new DescTimeComparator())); + } + return new FullOuterTimeJoinOperator( + operatorContext, + operators, + node.getScanOrder(), + dataTypes, + columnMergers, + node.getScanOrder() == Ordering.ASC + ? new AscTimeComparator() + : new DescTimeComparator()); + } + + private Operator generateLeftOuterTimeJoinOperator( + Operator left, + Operator right, + int leftColumnCount, + Map outputColumnMap, + List dataTypes) { + if (left == null) { + return right; + } else if (right == null) { + return left; + } else { + return new TableLeftOuterTimeJoinOperator( + operatorContext, + left, + right, + leftColumnCount, + outputColumnMap, + dataTypes, + node.getScanOrder() == Ordering.ASC + ? new AscTimeComparator() + : new DescTimeComparator()); + } + } + + private Operator getReuseOffsetOperator(Operator child) { + this.reuseOffsetOperator = + reuseOffsetOperator == null + ? new OffsetOperator(operatorContext, node.getPushDownOffset(), child) + : new OffsetOperator(reuseOffsetOperator, child); + return this.reuseOffsetOperator; + } + + private Operator getReuseLimitOperator(Operator child) { + this.reuseLimitOperator = + reuseLimitOperator == null + ? new LimitOperator(operatorContext, node.getPushDownLimit(), child) + : new LimitOperator(reuseLimitOperator, child); + return this.reuseLimitOperator; + } + + private Operator getFilterAndProjectOperator(Operator childOperator) { + startCloseInternalOperator = childOperator; + if (filterAndProjectOperator != null) { + return new FilterAndProjectOperator(filterAndProjectOperator, childOperator); + } + List inputDataTypeList = new ArrayList<>(fullColumnSchemas.size()); + Map> symbolInputLocationMap = + new HashMap<>(fullColumnSchemas.size()); + for (int i = 0; i < fullColumnSchemas.size(); i++) { + ColumnSchema columnSchema = fullColumnSchemas.get(i); + symbolInputLocationMap + .computeIfAbsent( + new Symbol(symbolInputs.get(i).getName()), key -> new ArrayList<>()) + .add(new InputLocation(0, i)); + inputDataTypeList.add(getTSDataType(columnSchema.getType())); + } + Expression combinedCannotPushDownPredicates = + cannotPushDownConjuncts.isEmpty() + ? null + : IrUtils.combineConjuncts(cannotPushDownConjuncts); + filterAndProjectOperator = + (FilterAndProjectOperator) + DataNodeTableOperatorGenerator.this.constructFilterAndProjectOperator( + Optional.ofNullable(combinedCannotPushDownPredicates), + childOperator, + node.getOutputSymbols().stream() + .map(Symbol::toSymbolReference) + .toArray(Expression[]::new), + inputDataTypeList, + symbolInputLocationMap, + node.getPlanNodeId(), + context); + return filterAndProjectOperator; + } + + @Override + public Operator getCurrentDeviceRootOperator() { + return operator; + } + + @Override + public List getCurrentDeviceDataSourceOperators() { + return seriesScanOperators; + } + + @Override + public Operator getCurrentDeviceStartCloseOperator() { + return startCloseInternalOperator == null ? operator : startCloseInternalOperator; + } + }; + + return new DeviceIteratorScanOperator.TreeNonAlignedDeviceViewScanParameters( + allSensors, + operatorContext, + node.getDeviceEntries(), + measurementColumnNames, + measurementSchemas, + deviceChildOperatorTreeGenerator); + } + + private static class CommonTableScanOperatorParameters { + + List outputColumnNames; + List columnSchemas; + List symbolInputs; + int[] columnsIndexArray; + Map columnSchemaMap; + Map tagAndAttributeColumnsIndexMap; + List measurementColumnNames; + Map measurementColumnsIndexMap; + String timeColumnName; + List measurementSchemas; + List measurementSchemaIndex2Symbol; + int measurementColumnCount; + int idx; + + private CommonTableScanOperatorParameters( + DeviceTableScanNode node, + Map fieldColumnsRenameMap, + boolean keepNonOutputMeasurementColumns) { + outputColumnNames = node.getOutputSymbols(); + int outputColumnCount = + keepNonOutputMeasurementColumns ? node.getAssignments().size() : outputColumnNames.size(); + columnSchemas = new ArrayList<>(outputColumnCount); + symbolInputs = new ArrayList<>(outputColumnCount); + columnsIndexArray = new int[outputColumnCount]; + columnSchemaMap = node.getAssignments(); + tagAndAttributeColumnsIndexMap = node.getTagAndAttributeIndexMap(); + measurementColumnNames = new ArrayList<>(); + measurementColumnsIndexMap = new HashMap<>(); + measurementSchemas = new ArrayList<>(); + measurementSchemaIndex2Symbol = new ArrayList<>(); + measurementColumnCount = 0; + idx = 0; + + boolean addedTimeColumn = false; + for (Symbol columnName : outputColumnNames) { + ColumnSchema schema = + requireNonNull(columnSchemaMap.get(columnName), columnName + " is null"); + + symbolInputs.add(columnName); + switch (schema.getColumnCategory()) { + case TAG: + case ATTRIBUTE: + columnsIndexArray[idx++] = + requireNonNull( + tagAndAttributeColumnsIndexMap.get(columnName), columnName + " is null"); + columnSchemas.add(schema); + break; + case FIELD: + columnsIndexArray[idx++] = measurementColumnCount; + measurementColumnCount++; + + String realMeasurementName = + fieldColumnsRenameMap.getOrDefault(schema.getName(), schema.getName()); + + measurementColumnNames.add(realMeasurementName); + measurementSchemas.add( + new MeasurementSchema(realMeasurementName, getTSDataType(schema.getType()))); + measurementSchemaIndex2Symbol.add(columnName); + columnSchemas.add(schema); + measurementColumnsIndexMap.put(columnName.getName(), measurementColumnCount - 1); + break; + case TIME: + columnsIndexArray[idx++] = -1; + columnSchemas.add(schema); + timeColumnName = columnName.getName(); + addedTimeColumn = true; + break; + default: + throw new IllegalArgumentException( + "Unexpected column category: " + schema.getColumnCategory()); + } + } + Set outputSet = new HashSet<>(outputColumnNames); + for (Map.Entry entry : node.getAssignments().entrySet()) { + if (!outputSet.contains(entry.getKey()) && entry.getValue().getColumnCategory() == FIELD) { + if (keepNonOutputMeasurementColumns) { + columnSchemas.add(entry.getValue()); + columnsIndexArray[idx++] = measurementColumnCount; + symbolInputs.add(entry.getKey()); + } + measurementColumnCount++; + String realMeasurementName = + fieldColumnsRenameMap.getOrDefault( + entry.getValue().getName(), entry.getValue().getName()); + + measurementColumnNames.add(realMeasurementName); + measurementSchemas.add( + new MeasurementSchema( + realMeasurementName, getTSDataType(entry.getValue().getType()))); + measurementSchemaIndex2Symbol.add(entry.getKey()); + measurementColumnsIndexMap.put(entry.getKey().getName(), measurementColumnCount - 1); + } else if (entry.getValue().getColumnCategory() == TIME) { + timeColumnName = entry.getKey().getName(); + // for non aligned series table view scan, here the time column will not be obtained + // through this structure, but we need to ensure that the length of columnSchemas is + // consistent with the length of columnsIndexArray + if (keepNonOutputMeasurementColumns && !addedTimeColumn) { + columnSchemas.add(entry.getValue()); + columnsIndexArray[idx++] = -1; + symbolInputs.add(entry.getKey()); + } + } + } + } + } + + @Override + public Operator visitTreeAlignedDeviceViewScan( + TreeAlignedDeviceViewScanNode node, LocalExecutionPlanContext context) { + QualifiedObjectName qualifiedObjectName = node.getQualifiedObjectName(); + TsTable tsTable = + DataNodeTableCache.getInstance() + .getTable(qualifiedObjectName.getDatabaseName(), qualifiedObjectName.getObjectName()); + IDeviceID.TreeDeviceIdColumnValueExtractor idColumnValueExtractor = + createTreeDeviceIdColumnValueExtractor(DataNodeTreeViewSchemaUtils.getPrefixPath(tsTable)); + + AbstractTableScanOperator.AbstractTableScanOperatorParameter parameter = + constructAbstractTableScanOperatorParameter( + node, + context, + TreeAlignedDeviceViewScanOperator.class.getSimpleName(), + node.getMeasurementColumnNameMap(), + tsTable.getCachedTableTTL()); + + TreeAlignedDeviceViewScanOperator treeAlignedDeviceViewScanOperator = + new TreeAlignedDeviceViewScanOperator(parameter, idColumnValueExtractor); + + addSource( + treeAlignedDeviceViewScanOperator, + context, + node, + parameter.measurementColumnNames, + parameter.measurementSchemas, + parameter.allSensors, + TreeAlignedDeviceViewScanNode.class.getSimpleName()); + + return treeAlignedDeviceViewScanOperator; + } + + private void addSource( + AbstractDataSourceOperator sourceOperator, + LocalExecutionPlanContext context, + DeviceTableScanNode node, + List measurementColumnNames, + List measurementSchemas, + Set allSensors, + String planNodeName) { + + ((DataDriverContext) context.getDriverContext()).addSourceOperator(sourceOperator); + + for (int i = 0, size = node.getDeviceEntries().size(); i < size; i++) { + DeviceEntry deviceEntry = node.getDeviceEntries().get(i); + if (deviceEntry == null) { + throw new IllegalStateException( + "Device entries of index " + i + " in " + planNodeName + " is empty"); + } + if (deviceEntry instanceof NonAlignedDeviceEntry) { + for (IMeasurementSchema schema : measurementSchemas) { + NonAlignedFullPath nonAlignedFullPath = + new NonAlignedFullPath(deviceEntry.getDeviceID(), schema); + ((DataDriverContext) context.getDriverContext()).addPath(nonAlignedFullPath); + } + } else { + AlignedFullPath alignedPath = + constructAlignedPath( + deviceEntry, measurementColumnNames, measurementSchemas, allSensors); + ((DataDriverContext) context.getDriverContext()).addPath(alignedPath); + } + } + + context.getDriverContext().setInputDriver(true); + } + + private AbstractTableScanOperator.AbstractTableScanOperatorParameter + constructAbstractTableScanOperatorParameter( + DeviceTableScanNode node, + LocalExecutionPlanContext context, + String className, + Map fieldColumnsRenameMap, + long viewTTL) { + + CommonTableScanOperatorParameters commonParameter = + new CommonTableScanOperatorParameters(node, fieldColumnsRenameMap, false); + List measurementSchemas = commonParameter.measurementSchemas; + List measurementColumnNames = commonParameter.measurementColumnNames; + List columnSchemas = commonParameter.columnSchemas; + int[] columnsIndexArray = commonParameter.columnsIndexArray; + SeriesScanOptions seriesScanOptions = + buildSeriesScanOptions( + context, + commonParameter.columnSchemaMap, + measurementColumnNames, + commonParameter.measurementColumnsIndexMap, + commonParameter.timeColumnName, + node.getTimePredicate(), + node.getPushDownLimit(), + node.getPushDownOffset(), + node.isPushLimitToEachDevice(), + node.getPushDownPredicate()); + seriesScanOptions.setTTLForTableView(viewTTL); + seriesScanOptions.setIsTableViewForTreeModel(node instanceof TreeDeviceViewScanNode); + + OperatorContext operatorContext = addOperatorContext(context, node.getPlanNodeId(), className); + + int maxTsBlockLineNum = TSFileDescriptor.getInstance().getConfig().getMaxTsBlockLineNumber(); + if (context.getTypeProvider().getTemplatedInfo() != null) { + maxTsBlockLineNum = + (int) + Math.min( + context.getTypeProvider().getTemplatedInfo().getLimitValue(), maxTsBlockLineNum); + } + + Set allSensors = new HashSet<>(measurementColumnNames); + // for time column + allSensors.add(""); + + return new AbstractTableScanOperator.AbstractTableScanOperatorParameter( + allSensors, + operatorContext, + node.getPlanNodeId(), + columnSchemas, + columnsIndexArray, + node.getDeviceEntries(), + node.getScanOrder(), + seriesScanOptions, + measurementColumnNames, + measurementSchemas, + maxTsBlockLineNum); + } + + // used for TableScanOperator + private AbstractTableScanOperator.AbstractTableScanOperatorParameter + constructAbstractTableScanOperatorParameter( + DeviceTableScanNode node, LocalExecutionPlanContext context) { + return constructAbstractTableScanOperatorParameter( + node, + context, + TableScanOperator.class.getSimpleName(), + Collections.emptyMap(), + Long.MAX_VALUE); + } + + @Override + public Operator visitTreeDeviceViewScan( + TreeDeviceViewScanNode node, LocalExecutionPlanContext context) { + if (node.getDeviceEntries().isEmpty() || node.getTreeDBName() == null) { + OperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), EmptyDataOperator.class.getSimpleName()); + return new EmptyDataOperator(operatorContext); + } + throw new IllegalArgumentException("Valid TreeDeviceViewScanNode is not expected here."); + } + + @Override + public Operator visitDeviceTableScan( + DeviceTableScanNode node, LocalExecutionPlanContext context) { + + AbstractTableScanOperator.AbstractTableScanOperatorParameter parameter = + constructAbstractTableScanOperatorParameter(node, context); + + TableScanOperator tableScanOperator = new TableScanOperator(parameter); + + context.getInstanceContext().collectTable(node.getQualifiedObjectName().getObjectName()); + addSource( + tableScanOperator, + context, + node, + parameter.measurementColumnNames, + parameter.measurementSchemas, + parameter.allSensors, + DeviceTableScanNode.class.getSimpleName()); + + return tableScanOperator; + } + + private SeriesScanOptions.Builder getSeriesScanOptionsBuilder( + LocalExecutionPlanContext context, @NotNull Expression timePredicate) { + SeriesScanOptions.Builder scanOptionsBuilder = new SeriesScanOptions.Builder(); + + Filter timeFilter = + timePredicate.accept( + new ConvertPredicateToTimeFilterVisitor( + context.getZoneId(), TimestampPrecisionUtils.currPrecision), + null); + context.getDriverContext().getFragmentInstanceContext().setTimeFilterForTableModel(timeFilter); + // time filter may be stateful, so we need to copy it + scanOptionsBuilder.withGlobalTimeFilter(timeFilter.copy()); + + return scanOptionsBuilder; + } + + @Override + public Operator visitInformationSchemaTableScan( + final InformationSchemaTableScanNode node, final LocalExecutionPlanContext context) { + final OperatorContext operatorContext = + addOperatorContext( + context, + node.getPlanNodeId(), + InformationSchemaTableScanOperator.class.getSimpleName()); + + final List dataTypes = + node.getOutputSymbols().stream() + .map(symbol -> getTSDataType(context.getTypeProvider().getTableModelType(symbol))) + .collect(Collectors.toList()); + + return new InformationSchemaTableScanOperator( + operatorContext, + node.getPlanNodeId(), + getSupplier(operatorContext, dataTypes, getSessionInfo(context).getUserEntity(), node)); + } + + @Override + public Operator visitCountMerge( + final CountSchemaMergeNode node, final LocalExecutionPlanContext context) { + final OperatorContext operatorContext = + addOperatorContext(context, node.getPlanNodeId(), CountMergeOperator.class.getSimpleName()); + final List children = new ArrayList<>(node.getChildren().size()); + for (final PlanNode child : node.getChildren()) { + children.add(this.process(child, context)); + } + return new CountMergeOperator(operatorContext, children); + } + + @Override + public Operator visitTableDeviceFetch( + final TableDeviceFetchNode node, final LocalExecutionPlanContext context) { + final OperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), SchemaQueryScanOperator.class.getSimpleName()); + return new SchemaQueryScanOperator<>( + node.getPlanNodeId(), + operatorContext, + SchemaSourceFactory.getTableDeviceFetchSource( + node.getDatabase(), + node.getTableName(), + node.getDeviceIdList(), + node.getColumnHeaderList())); + } + + @Override + public Operator visitTableDeviceQueryScan( + final TableDeviceQueryScanNode node, final LocalExecutionPlanContext context) { + // Query scan use filterNode directly + final TsTable table = + DataNodeTableCache.getInstance().getTable(node.getDatabase(), node.getTableName()); + final SchemaQueryScanOperator operator = + new SchemaQueryScanOperator<>( + node.getPlanNodeId(), + addOperatorContext( + context, node.getPlanNodeId(), SchemaQueryScanOperator.class.getSimpleName()), + SchemaSourceFactory.getTableDeviceQuerySource( + node.getDatabase(), + table, + node.getTagDeterminedFilterList(), + node.getColumnHeaderList(), + node.getColumnHeaderList().stream() + .map(columnHeader -> table.getColumnSchema(columnHeader.getColumnName())) + .collect(Collectors.toList()), + null, + node.isNeedAligned())); + operator.setLimit(node.getLimit()); + return operator; + } + + @Override + public Operator visitTableDeviceQueryCount( + final TableDeviceQueryCountNode node, final LocalExecutionPlanContext context) { + final String database = node.getDatabase(); + final TsTable table = DataNodeTableCache.getInstance().getTable(database, node.getTableName()); + final List columnSchemaList = + node.getColumnHeaderList().stream() + .map(columnHeader -> table.getColumnSchema(columnHeader.getColumnName())) + .collect(Collectors.toList()); + + // In "count" we have to reuse filter operator per "next" + final List filterLeafColumnTransformerList = new ArrayList<>(); + return new SchemaCountOperator<>( + node.getPlanNodeId(), + addOperatorContext( + context, node.getPlanNodeId(), SchemaCountOperator.class.getSimpleName()), + SchemaSourceFactory.getTableDeviceQuerySource( + database, + table, + node.getTagDeterminedFilterList(), + node.getColumnHeaderList(), + columnSchemaList, + Objects.nonNull(node.getTagFuzzyPredicate()) + ? new DevicePredicateFilter( + filterLeafColumnTransformerList, + new ColumnTransformerBuilder() + .process( + node.getTagFuzzyPredicate(), + new ColumnTransformerBuilder.Context( + getSessionInfo(context), + filterLeafColumnTransformerList, + makeLayout(Collections.singletonList(node)), + new HashMap<>(), + ImmutableMap.of(), + ImmutableList.of(), + ImmutableList.of(), + 0, + context.getTypeProvider(), + metadata)), + columnSchemaList, + database, + table) + : null, + false)); + } + + @Override + public Operator visitAggregationTreeDeviceViewScan( + AggregationTreeDeviceViewScanNode node, LocalExecutionPlanContext context) { + throw new UnsupportedOperationException( + "The AggregationTreeDeviceViewScanNode should has been transferred to its child class node"); + } + + @Override + public Operator visitAlignedAggregationTreeDeviceViewScan( + AlignedAggregationTreeDeviceViewScanNode node, LocalExecutionPlanContext context) { + QualifiedObjectName qualifiedObjectName = node.getQualifiedObjectName(); + TsTable tsTable = + DataNodeTableCache.getInstance() + .getTable(qualifiedObjectName.getDatabaseName(), qualifiedObjectName.getObjectName()); + IDeviceID.TreeDeviceIdColumnValueExtractor idColumnValueExtractor = + createTreeDeviceIdColumnValueExtractor(DataNodeTreeViewSchemaUtils.getPrefixPath(tsTable)); + + AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter parameter = + constructAbstractAggTableScanOperatorParameter( + node, + context, + TreeAlignedDeviceViewAggregationScanOperator.class.getSimpleName(), + node.getMeasurementColumnNameMap(), + tsTable.getCachedTableTTL()); + + TreeAlignedDeviceViewAggregationScanOperator treeAlignedDeviceViewAggregationScanOperator = + new TreeAlignedDeviceViewAggregationScanOperator(parameter, idColumnValueExtractor); + + addSource( + treeAlignedDeviceViewAggregationScanOperator, + context, + node, + parameter.getMeasurementColumnNames(), + parameter.getMeasurementSchemas(), + parameter.getAllSensors(), + AlignedAggregationTreeDeviceViewScanNode.class.getSimpleName()); + return treeAlignedDeviceViewAggregationScanOperator; + } + + @Override + public Operator visitNonAlignedAggregationTreeDeviceViewScan( + NonAlignedAggregationTreeDeviceViewScanNode node, LocalExecutionPlanContext context) { + QualifiedObjectName qualifiedObjectName = node.getQualifiedObjectName(); + TsTable tsTable = + DataNodeTableCache.getInstance() + .getTable(qualifiedObjectName.getDatabaseName(), qualifiedObjectName.getObjectName()); + IDeviceID.TreeDeviceIdColumnValueExtractor idColumnValueExtractor = + createTreeDeviceIdColumnValueExtractor(DataNodeTreeViewSchemaUtils.getPrefixPath(tsTable)); + + AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter parameter = + constructAbstractAggTableScanOperatorParameter( + node, + context, + TreeNonAlignedDeviceViewAggregationScanOperator.class.getSimpleName(), + node.getMeasurementColumnNameMap(), + tsTable.getCachedTableTTL()); + + // construct source operator (generator) + TreeNonAlignedDeviceViewScanNode scanNode = + new TreeNonAlignedDeviceViewScanNode( + node.getPlanNodeId(), + node.getQualifiedObjectName(), + // the outputSymbols of TreeNonAlignedDeviceViewAggregationScanOperator is not equals + // with TreeNonAlignedDeviceViewScanNode + parameter.getOutputSymbols(), + node.getAssignments(), + node.getDeviceEntries(), + node.getTagAndAttributeIndexMap(), + node.getScanOrder(), + node.getTimePredicate().orElse(null), + node.getPushDownPredicate(), + node.getPushDownLimit(), + node.getPushDownOffset(), + node.isPushLimitToEachDevice(), + true, + node.getTreeDBName(), + node.getMeasurementColumnNameMap()); + + Operator sourceOperator = visitTreeNonAlignedDeviceViewScan(scanNode, context); + if (!(sourceOperator instanceof EmptyDataOperator)) { + // Use deviceChildOperatorTreeGenerator directly, we will control switch of devices in + // TreeNonAlignedDeviceViewAggregationScanOperator + TreeNonAlignedDeviceViewAggregationScanOperator aggTableScanOperator = + new TreeNonAlignedDeviceViewAggregationScanOperator( + parameter, + idColumnValueExtractor, + ((DeviceIteratorScanOperator) sourceOperator).getDeviceChildOperatorTreeGenerator()); + + addSource( + aggTableScanOperator, + context, + node, + parameter.getMeasurementColumnNames(), + parameter.getMeasurementSchemas(), + parameter.getAllSensors(), + NonAlignedAggregationTreeDeviceViewScanNode.class.getSimpleName()); + return aggTableScanOperator; + } else { + // source data is empty, return directly + return sourceOperator; + } + } + + private AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter + constructAbstractAggTableScanOperatorParameter( + AggregationTableScanNode node, + LocalExecutionPlanContext context, + String className, + Map fieldColumnsRenameMap, + long tableViewTTL) { + + List measurementColumnNames = new ArrayList<>(); + List measurementSchemas = new ArrayList<>(); + Map measurementColumnsIndexMap = new HashMap<>(); + + List aggregators = new ArrayList<>(node.getAggregations().size()); + List aggregatorInputChannels = + new ArrayList<>( + (int) + node.getAggregations().values().stream() + .mapToLong(aggregation -> aggregation.getArguments().size()) + .sum()); + int aggDistinctArgumentCount = + (int) + node.getAggregations().values().stream() + .flatMap(aggregation -> aggregation.getArguments().stream()) + .map(Symbol::from) + .distinct() + .count(); + List aggColumnSchemas = new ArrayList<>(aggDistinctArgumentCount); + Map aggColumnLayout = new HashMap<>(aggDistinctArgumentCount); + int[] aggColumnsIndexArray = new int[aggDistinctArgumentCount]; + + List outputSymbols = new ArrayList<>(); + + String timeColumnName = null; + int channel = 0; + int measurementColumnCount = 0; + for (Map.Entry entry : node.getAggregations().entrySet()) { + for (Expression argument : entry.getValue().getArguments()) { + Symbol symbol = Symbol.from(argument); + ColumnSchema schema = + requireNonNull(node.getAssignments().get(symbol), symbol + " is null"); + if (!aggColumnLayout.containsKey(symbol)) { + switch (schema.getColumnCategory()) { + case TAG: + case ATTRIBUTE: + aggColumnsIndexArray[channel] = + requireNonNull( + node.getTagAndAttributeIndexMap().get(symbol), symbol + " is null"); + break; + case FIELD: + aggColumnsIndexArray[channel] = measurementColumnCount; + measurementColumnCount++; + String realMeasurementName = + fieldColumnsRenameMap.getOrDefault(schema.getName(), schema.getName()); + measurementColumnNames.add(realMeasurementName); + measurementSchemas.add( + new MeasurementSchema(realMeasurementName, getTSDataType(schema.getType()))); + measurementColumnsIndexMap.put(symbol.getName(), measurementColumnCount - 1); + outputSymbols.add(symbol); + break; + case TIME: + aggColumnsIndexArray[channel] = -1; + timeColumnName = symbol.getName(); + break; + default: + throw new IllegalArgumentException( + "Unexpected column category: " + schema.getColumnCategory()); + } + + aggColumnSchemas.add(schema); + aggregatorInputChannels.add(channel); + aggColumnLayout.put(symbol, channel++); + } else { + aggregatorInputChannels.add(aggColumnLayout.get(symbol)); + } + } + } + + for (Map.Entry entry : node.getAssignments().entrySet()) { + if (!aggColumnLayout.containsKey(entry.getKey()) + && entry.getValue().getColumnCategory() == FIELD) { + measurementColumnCount++; + String realMeasurementName = + fieldColumnsRenameMap.getOrDefault( + entry.getValue().getName(), entry.getValue().getName()); + measurementColumnNames.add(realMeasurementName); + measurementSchemas.add( + new MeasurementSchema(realMeasurementName, getTSDataType(entry.getValue().getType()))); + measurementColumnsIndexMap.put(entry.getKey().getName(), measurementColumnCount - 1); + } else if (entry.getValue().getColumnCategory() == TIME) { + timeColumnName = entry.getKey().getName(); + } + } + + boolean[] ret = checkStatisticAndScanOrder(node, timeColumnName); + boolean canUseStatistic = ret[0]; + boolean scanAscending = ret[1]; + + for (Map.Entry entry : node.getAggregations().entrySet()) { + aggregators.add( + buildAggregator( + aggColumnLayout, + entry.getKey(), + entry.getValue(), + node.getStep(), + context.getTypeProvider(), + scanAscending, + true, + timeColumnName, + measurementColumnsIndexMap.keySet())); + } + + ITableTimeRangeIterator timeRangeIterator = null; + List groupingKeySchemas = null; + int[] groupingKeyIndex = null; + if (!node.getGroupingKeys().isEmpty()) { + groupingKeySchemas = new ArrayList<>(node.getGroupingKeys().size()); + groupingKeyIndex = new int[node.getGroupingKeys().size()]; + for (int i = 0; i < node.getGroupingKeys().size(); i++) { + Symbol groupingKey = node.getGroupingKeys().get(i); + + if (node.getTagAndAttributeIndexMap().containsKey(groupingKey)) { + groupingKeySchemas.add(node.getAssignments().get(groupingKey)); + groupingKeyIndex[i] = node.getTagAndAttributeIndexMap().get(groupingKey); + } else { + if (node.getProjection() != null + && !node.getProjection().getMap().isEmpty() + && node.getProjection().contains(groupingKey)) { + FunctionCall dateBinFunc = (FunctionCall) node.getProjection().get(groupingKey); + List arguments = dateBinFunc.getArguments(); + DateBinFunctionColumnTransformer dateBinTransformer = + new DateBinFunctionColumnTransformer( + TIMESTAMP, + ((LongLiteral) arguments.get(0)).getParsedValue(), + ((LongLiteral) arguments.get(1)).getParsedValue(), + null, + ((LongLiteral) arguments.get(3)).getParsedValue(), + context.getZoneId()); + timeRangeIterator = new TableDateBinTimeRangeIterator(dateBinTransformer); + } else { + throw new IllegalStateException( + "grouping key must be ID or Attribute in AggregationTableScan"); + } + } + } + } + if (timeRangeIterator == null) { + if (node.getGroupingKeys().isEmpty()) { + // global aggregation, has no group by, output init value if no data + timeRangeIterator = + new TableSingleTimeWindowIterator(new TimeRange(Long.MIN_VALUE, Long.MAX_VALUE)); + } else { + // aggregation with group by, only has data the result will not be empty + timeRangeIterator = new TableSingleTimeWindowIterator(); + } + } + + final OperatorContext operatorContext = + addOperatorContext(context, node.getPlanNodeId(), className); + SeriesScanOptions seriesScanOptions = + buildSeriesScanOptions( + context, + node.getAssignments(), + measurementColumnNames, + measurementColumnsIndexMap, + timeColumnName, + node.getTimePredicate(), + node.getPushDownLimit(), + node.getPushDownOffset(), + node.isPushLimitToEachDevice(), + node.getPushDownPredicate()); + seriesScanOptions.setTTLForTableView(tableViewTTL); + seriesScanOptions.setIsTableViewForTreeModel(node instanceof AggregationTreeDeviceViewScanNode); + + Set allSensors = new HashSet<>(measurementColumnNames); + allSensors.add(""); // for time column + context.getDriverContext().setInputDriver(true); + + return new AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter( + node.getPlanNodeId(), + operatorContext, + aggColumnSchemas, + aggColumnsIndexArray, + node.getDeviceEntries(), + node.getDeviceEntries().size(), + seriesScanOptions, + measurementColumnNames, + allSensors, + measurementSchemas, + aggregators, + groupingKeySchemas, + groupingKeyIndex, + timeRangeIterator, + scanAscending, + canUseStatistic, + aggregatorInputChannels, + timeColumnName, + outputSymbols); + } + + // used for AggregationTableScanNode + private AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter + constructAbstractAggTableScanOperatorParameter( + AggregationTableScanNode node, LocalExecutionPlanContext context) { + return constructAbstractAggTableScanOperatorParameter( + node, + context, + AbstractAggTableScanOperator.class.getSimpleName(), + Collections.emptyMap(), + Long.MAX_VALUE); + } + + @Override + public Operator visitAggregationTableScan( + AggregationTableScanNode node, LocalExecutionPlanContext context) { + + AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter parameter = + constructAbstractAggTableScanOperatorParameter(node, context); + + OptimizeType optimizeType = + canUseLastCacheOptimize( + parameter.getTableAggregators(), node, parameter.getTimeColumnName()); + if (optimizeType != OptimizeType.NOOP) { + return constructLastQueryAggTableScanOperator( + node, parameter, optimizeType == OptimizeType.LAST_ROW, context); + } else { + DefaultAggTableScanOperator aggTableScanOperator = new DefaultAggTableScanOperator(parameter); + + context.getInstanceContext().collectTable(node.getQualifiedObjectName().getObjectName()); + addSource( + aggTableScanOperator, + context, + node, + parameter.getMeasurementColumnNames(), + parameter.getMeasurementSchemas(), + parameter.getAllSensors(), + AggregationTableScanNode.class.getSimpleName()); + return aggTableScanOperator; + } + } + + private LastQueryAggTableScanOperator constructLastQueryAggTableScanOperator( + AggregationTableScanNode node, + AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter parameter, + boolean isLastRowOptimize, + LocalExecutionPlanContext context) { + List hitCachesIndexes = new ArrayList<>(); + List> lastRowCacheResults = null; + List lastValuesCacheResults = null; + List cachedDeviceEntries = new ArrayList<>(); + List unCachedDeviceEntries = new ArrayList<>(); + long tableTTL = + DataNodeTTLCache.getInstance() + .getTTLForTable( + node.getQualifiedObjectName().getDatabaseName(), + node.getQualifiedObjectName().getObjectName()); + Filter updateTimeFilter = + updateFilterUsingTTL(parameter.getSeriesScanOptions().getGlobalTimeFilter(), tableTTL); + if (isLastRowOptimize) { + lastRowCacheResults = new ArrayList<>(); + for (int i = 0; i < node.getDeviceEntries().size(); i++) { + Optional> lastByResult = + TableDeviceSchemaCache.getInstance() + .getLastRow( + node.getQualifiedObjectName().getDatabaseName(), + node.getDeviceEntries().get(i).getDeviceID(), + "", + parameter.getMeasurementColumnNames()); + boolean allHitCache = true; + if (lastByResult.isPresent() && lastByResult.get().getLeft().isPresent()) { + for (int j = 0; j < lastByResult.get().getRight().length; j++) { + TsPrimitiveType tsPrimitiveType = lastByResult.get().getRight()[j]; + if (tsPrimitiveType == null + || (updateTimeFilter != null + && !LastQueryUtil.satisfyFilter( + updateTimeFilter, + new TimeValuePair( + lastByResult.get().getLeft().getAsLong(), tsPrimitiveType)))) { + // the process logic is different from tree model which examine if + // `isFilterGtOrGe(seriesScanOptions.getGlobalTimeFilter())`, set + // `lastByResult.get().getRight()[j] = EMPTY_PRIMITIVE_TYPE`, + // but it should skip in table model + allHitCache = false; + break; + } + } + } else { + allHitCache = false; + } + + DeviceEntry deviceEntry = node.getDeviceEntries().get(i); + if (!allHitCache) { + AlignedFullPath alignedPath = + constructAlignedPath( + deviceEntry, + parameter.getMeasurementColumnNames(), + parameter.getMeasurementSchemas(), + parameter.getAllSensors()); + ((DataDriverContext) context.getDriverContext()).addPath(alignedPath); + unCachedDeviceEntries.add(deviceEntry); + addUncachedDeviceToContext(node, context, deviceEntry); + + // last cache updateColumns need to put "" as time column + String[] updateColumns = new String[parameter.getMeasurementColumnNames().size() + 1]; + updateColumns[0] = ""; + for (int j = 1; j < updateColumns.length; j++) { + updateColumns[j] = parameter.getMeasurementColumnNames().get(j - 1); + } + TableDeviceSchemaCache.getInstance() + .initOrInvalidateLastCache( + node.getQualifiedObjectName().getDatabaseName(), + deviceEntry.getDeviceID(), + updateColumns, + false); + } else { + hitCachesIndexes.add(i); + lastRowCacheResults.add(lastByResult.get()); + cachedDeviceEntries.add(deviceEntry); + decreaseDeviceCount(node, context, deviceEntry); + } + } + } else { + // LAST_VALUES optimize + lastValuesCacheResults = new ArrayList<>(); + int measurementSize = parameter.getMeasurementColumnNames().size(); + // We don't init time if the last cache will not be updated in process of operator + boolean needInitTime = + parameter.getTableAggregators().stream() + .anyMatch( + aggregator -> + aggregator.getAccumulator() instanceof LastDescAccumulator + && !((LastDescAccumulator) aggregator.getAccumulator()) + .isMeasurementColumn()); + // When we need last cache of Time column if: + // 1. query is group by (we need last cache of Time to help judge if there is no data in + // device) + // 2. last(time), last(device) or last(attribute) occurs + boolean needTime = !node.getGroupingKeys().isEmpty() || needInitTime; + String[] targetColumns; + + if (needTime) { + targetColumns = new String[measurementSize + 1]; + // put time column in the last for convenience of later processing + targetColumns[targetColumns.length - 1] = ""; + } else { + targetColumns = new String[measurementSize]; + } + + for (int j = 0; j < measurementSize; j++) { + targetColumns[j] = parameter.getMeasurementColumnNames().get(j); + } + + for (int i = 0; i < node.getDeviceEntries().size(); i++) { + TimeValuePair[] lastResult = + TableDeviceSchemaCache.getInstance() + .getLastEntries( + node.getQualifiedObjectName().getDatabaseName(), + node.getDeviceEntries().get(i).getDeviceID(), + targetColumns); + boolean allHitCache = true; + if (lastResult != null) { + for (TimeValuePair timeValuePair : lastResult) { + if (timeValuePair == null || timeValuePair.getValue() == null) { + allHitCache = false; + break; + } + + if (updateTimeFilter != null + && !LastQueryUtil.satisfyFilter( + parameter.getSeriesScanOptions().getGlobalTimeFilter(), timeValuePair)) { + if (isFilterGtOrGe(updateTimeFilter)) { + // it means there is no data meets Filter + timeValuePair.setValue(EMPTY_PRIMITIVE_TYPE); + } else { + allHitCache = false; + break; + } + } + } + } else { + allHitCache = false; + } + + DeviceEntry deviceEntry = node.getDeviceEntries().get(i); + if (!allHitCache) { + AlignedFullPath alignedPath = + constructAlignedPath( + deviceEntry, + parameter.getMeasurementColumnNames(), + parameter.getMeasurementSchemas(), + parameter.getAllSensors()); + ((DataDriverContext) context.getDriverContext()).addPath(alignedPath); + unCachedDeviceEntries.add(deviceEntry); + addUncachedDeviceToContext(node, context, deviceEntry); + + TableDeviceSchemaCache.getInstance() + .initOrInvalidateLastCache( + node.getQualifiedObjectName().getDatabaseName(), + deviceEntry.getDeviceID(), + needInitTime || node.getGroupingKeys().isEmpty() + ? targetColumns + : Arrays.copyOfRange(targetColumns, 0, targetColumns.length - 1), + false); + } else { + hitCachesIndexes.add(i); + lastValuesCacheResults.add(lastResult); + cachedDeviceEntries.add(deviceEntry); + decreaseDeviceCount(node, context, deviceEntry); + } + } + } + + parameter.setDeviceEntries(unCachedDeviceEntries); + + // context add TableLastQueryOperator + LastQueryAggTableScanOperator lastQueryOperator = + new LastQueryAggTableScanOperator( + parameter, + cachedDeviceEntries, + node.getQualifiedObjectName(), + hitCachesIndexes, + lastRowCacheResults, + lastValuesCacheResults, + node.getDeviceCountMap(), + context.getInstanceContext().getDataNodeQueryContext()); + + ((DataDriverContext) context.getDriverContext()).addSourceOperator(lastQueryOperator); + parameter + .getOperatorContext() + .setOperatorType(LastQueryAggTableScanOperator.class.getSimpleName()); + return lastQueryOperator; + } + + private void addUncachedDeviceToContext( + AggregationTableScanNode node, LocalExecutionPlanContext context, DeviceEntry deviceEntry) { + boolean deviceInMultiRegion = + node.getDeviceCountMap() != null && node.getDeviceCountMap().containsKey(deviceEntry); + if (!deviceInMultiRegion) { + return; + } + + context.dataNodeQueryContext.lock(true); + try { + context.dataNodeQueryContext.addUnCachedDeviceIfAbsent( + node.getQualifiedObjectName(), deviceEntry, node.getDeviceCountMap().get(deviceEntry)); + } finally { + context.dataNodeQueryContext.unLock(true); + } + } + + /** + * Decrease the device count when its last cache was hit. Notice that the count can also be zero + * after decrease, we need to update last cache if needed. + */ + private void decreaseDeviceCount( + AggregationTableScanNode node, LocalExecutionPlanContext context, DeviceEntry deviceEntry) { + boolean deviceInMultiRegion = + node.getDeviceCountMap() != null && node.getDeviceCountMap().containsKey(deviceEntry); + if (!deviceInMultiRegion) { + return; + } + + context.dataNodeQueryContext.lock(true); + try { + context.dataNodeQueryContext.decreaseDeviceAndMayUpdateLastCache( + node.getQualifiedObjectName(), deviceEntry, node.getDeviceCountMap().get(deviceEntry)); + } finally { + context.dataNodeQueryContext.unLock(true); + } + } + + private SeriesScanOptions buildSeriesScanOptions( + LocalExecutionPlanContext context, + Map columnSchemaMap, + List measurementColumnNames, + Map measurementColumnsIndexMap, + String timeColumnName, + Optional timePredicate, + long pushDownLimit, + long pushDownOffset, + boolean pushLimitToEachDevice, + Expression pushDownPredicate) { + SeriesScanOptions.Builder scanOptionsBuilder = + timePredicate + .map(expression -> getSeriesScanOptionsBuilder(context, expression)) + .orElseGet(SeriesScanOptions.Builder::new); + scanOptionsBuilder.withPushDownLimit(pushDownLimit); + scanOptionsBuilder.withPushDownOffset(pushDownOffset); + scanOptionsBuilder.withPushLimitToEachDevice(pushLimitToEachDevice); + scanOptionsBuilder.withAllSensors(new HashSet<>(measurementColumnNames)); + if (pushDownPredicate != null) { + scanOptionsBuilder.withPushDownFilter( + convertPredicateToFilter( + pushDownPredicate, + measurementColumnsIndexMap, + columnSchemaMap, + timeColumnName, + context.getZoneId(), + TimestampPrecisionUtils.currPrecision)); + } + return scanOptionsBuilder.build(); + } + + @Override + public Operator visitExplainAnalyze(ExplainAnalyzeNode node, LocalExecutionPlanContext context) { + Operator operator = node.getChild().accept(this, context); + OperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), ExplainAnalyzeOperator.class.getSimpleName()); + return new ExplainAnalyzeOperator( + operatorContext, operator, node.getQueryId(), node.isVerbose(), node.getTimeout()); + } + + @Override + public Operator visitCopyTo(CopyToNode node, LocalExecutionPlanContext context) { + PlanNode childNode = node.getChild(); + + List innerQueryOutputSymbols = node.getInnerQueryOutputSymbols(); + List childOutputSymbols = childNode.getOutputSymbols(); + Map childOutputSymbolsIndexMap = new HashMap<>(childOutputSymbols.size()); + for (int i = 0; i < childOutputSymbols.size(); i++) { + childOutputSymbolsIndexMap.put(childOutputSymbols.get(i), i); + } + int[] columnIndex2TsBlockColumnIndexList = new int[innerQueryOutputSymbols.size()]; + for (int i = 0; i < innerQueryOutputSymbols.size(); i++) { + int index = childOutputSymbolsIndexMap.get(innerQueryOutputSymbols.get(i)); + columnIndex2TsBlockColumnIndexList[i] = index; + } + + Operator operator = childNode.accept(this, context); + + OperatorContext operatorContext = + addOperatorContext( + context, node.getPlanNodeId(), TableCopyToOperator.class.getSimpleName()); + return new TableCopyToOperator( + operatorContext, + operator, + node.getTargetFilePath(), + node.getCopyToOptions(), + node.getInnerQueryDatasetHeader().getColumnHeaders(), + columnIndex2TsBlockColumnIndexList); + } + + @Override + public Operator visitInto(IntoNode node, LocalExecutionPlanContext context) { + Operator child = node.getChild().accept(this, context); + OperatorContext operatorContext = + addOperatorContext(context, node.getPlanNodeId(), TableIntoOperator.class.getSimpleName()); + + PartialPath targetTable = new PartialPath(node.getTable(), false); + + Map tsDataTypeMap = new LinkedHashMap<>(); + Map inputLocationMap = new LinkedHashMap<>(); + List inputColumnTypes = new ArrayList<>(); + List inputColumnCategories = new ArrayList<>(); + + List originColumns = node.getColumns(); + List originInputColumnNames = node.getNeededInputColumnNames(); + int size = originColumns.size(); + List inputColumns = new ArrayList<>(size); + + List childOutputName = node.getChild().getOutputSymbols(); + Map map = new HashMap<>(childOutputName.size()); + for (int i = 0; i < size; i++) { + map.put(childOutputName.get(i), i); + inputColumns.add(null); + } + for (int i = 0; i < size; i++) { + int index = map.get(originInputColumnNames.get(i)); + inputColumns.set(index, originColumns.get(i)); + } + ColumnSchema timeColumnOfTargetTable = null; + for (int i = 0; i < inputColumns.size(); i++) { + String columnName = inputColumns.get(i).getName(); + inputLocationMap.put(columnName, new InputLocation(0, i)); + + TsTableColumnCategory columnCategory = inputColumns.get(i).getColumnCategory(); + if (columnCategory == TIME) { + if (timeColumnOfTargetTable == null) { + timeColumnOfTargetTable = inputColumns.get(i); + } else { + throw new SemanticException("Multiple columns with TIME category found"); + } + continue; + } + + TSDataType columnType = InternalTypeManager.getTSDataType(inputColumns.get(i).getType()); + tsDataTypeMap.put(columnName, columnType); + inputColumnTypes.add(columnType); + inputColumnCategories.add(columnCategory); + } + if (timeColumnOfTargetTable == null) { + throw new SemanticException("Missing TIME category column"); + } + + long statementSizePerLine = + OperatorGeneratorUtil.calculateStatementSizePerLine(inputColumnTypes); + + return new TableIntoOperator( + operatorContext, + child, + node.getDatabase(), + targetTable, + inputColumnTypes, + inputColumnCategories, + inputLocationMap, + tsDataTypeMap, + true, + FragmentInstanceManager.getInstance().getIntoOperationExecutor(), + statementSizePerLine, + timeColumnOfTargetTable); + } + + private boolean[] checkStatisticAndScanOrder( + AggregationTableScanNode node, String timeColumnName) { + boolean canUseStatistic = true; + int ascendingCount = 0, descendingCount = 0; + + for (Map.Entry entry : node.getAggregations().entrySet()) { + AggregationNode.Aggregation aggregation = entry.getValue(); + String funcName = aggregation.getResolvedFunction().getSignature().getName(); + Symbol argument = Symbol.from(aggregation.getArguments().get(0)); + Type argumentType = node.getAssignments().get(argument).getType(); + + switch (funcName) { + case COUNT: + case AVG: + case SUM: + case EXTREME: + break; + case MAX: + case MIN: + if (BlobType.BLOB.equals(argumentType) + || ObjectType.OBJECT.equals(argumentType) + || BinaryType.TEXT.equals(argumentType) + || BooleanType.BOOLEAN.equals(argumentType)) { + canUseStatistic = false; + } + break; + case FIRST_AGGREGATION: + case LAST_AGGREGATION: + case LAST_BY_AGGREGATION: + case FIRST_BY_AGGREGATION: + if (FIRST_AGGREGATION.equals(funcName) || FIRST_BY_AGGREGATION.equals(funcName)) { + ascendingCount++; + } else { + descendingCount++; + } + + // first/last/first_by/last_by aggregation with BLOB or OBJECT type can not use statistics + if (BlobType.BLOB.equals(argumentType) || ObjectType.OBJECT.equals(argumentType)) { + canUseStatistic = false; + break; + } + + // first and last, the second argument has to be the time column + if (FIRST_AGGREGATION.equals(funcName) || LAST_AGGREGATION.equals(funcName)) { + if (!isTimeColumn(aggregation.getArguments().get(1), timeColumnName)) { + canUseStatistic = false; + break; + } + } + + // first_by and last_by, the second argument has to be the time column + if (FIRST_BY_AGGREGATION.equals(funcName) || LAST_BY_AGGREGATION.equals(funcName)) { + if (!isTimeColumn(aggregation.getArguments().get(2), timeColumnName)) { + canUseStatistic = false; + break; + } + } + + // only last_by(time, x) or last_by(x,time) can use statistic + if ((LAST_BY_AGGREGATION.equals(funcName) || FIRST_BY_AGGREGATION.equals(funcName)) + && !isTimeColumn(aggregation.getArguments().get(0), timeColumnName) + && !isTimeColumn(aggregation.getArguments().get(1), timeColumnName)) { + canUseStatistic = false; + } + break; + default: + canUseStatistic = false; + } + } + + boolean isAscending = node.getScanOrder().isAscending(); + boolean groupByDateBin = node.getProjection() != null && !node.getProjection().isEmpty(); + // only in non-groupByDateBin situation can change the scan order + if (!groupByDateBin) { + if (ascendingCount >= descendingCount) { + node.setScanOrder(Ordering.ASC); + isAscending = true; + } else { + node.setScanOrder(Ordering.DESC); + isAscending = false; + } + } + return new boolean[] {canUseStatistic, isAscending}; + } + + private OptimizeType canUseLastCacheOptimize( + List aggregators, AggregationTableScanNode node, String timeColumnName) { + if (!CommonDescriptor.getInstance().getConfig().isLastCacheEnable() || aggregators.isEmpty()) { + return OptimizeType.NOOP; + } + + // has value filter, can not optimize + if (node.getPushDownPredicate() != null) { + return OptimizeType.NOOP; + } + + // has date_bin, can not optimize + if (!node.getGroupingKeys().isEmpty() + && node.getProjection() != null + && !node.getProjection().getMap().isEmpty()) { + return OptimizeType.NOOP; + } + + // if the timeColumnName is null, the param of function is just a timestamp column other than + // the time column + if (timeColumnName == null || !checkOrderColumnIsTime(node.getAggregations(), timeColumnName)) { + return OptimizeType.NOOP; + } + + if (canUseLastRowOptimize(aggregators)) { + return OptimizeType.LAST_ROW; + } + + if (canUseLastValuesOptimize(aggregators)) { + return OptimizeType.LAST_VALUES; + } + + return OptimizeType.NOOP; + } + + @Override + protected SessionInfo getSessionInfo(LocalExecutionPlanContext context) { + return context.getDriverContext().getFragmentInstanceContext().getSessionInfo(); + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LocalExecutionPlanContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LocalExecutionPlanContext.java index 6c9d52dbe8c31..54e475c00d86b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LocalExecutionPlanContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LocalExecutionPlanContext.java @@ -18,6 +18,11 @@ */ package org.apache.iotdb.db.queryengine.plan.planner; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.plan.planner.ITableOperatorGeneratorContext; +import org.apache.iotdb.commons.queryengine.plan.analyze.ITableTypeProvider; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.execution.driver.DataDriverContext; @@ -26,14 +31,11 @@ import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISink; import org.apache.iotdb.db.queryengine.execution.fragment.DataNodeQueryContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.source.ExchangeOperator; import org.apache.iotdb.db.queryengine.plan.analyze.TemplatedInfo; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.planner.memory.PipelineMemoryEstimator; import org.apache.iotdb.db.queryengine.plan.planner.memory.PipelineMemoryEstimatorFactory; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; import org.apache.tsfile.common.conf.TSFileConfig; @@ -64,7 +66,7 @@ import static java.util.Objects.requireNonNull; // Attention: We should use thread-safe data structure for members that are shared by all pipelines -public class LocalExecutionPlanContext { +public class LocalExecutionPlanContext implements ITableOperatorGeneratorContext { private static final Logger LOGGER = LoggerFactory.getLogger(LocalExecutionPlanContext.class); // Save operators in this pipeline, a new one will be created when creating another pipeline @@ -307,6 +309,11 @@ public TypeProvider getTypeProvider() { return typeProvider; } + @Override + public ITableTypeProvider getTableTypeProvider() { + return typeProvider; + } + public FragmentInstanceContext getInstanceContext() { return driverContext.getFragmentInstanceContext(); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LocalExecutionPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LocalExecutionPlanner.java index 8e43e4507de89..8ee7d6064d382 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LocalExecutionPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LocalExecutionPlanner.java @@ -19,25 +19,25 @@ package org.apache.iotdb.db.queryengine.plan.planner; +import org.apache.iotdb.calc.exception.MemoryNotEnoughException; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; import org.apache.iotdb.commons.memory.IMemoryBlock; import org.apache.iotdb.commons.memory.MemoryBlockType; import org.apache.iotdb.commons.path.IFullPath; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.conf.DataNodeMemoryConfig; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.common.DeviceContext; -import org.apache.iotdb.db.queryengine.exception.MemoryNotEnoughException; import org.apache.iotdb.db.queryengine.execution.driver.DataDriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.DataNodeQueryContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.metric.QueryRelatedResourceMetricSet; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.planner.memory.PipelineMemoryEstimator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; @@ -54,7 +54,7 @@ import java.util.Map; import java.util.Objects; -import static org.apache.iotdb.db.protocol.session.IClientSession.SqlDialect.TREE; +import static org.apache.iotdb.commons.queryengine.common.SqlDialect.TREE; /** * Used to plan a fragment instance. One fragment instance could be split into multiple pipelines so @@ -171,7 +171,7 @@ private Operator generateOperator( // Generate pipelines, return the last pipeline data structure // TODO Replace operator with operatorFactory to build multiple driver for one pipeline Operator root; - IClientSession.SqlDialect sqlDialect = + SqlDialect sqlDialect = instanceContext.getSessionInfo() == null ? TREE : instanceContext.getSessionInfo().getSqlDialect(); @@ -182,7 +182,7 @@ private Operator generateOperator( break; case TABLE: instanceContext.setIgnoreAllNullRows(false); - root = node.accept(new TableOperatorGenerator(metadata), context); + root = node.accept(new DataNodeTableOperatorGenerator(metadata), context); break; default: throw new IllegalArgumentException(String.format("Unknown sql dialect: %s", sqlDialect)); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java index 66559989b0a83..2a83924bdf367 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java @@ -27,13 +27,15 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.filter.SchemaFilter; import org.apache.iotdb.commons.schema.template.Template; import org.apache.iotdb.db.queryengine.common.DeviceContext; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.TimeseriesContext; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.execution.aggregation.AccumulatorFactory; import org.apache.iotdb.db.queryengine.execution.operator.AggregationUtil; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; @@ -42,7 +44,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.CountSchemaMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.DeviceSchemaFetchScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.DevicesCountNode; @@ -72,7 +73,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.IntoNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.LimitNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.OffsetNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.RawDataAggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleDeviceViewNode; @@ -125,14 +125,14 @@ import java.util.Set; import java.util.stream.Collectors; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.LAST_VALUE; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.MAX_TIME; import static org.apache.iotdb.commons.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD; +import static org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy.LINEAR; import static org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.DEVICE; import static org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.ENDTIME; import static org.apache.iotdb.db.queryengine.plan.analyze.ExpressionTypeAnalyzer.analyzeExpression; import static org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TopKNode.LIMIT_VALUE_USE_TOP_K; -import static org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy.LINEAR; -import static org.apache.iotdb.db.utils.constant.SqlConstant.LAST_VALUE; -import static org.apache.iotdb.db.utils.constant.SqlConstant.MAX_TIME; public class LogicalPlanBuilder { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java index f69fbd91196a1..3501105183927 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java @@ -20,6 +20,7 @@ import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.template.Template; import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression; @@ -28,7 +29,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.visitor.TransformToViewExpressionVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.ExplainAnalyzeNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.load.LoadTsFileNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.ActivateTemplateNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanner.java index c2a757ba10548..9ed59b4c3104e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanner.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.planner; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; @@ -26,7 +27,6 @@ import org.apache.iotdb.db.queryengine.plan.optimization.PlanOptimizer; import org.apache.iotdb.db.queryengine.plan.optimization.PredicatePushDown; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import java.util.Arrays; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorGeneratorUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorGeneratorUtil.java index 071b064c141ad..2d8a35c254746 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorGeneratorUtil.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorGeneratorUtil.java @@ -28,7 +28,7 @@ import java.util.Map; import java.util.stream.Collectors; -import static org.apache.iotdb.db.queryengine.plan.planner.OperatorTreeGenerator.UNKNOWN_DATATYPE; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.UNKNOWN_DATATYPE; public class OperatorGeneratorUtil { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorTreeGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorTreeGenerator.java index 0e32dfd097e46..2a5af16e5b36c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorTreeGenerator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/OperatorTreeGenerator.java @@ -19,6 +19,25 @@ package org.apache.iotdb.db.queryengine.plan.planner; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.AggregationMergeSortOperator; +import org.apache.iotdb.calc.execution.operator.process.CollectOperator; +import org.apache.iotdb.calc.execution.operator.process.FilterAndProjectOperator; +import org.apache.iotdb.calc.execution.operator.process.LimitOperator; +import org.apache.iotdb.calc.execution.operator.process.OffsetOperator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.BinaryConstantFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.BooleanConstantFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.DoubleConstantFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.FloatConstantFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.IntConstantFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.LongConstantFill; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.model.ModelInformation; @@ -28,13 +47,17 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.common.DeviceContext; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; -import org.apache.iotdb.db.queryengine.common.NodeRef; import org.apache.iotdb.db.queryengine.common.TimeseriesContext; -import org.apache.iotdb.db.queryengine.execution.aggregation.Accumulator; import org.apache.iotdb.db.queryengine.execution.aggregation.AccumulatorFactory; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; import org.apache.iotdb.db.queryengine.execution.aggregation.slidingwindow.SlidingWindowAggregatorFactory; @@ -53,19 +76,12 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceManager; import org.apache.iotdb.db.queryengine.execution.operator.AggregationUtil; import org.apache.iotdb.db.queryengine.execution.operator.ExplainAnalyzeOperator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.process.ActiveRegionScanMergeOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.AggregationMergeSortOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.AggregationOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.CollectOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.ColumnInjectOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.DeviceViewIntoOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.DeviceViewOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.FilterAndProjectOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.LimitOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.OffsetOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.ProjectOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.RawDataAggregationOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.SingleDeviceViewOperator; @@ -78,37 +94,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.process.TreeMergeSortOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.TreeSortOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.TreeTopKOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFillFilter; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.ILinearFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.BinaryConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.BooleanConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.DoubleConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.FloatConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.IntConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.LongConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.filter.FixedIntervalFillFilter; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.filter.MonthIntervalMSFillFilter; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.filter.MonthIntervalNSFillFilter; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.filter.MonthIntervalUSFillFilter; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.identity.IdentityFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.identity.IdentityLinearFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.linear.DoubleLinearFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.linear.FloatLinearFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.linear.IntLinearFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.linear.LongLinearFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.BinaryPreviousFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.BinaryPreviousFillWithTimeDuration; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.BooleanPreviousFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.BooleanPreviousFillWithTimeDuration; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.DoublePreviousFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.DoublePreviousFillWithTimeDuration; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.FloatPreviousFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.FloatPreviousFillWithTimeDuration; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.IntPreviousFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.IntPreviousFillWithTimeDuration; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.LongPreviousFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.LongPreviousFillWithTimeDuration; import org.apache.iotdb.db.queryengine.execution.operator.process.join.FullOuterTimeJoinOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.HorizontallyConcatOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.InnerTimeJoinOperator; @@ -176,8 +161,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.memory.PipelineMemoryEstimator; import org.apache.iotdb.db.queryengine.plan.planner.memory.PipelineMemoryEstimatorFactory; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.ExplainAnalyzeNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.CountSchemaMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.DeviceSchemaFetchScanNode; @@ -214,7 +197,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.IntoNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.LimitNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.OffsetNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ProjectNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.RawDataAggregationNode; @@ -223,7 +205,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SortNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TopKNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TransformNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.InnerTimeJoinNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.LeftOuterTimeJoinNode; @@ -253,20 +234,16 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupBySessionParameter; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByVariationParameter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.IntoPathDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.OutputColumn; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.model.ModelInferenceDescriptor; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceLastCache; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TreeDeviceSchemaCacheManager; -import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.plan.statement.component.OrderByKey; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.queryengine.plan.statement.component.SortItem; import org.apache.iotdb.db.queryengine.plan.statement.literal.Literal; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFContext; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSourceType; import org.apache.iotdb.db.utils.columngenerator.ColumnGenerator; @@ -291,7 +268,6 @@ import org.apache.tsfile.read.reader.series.PaginationController; import org.apache.tsfile.utils.Binary; import org.apache.tsfile.utils.Pair; -import org.apache.tsfile.utils.TimeDuration; import org.apache.tsfile.write.schema.IMeasurementSchema; import org.apache.tsfile.write.schema.MeasurementSchema; import org.slf4j.Logger; @@ -320,7 +296,7 @@ import static org.apache.iotdb.db.queryengine.execution.operator.AggregationUtil.calculateMaxAggregationResultSizeForLastQuery; import static org.apache.iotdb.db.queryengine.execution.operator.AggregationUtil.getOutputColumnSizePerLine; import static org.apache.iotdb.db.queryengine.execution.operator.AggregationUtil.initTimeRangeIterator; -import static org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator.getComparator; +import static org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparatorUtils.getComparator; import static org.apache.iotdb.db.queryengine.execution.operator.sink.IdentitySinkOperator.DELIMITER_BETWEEN_ID; import static org.apache.iotdb.db.queryengine.execution.operator.sink.IdentitySinkOperator.DOWNSTREAM_PLAN_NODE_ID; import static org.apache.iotdb.db.queryengine.plan.analyze.PredicateUtils.convertPredicateToFilter; @@ -328,10 +304,9 @@ import static org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor.getAggregationTypeByFuncName; import static org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions.updateFilterUsingTTL; import static org.apache.iotdb.db.queryengine.plan.statement.component.Ordering.ASC; -import static org.apache.iotdb.db.utils.TimestampPrecisionUtils.TIMESTAMP_PRECISION; /** This Visitor is responsible for transferring PlanNode Tree to Operator Tree. */ -public class OperatorTreeGenerator extends PlanVisitor { +public class OperatorTreeGenerator implements PlanVisitor { private static final Logger LOGGER = LoggerFactory.getLogger(OperatorTreeGenerator.class); @@ -345,16 +320,10 @@ public class OperatorTreeGenerator extends PlanVisitor ASC_BINARY_COMPARATOR = Comparator.naturalOrder(); private static final Comparator DESC_BINARY_COMPARATOR = Comparator.reverseOrder(); - public static final String UNKNOWN_DATATYPE = "Unknown data type: "; - @Override public Operator visitPlan(PlanNode node, LocalExecutionPlanContext context) { throw new UnsupportedOperationException("should call the concrete visitXX() method"); @@ -1350,7 +1319,7 @@ private ProcessOperator getFillOperator( case PREVIOUS: return new TreeFillOperator( operatorContext, - getPreviousFill( + CommonOperatorUtils.getPreviousFill( inputColumns, inputDataTypes, descriptor.getTimeDurationThreshold(), @@ -1358,7 +1327,9 @@ private ProcessOperator getFillOperator( child); case LINEAR: return new TreeLinearFillOperator( - operatorContext, getLinearFill(inputColumns, inputDataTypes), child); + operatorContext, + CommonOperatorUtils.getLinearFill(inputColumns, inputDataTypes), + child); default: throw new IllegalArgumentException("Unknown fill policy: " + fillPolicy); } @@ -1369,7 +1340,7 @@ private IFill[] getConstantFill( IFill[] constantFill = new IFill[inputColumns]; for (int i = 0; i < inputColumns; i++) { if (!literal.isDataTypeConsistency(inputDataTypes.get(i))) { - constantFill[i] = IDENTITY_FILL; + constantFill[i] = CommonOperatorUtils.IDENTITY_FILL; continue; } switch (inputDataTypes.get(i)) { @@ -1398,133 +1369,13 @@ private IFill[] getConstantFill( constantFill[i] = new DoubleConstantFill(literal.getDouble()); break; default: - throw new IllegalArgumentException(UNKNOWN_DATATYPE + inputDataTypes.get(i)); + throw new IllegalArgumentException( + CommonOperatorUtils.UNKNOWN_DATATYPE + inputDataTypes.get(i)); } } return constantFill; } - public static IFill[] getPreviousFill( - int inputColumns, - List inputDataTypes, - TimeDuration timeDurationThreshold, - ZoneId zoneId) { - IFillFilter filter; - if (timeDurationThreshold == null) { - filter = null; - } else if (!timeDurationThreshold.containsMonth()) { - filter = new FixedIntervalFillFilter(timeDurationThreshold.nonMonthDuration); - } else { - switch (TIMESTAMP_PRECISION) { - case "ms": - filter = - new MonthIntervalMSFillFilter( - timeDurationThreshold.monthDuration, - timeDurationThreshold.nonMonthDuration, - zoneId); - break; - case "us": - filter = - new MonthIntervalUSFillFilter( - timeDurationThreshold.monthDuration, - timeDurationThreshold.nonMonthDuration, - zoneId); - break; - case "ns": - filter = - new MonthIntervalNSFillFilter( - timeDurationThreshold.monthDuration, - timeDurationThreshold.nonMonthDuration, - zoneId); - break; - default: - // this case will never reach - throw new UnsupportedOperationException( - "not supported time_precision: " + TIMESTAMP_PRECISION); - } - } - - IFill[] previousFill = new IFill[inputColumns]; - for (int i = 0; i < inputColumns; i++) { - switch (inputDataTypes.get(i)) { - case BOOLEAN: - previousFill[i] = - filter == null - ? new BooleanPreviousFill() - : new BooleanPreviousFillWithTimeDuration(filter); - break; - case TEXT: - case STRING: - case BLOB: - case OBJECT: - previousFill[i] = - filter == null - ? new BinaryPreviousFill() - : new BinaryPreviousFillWithTimeDuration(filter); - break; - case INT32: - case DATE: - previousFill[i] = - filter == null ? new IntPreviousFill() : new IntPreviousFillWithTimeDuration(filter); - break; - case INT64: - case TIMESTAMP: - previousFill[i] = - filter == null - ? new LongPreviousFill() - : new LongPreviousFillWithTimeDuration(filter); - break; - case FLOAT: - previousFill[i] = - filter == null - ? new FloatPreviousFill() - : new FloatPreviousFillWithTimeDuration(filter); - break; - case DOUBLE: - previousFill[i] = - filter == null - ? new DoublePreviousFill() - : new DoublePreviousFillWithTimeDuration(filter); - break; - default: - throw new IllegalArgumentException(UNKNOWN_DATATYPE + inputDataTypes.get(i)); - } - } - return previousFill; - } - - public static ILinearFill[] getLinearFill(int inputColumns, List inputDataTypes) { - ILinearFill[] linearFill = new ILinearFill[inputColumns]; - for (int i = 0; i < inputColumns; i++) { - switch (inputDataTypes.get(i)) { - case INT32: - case DATE: - linearFill[i] = new IntLinearFill(); - break; - case INT64: - case TIMESTAMP: - linearFill[i] = new LongLinearFill(); - break; - case FLOAT: - linearFill[i] = new FloatLinearFill(); - break; - case DOUBLE: - linearFill[i] = new DoubleLinearFill(); - break; - case BOOLEAN: - case TEXT: - case STRING: - case BLOB: - case OBJECT: - linearFill[i] = IDENTITY_LINEAR_FILL; - break; - default: - throw new IllegalArgumentException(UNKNOWN_DATATYPE + inputDataTypes.get(i)); - } - } - return linearFill; - } - @Override public Operator visitTransform(TransformNode node, LocalExecutionPlanContext context) { final OperatorContext operatorContext = diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/PipelineDriverFactory.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/PipelineDriverFactory.java index 1f5ef929fd26b..5edf4863a6a32 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/PipelineDriverFactory.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/PipelineDriverFactory.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.planner; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.queryengine.execution.driver.DataDriver; import org.apache.iotdb.db.queryengine.execution.driver.DataDriverContext; @@ -26,7 +27,6 @@ import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.driver.SchemaDriver; import org.apache.iotdb.db.queryengine.execution.driver.SchemaDriverContext; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.source.ExchangeOperator; import static java.util.Objects.requireNonNull; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/SubPlanTypeExtractor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/SubPlanTypeExtractor.java index 48e592631dd73..1cca00c161519 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/SubPlanTypeExtractor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/SubPlanTypeExtractor.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.queryengine.plan.planner; import org.apache.iotdb.commons.path.AlignedPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.SimplePlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FilterNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java deleted file mode 100644 index f1bb43abed440..0000000000000 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java +++ /dev/null @@ -1,4520 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.iotdb.db.queryengine.plan.planner; - -import org.apache.iotdb.common.rpc.thrift.TEndPoint; -import org.apache.iotdb.commons.conf.CommonDescriptor; -import org.apache.iotdb.commons.exception.IllegalPathException; -import org.apache.iotdb.commons.path.AlignedFullPath; -import org.apache.iotdb.commons.path.NonAlignedFullPath; -import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.commons.schema.table.TsTable; -import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; -import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; -import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.ITableTimeRangeIterator; -import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.TableDateBinTimeRangeIterator; -import org.apache.iotdb.db.queryengine.execution.aggregation.timerangeiterator.TableSingleTimeWindowIterator; -import org.apache.iotdb.db.queryengine.execution.driver.DataDriverContext; -import org.apache.iotdb.db.queryengine.execution.exchange.MPPDataExchangeManager; -import org.apache.iotdb.db.queryengine.execution.exchange.MPPDataExchangeService; -import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelIndex; -import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; -import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISinkHandle; -import org.apache.iotdb.db.queryengine.execution.exchange.sink.ShuffleSinkHandle; -import org.apache.iotdb.db.queryengine.execution.exchange.source.ISourceHandle; -import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; -import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceManager; -import org.apache.iotdb.db.queryengine.execution.operator.EmptyDataOperator; -import org.apache.iotdb.db.queryengine.execution.operator.ExplainAnalyzeOperator; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.AssignUniqueIdOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.CollectOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.EnforceSingleRowOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.FilterAndProjectOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.LimitOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.MappingCollectOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.OffsetOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.PatternRecognitionOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.PreviousFillWithGroupOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.TableFillOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.TableIntoOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.TableLinearFillOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.TableLinearFillWithGroupOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.TableMergeSortOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.TableSortOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.TableStreamSortOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.TableTopKOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.ValuesOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.copyto.TableCopyToOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.ILinearFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.BinaryConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.BooleanConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.DoubleConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.FloatConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.IntConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.LongConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.TableFunctionLeafOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.TableFunctionOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.gapfill.GapFillWGroupWMoOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.gapfill.GapFillWGroupWoMoOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.gapfill.GapFillWoGroupWMoOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.gapfill.GapFillWoGroupWoMoOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.FullOuterTimeJoinOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.InnerTimeJoinOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.SimpleNestedLoopCrossJoinOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.TableLeftOuterTimeJoinOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.AscTimeComparator; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.ColumnMerger; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.DescTimeComparator; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator.JoinKeyComparatorFactory; -import org.apache.iotdb.db.queryengine.execution.operator.process.last.LastQueryUtil; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.LogicalIndexNavigation; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PatternAggregationTracker; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PatternAggregator; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PatternVariableRecognizer; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PhysicalAggregationPointer; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PhysicalValueAccessor; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PhysicalValuePointer; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression.Computation; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression.PatternExpressionComputation; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.IrRowPatternToProgramRewriter; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.Matcher; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.Program; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.RowNumberOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.TableWindowOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.TopKRankingOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.WindowFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.WindowFunctionFactory; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.aggregate.AggregationWindowFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.aggregate.WindowAggregator; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.FrameInfo; -import org.apache.iotdb.db.queryengine.execution.operator.schema.CountMergeOperator; -import org.apache.iotdb.db.queryengine.execution.operator.schema.SchemaCountOperator; -import org.apache.iotdb.db.queryengine.execution.operator.schema.SchemaQueryScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.schema.source.DevicePredicateFilter; -import org.apache.iotdb.db.queryengine.execution.operator.schema.source.SchemaSourceFactory; -import org.apache.iotdb.db.queryengine.execution.operator.sink.IdentitySinkOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.AbstractDataSourceOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.ExchangeOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractAggTableScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.AsofMergeSortInnerJoinOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.AsofMergeSortLeftJoinOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.CteScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.DefaultAggTableScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.DeviceIteratorScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.InformationSchemaTableScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.LastQueryAggTableScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.MarkDistinctOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.MergeSortFullOuterJoinOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.MergeSortInnerJoinOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.MergeSortLeftJoinOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.MergeSortSemiJoinOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TreeAlignedDeviceViewAggregationScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TreeAlignedDeviceViewScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TreeNonAlignedDeviceViewAggregationScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TreeToTableViewAdaptorOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AggregationOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.LastByDescAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.LastDescAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.TableAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.TableAggregator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedAggregator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.HashAggregationOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.StreamingAggregationOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.StreamingHashAggregationOperator; -import org.apache.iotdb.db.queryengine.execution.relational.ColumnTransformerBuilder; -import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; -import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeDevicePathCache; -import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeTTLCache; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.CountSchemaMergeNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.ConvertPredicateToTimeFilterVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionKind; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.NonAlignedDeviceEntry; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceSchemaCache; -import org.apache.iotdb.db.queryengine.plan.relational.planner.CastToBlobLiteralVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.CastToBooleanLiteralVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.CastToDateLiteralVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.CastToDoubleLiteralVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.CastToFloatLiteralVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.CastToInt32LiteralVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.CastToInt64LiteralVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.CastToStringLiteralVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.CastToTimestampLiteralVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AlignedAggregationTreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Measure; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.NonAlignedAggregationTreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeAlignedDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeNonAlignedDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceFetchNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryCountNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.AggregationLabelSet; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.AggregationValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ClassifierValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.LogicalIndexPointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.MatchNumberValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ScalarValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; -import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.LeafColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer; -import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.IDeviceSchemaInfo; -import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; -import org.apache.iotdb.db.schemaengine.table.DataNodeTreeViewSchemaUtils; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; -import org.apache.iotdb.db.utils.datastructure.SortKey; -import org.apache.iotdb.udf.api.relational.TableFunction; -import org.apache.iotdb.udf.api.relational.table.TableFunctionProcessorProvider; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.ListMultimap; -import org.apache.tsfile.block.column.Column; -import org.apache.tsfile.common.conf.TSFileConfig; -import org.apache.tsfile.common.conf.TSFileDescriptor; -import org.apache.tsfile.enums.TSDataType; -import org.apache.tsfile.file.metadata.IDeviceID; -import org.apache.tsfile.file.metadata.idcolumn.FourOrHigherLevelDBExtractor; -import org.apache.tsfile.file.metadata.idcolumn.ThreeLevelDBExtractor; -import org.apache.tsfile.file.metadata.idcolumn.TwoLevelDBExtractor; -import org.apache.tsfile.read.TimeValuePair; -import org.apache.tsfile.read.common.TimeRange; -import org.apache.tsfile.read.common.block.column.BinaryColumn; -import org.apache.tsfile.read.common.block.column.BooleanColumn; -import org.apache.tsfile.read.common.block.column.DoubleColumn; -import org.apache.tsfile.read.common.block.column.FloatColumn; -import org.apache.tsfile.read.common.block.column.IntColumn; -import org.apache.tsfile.read.common.block.column.LongColumn; -import org.apache.tsfile.read.common.type.BinaryType; -import org.apache.tsfile.read.common.type.BlobType; -import org.apache.tsfile.read.common.type.BooleanType; -import org.apache.tsfile.read.common.type.ObjectType; -import org.apache.tsfile.read.common.type.Type; -import org.apache.tsfile.read.common.type.TypeFactory; -import org.apache.tsfile.read.filter.basic.Filter; -import org.apache.tsfile.utils.Binary; -import org.apache.tsfile.utils.Pair; -import org.apache.tsfile.utils.RamUsageEstimator; -import org.apache.tsfile.utils.TsPrimitiveType; -import org.apache.tsfile.write.schema.IMeasurementSchema; -import org.apache.tsfile.write.schema.MeasurementSchema; - -import javax.validation.constraints.NotNull; - -import java.io.File; -import java.util.AbstractMap; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.OptionalInt; -import java.util.OptionalLong; -import java.util.Set; -import java.util.function.BiFunction; -import java.util.stream.Collectors; -import java.util.stream.IntStream; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.collect.ImmutableList.toImmutableList; -import static com.google.common.collect.Iterables.getOnlyElement; -import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory.FIELD; -import static org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory.TIME; -import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.getAggregationTypeByFuncName; -import static org.apache.iotdb.db.queryengine.common.DataNodeEndPoints.isSameNode; -import static org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator.getComparatorForTable; -import static org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PhysicalValuePointer.CLASSIFIER; -import static org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.PhysicalValuePointer.MATCH_NUMBER; -import static org.apache.iotdb.db.queryengine.execution.operator.sink.IdentitySinkOperator.DELIMITER_BETWEEN_ID; -import static org.apache.iotdb.db.queryengine.execution.operator.sink.IdentitySinkOperator.DOWNSTREAM_PLAN_NODE_ID; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.constructAlignedPath; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.InformationSchemaContentSupplierFactory.getSupplier; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AccumulatorFactory.createAccumulator; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AccumulatorFactory.createBuiltinAccumulator; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AccumulatorFactory.createGroupedAccumulator; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash.DEFAULT_GROUP_NUMBER; -import static org.apache.iotdb.db.queryengine.plan.analyze.PredicateUtils.convertPredicateToFilter; -import static org.apache.iotdb.db.queryengine.plan.planner.OperatorTreeGenerator.IDENTITY_FILL; -import static org.apache.iotdb.db.queryengine.plan.planner.OperatorTreeGenerator.UNKNOWN_DATATYPE; -import static org.apache.iotdb.db.queryengine.plan.planner.OperatorTreeGenerator.getLinearFill; -import static org.apache.iotdb.db.queryengine.plan.planner.OperatorTreeGenerator.getPreviousFill; -import static org.apache.iotdb.db.queryengine.plan.planner.OperatorTreeGenerator.isFilterGtOrGe; -import static org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions.updateFilterUsingTTL; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceLastCache.EMPTY_PRIMITIVE_TYPE; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_FIRST; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_LAST; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.DESC_NULLS_FIRST; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.DESC_NULLS_LAST; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.GlobalTimePredicateExtractVisitor.isTimeColumn; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowsPerMatch.ONE; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.SkipToPosition.LAST; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; -import static org.apache.iotdb.db.utils.constant.SqlConstant.AVG; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT; -import static org.apache.iotdb.db.utils.constant.SqlConstant.EXTREME; -import static org.apache.iotdb.db.utils.constant.SqlConstant.FIRST_AGGREGATION; -import static org.apache.iotdb.db.utils.constant.SqlConstant.FIRST_BY_AGGREGATION; -import static org.apache.iotdb.db.utils.constant.SqlConstant.LAST_AGGREGATION; -import static org.apache.iotdb.db.utils.constant.SqlConstant.LAST_BY_AGGREGATION; -import static org.apache.iotdb.db.utils.constant.SqlConstant.MAX; -import static org.apache.iotdb.db.utils.constant.SqlConstant.MIN; -import static org.apache.iotdb.db.utils.constant.SqlConstant.SUM; -import static org.apache.tsfile.read.common.type.LongType.INT64; -import static org.apache.tsfile.read.common.type.StringType.STRING; -import static org.apache.tsfile.read.common.type.TimestampType.TIMESTAMP; - -/** This Visitor is responsible for transferring Table PlanNode Tree to Table Operator Tree. */ -public class TableOperatorGenerator extends PlanVisitor { - - private final Metadata metadata; - - private static final DataNodeDevicePathCache DEVICE_PATH_CACHE = - DataNodeDevicePathCache.getInstance(); - - public TableOperatorGenerator(Metadata metadata) { - this.metadata = metadata; - } - - @Override - public Operator visitPlan(PlanNode node, LocalExecutionPlanContext context) { - throw new UnsupportedOperationException("should call the concrete visitXX() method"); - } - - private static final MPPDataExchangeManager MPP_DATA_EXCHANGE_MANAGER = - MPPDataExchangeService.getInstance().getMPPDataExchangeManager(); - - @Override - public Operator visitIdentitySink(IdentitySinkNode node, LocalExecutionPlanContext context) { - context.addExchangeSumNum(1); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - IdentitySinkOperator.class.getSimpleName()); - String downStreamPlanNodeId = - node.getDownStreamChannelLocationList().stream() - .map(DownStreamChannelLocation::getRemotePlanNodeId) - .collect(Collectors.joining(DELIMITER_BETWEEN_ID)); - if (!downStreamPlanNodeId.isEmpty()) { - operatorContext.recordSpecifiedInfo(DOWNSTREAM_PLAN_NODE_ID, downStreamPlanNodeId); - } - checkArgument( - MPP_DATA_EXCHANGE_MANAGER != null, "MPP_DATA_EXCHANGE_MANAGER should not be null"); - FragmentInstanceId localInstanceId = context.getInstanceContext().getId(); - DownStreamChannelIndex downStreamChannelIndex = new DownStreamChannelIndex(0); - ISinkHandle sinkHandle = - MPP_DATA_EXCHANGE_MANAGER.createShuffleSinkHandle( - node.getDownStreamChannelLocationList(), - downStreamChannelIndex, - ShuffleSinkHandle.ShuffleStrategyEnum.PLAIN, - localInstanceId.toThrift(), - node.getPlanNodeId().getId(), - context.getInstanceContext()); - - if (node.getChildren().size() == 1) { - Operator child = node.getChildren().get(0).accept(this, context); - List children = new ArrayList<>(1); - children.add(child); - sinkHandle.setMaxBytesCanReserve(context.getMaxBytesOneHandleCanReserve()); - context.getDriverContext().setSink(sinkHandle); - return new IdentitySinkOperator( - operatorContext, children, downStreamChannelIndex, sinkHandle); - } else { - throw new IllegalStateException( - "IdentitySinkNode should only have one child in table model."); - } - } - - @Override - public Operator visitTableExchange(ExchangeNode node, LocalExecutionPlanContext context) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - ExchangeOperator.class.getSimpleName()); - - FragmentInstanceId localInstanceId = context.getInstanceContext().getId(); - FragmentInstanceId remoteInstanceId = node.getUpstreamInstanceId(); - - TEndPoint upstreamEndPoint = node.getUpstreamEndpoint(); - boolean isSameNode = isSameNode(upstreamEndPoint); - ISourceHandle sourceHandle = - isSameNode - ? MPP_DATA_EXCHANGE_MANAGER.createLocalSourceHandleForFragment( - localInstanceId.toThrift(), - node.getPlanNodeId().getId(), - node.getUpstreamPlanNodeId().getId(), - remoteInstanceId.toThrift(), - node.getIndexOfUpstreamSinkHandle(), - context.getInstanceContext()::failed, - context.getInstanceContext().isHighestPriority()) - : MPP_DATA_EXCHANGE_MANAGER.createSourceHandle( - localInstanceId.toThrift(), - node.getPlanNodeId().getId(), - node.getIndexOfUpstreamSinkHandle(), - upstreamEndPoint, - remoteInstanceId.toThrift(), - context.getInstanceContext()::failed, - context.getInstanceContext().isHighestPriority()); - if (!isSameNode) { - context.addExchangeSumNum(1); - } - sourceHandle.setMaxBytesCanReserve(context.getMaxBytesOneHandleCanReserve()); - ExchangeOperator exchangeOperator = - new ExchangeOperator(operatorContext, sourceHandle, node.getUpstreamPlanNodeId()); - context.addExchangeOperator(exchangeOperator); - return exchangeOperator; - } - - @Override - public Operator visitTreeNonAlignedDeviceViewScan( - TreeNonAlignedDeviceViewScanNode node, LocalExecutionPlanContext context) { - - boolean containsFieldColumn = false; - for (Map.Entry entry : node.getAssignments().entrySet()) { - if (entry.getValue().getColumnCategory() == FIELD) { - containsFieldColumn = true; - break; - } - } - TsTable tsTable = - DataNodeTableCache.getInstance() - .getTable( - node.getQualifiedObjectName().getDatabaseName(), - node.getQualifiedObjectName().getObjectName()); - if (!containsFieldColumn) { - Map newAssignments = new LinkedHashMap<>(node.getAssignments()); - for (TsTableColumnSchema columnSchema : tsTable.getColumnList()) { - if (columnSchema.getColumnCategory() == FIELD) { - newAssignments.put( - new Symbol(columnSchema.getColumnName()), - new ColumnSchema( - columnSchema.getColumnName(), - TypeFactory.getType(columnSchema.getDataType()), - false, - columnSchema.getColumnCategory())); - containsFieldColumn = true; - } - } - node.setAssignments(newAssignments); - } - // For non-aligned series, scan cannot be performed when no field columns - // can be obtained, so an empty result set is returned. - if (!containsFieldColumn || node.getDeviceEntries().isEmpty()) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - EmptyDataOperator.class.getSimpleName()); - return new EmptyDataOperator(operatorContext); - } - String treePrefixPath = DataNodeTreeViewSchemaUtils.getPrefixPath(tsTable); - IDeviceID.TreeDeviceIdColumnValueExtractor extractor = - TableOperatorGenerator.createTreeDeviceIdColumnValueExtractor(treePrefixPath); - long viewTTL = tsTable.getCachedTableTTL(); - - DeviceIteratorScanOperator.TreeNonAlignedDeviceViewScanParameters parameter = - constructTreeNonAlignedDeviceViewScanOperatorParameter( - node, - context, - TreeNonAlignedDeviceViewScanNode.class.getSimpleName(), - node.getMeasurementColumnNameMap(), - extractor, - viewTTL); - - DeviceIteratorScanOperator treeNonAlignedDeviceIteratorScanOperator = - new DeviceIteratorScanOperator( - parameter.context, parameter.deviceEntries, parameter.generator); - addSource( - treeNonAlignedDeviceIteratorScanOperator, - context, - node, - parameter.measurementColumnNames, - parameter.measurementSchemas, - parameter.allSensors, - TreeNonAlignedDeviceViewScanNode.class.getSimpleName()); - - if (!parameter.generator.keepOffsetAndLimitOperatorAfterDeviceIterator()) { - return treeNonAlignedDeviceIteratorScanOperator; - } - Operator operator = treeNonAlignedDeviceIteratorScanOperator; - if (node.getPushDownOffset() > 0) { - operator = new OffsetOperator(parameter.context, node.getPushDownOffset(), operator); - } - if (node.getPushDownLimit() > 0) { - operator = new LimitOperator(parameter.context, node.getPushDownLimit(), operator); - } - return operator; - } - - private DeviceIteratorScanOperator.TreeNonAlignedDeviceViewScanParameters - constructTreeNonAlignedDeviceViewScanOperatorParameter( - TreeNonAlignedDeviceViewScanNode node, - LocalExecutionPlanContext context, - String className, - Map fieldColumnsRenameMap, - IDeviceID.TreeDeviceIdColumnValueExtractor extractor, - long viewTTL) { - if (node.isPushLimitToEachDevice() && node.getPushDownOffset() > 0) { - throw new IllegalArgumentException( - "PushDownOffset should not be set when isPushLimitToEachDevice is true."); - } - CommonTableScanOperatorParameters commonParameter = - new CommonTableScanOperatorParameters(node, fieldColumnsRenameMap, true); - List measurementSchemas = commonParameter.measurementSchemas; - List measurementSchemaIndex2Symbols = commonParameter.measurementSchemaIndex2Symbol; - List measurementColumnNames = commonParameter.measurementColumnNames; - List fullColumnSchemas = commonParameter.columnSchemas; - List symbolInputs = commonParameter.symbolInputs; - int[] columnsIndexArray = commonParameter.columnsIndexArray; - - boolean isSingleColumn = measurementSchemas.size() == 1; - - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext(context.getNextOperatorId(), node.getPlanNodeId(), className); - - Set allSensors = new HashSet<>(measurementColumnNames); - - DeviceIteratorScanOperator.DeviceChildOperatorTreeGenerator deviceChildOperatorTreeGenerator = - new DeviceIteratorScanOperator.DeviceChildOperatorTreeGenerator() { - - private Operator operator; - private List seriesScanOptionsList; - private List seriesScanOperators; - private FilterAndProjectOperator filterAndProjectOperator; - private OffsetOperator reuseOffsetOperator; - private LimitOperator reuseLimitOperator; - private Operator startCloseInternalOperator; - - private List cannotPushDownConjuncts; - private boolean removeUpperOffsetAndLimitOperator; - - private final long INSTANCE_SIZE = - RamUsageEstimator.shallowSizeOfInstance(this.getClass()); - - @Override - public long ramBytesUsed() { - return INSTANCE_SIZE - + (seriesScanOptionsList == null - ? 0L - : seriesScanOptionsList.stream() - .mapToLong(seriesScanOption -> seriesScanOption.ramBytesUsed()) - .sum()); - } - - @Override - public boolean keepOffsetAndLimitOperatorAfterDeviceIterator() { - calculateSeriesScanOptionsList(); - return !removeUpperOffsetAndLimitOperator && !node.isPushLimitToEachDevice(); - } - - @Override - public void generateCurrentDeviceOperatorTree( - DeviceEntry deviceEntry, boolean needAdaptor) { - calculateSeriesScanOptionsList(); - if (needAdaptor) { - operator = constructTreeToTableViewAdaptorOperator(deviceEntry); - } else { - seriesScanOperators = new ArrayList<>(measurementSchemas.size()); - operator = constructAndJoinScanOperators(deviceEntry); - } - boolean needToPruneColumn = - node.getAssignments().size() != node.getOutputSymbols().size(); - if (isSingleColumn) { - operator = needToPruneColumn ? getFilterAndProjectOperator(operator) : operator; - return; - } - if (!cannotPushDownConjuncts.isEmpty() || needToPruneColumn) { - operator = getFilterAndProjectOperator(operator); - } - if (!node.isPushLimitToEachDevice() || removeUpperOffsetAndLimitOperator) { - return; - } - if (node.getPushDownLimit() > 0) { - operator = new LimitOperator(operatorContext, node.getPushDownLimit(), operator); - } - } - - private void calculateSeriesScanOptionsList() { - if (seriesScanOptionsList != null) { - return; - } - seriesScanOptionsList = new ArrayList<>(measurementSchemas.size()); - cannotPushDownConjuncts = new ArrayList<>(); - Map> pushDownConjunctsForEachMeasurement = new HashMap<>(); - if (node.getPushDownPredicate() != null) { - List conjuncts = IrUtils.extractConjuncts(node.getPushDownPredicate()); - for (Expression conjunct : conjuncts) { - Set symbols = SymbolsExtractor.extractUnique(conjunct); - boolean containsMultiDataSource = symbols.size() > 1; - if (containsMultiDataSource) { - cannotPushDownConjuncts.add(conjunct); - continue; - } - Symbol symbol = symbols.iterator().next(); - pushDownConjunctsForEachMeasurement - .computeIfAbsent(symbol, k -> new ArrayList<>()) - .add(conjunct); - } - } - - // Using getSeriesScanOptionsBuilder to create SeriesScanBuilder will cause multiple - // calls to setTimeFilterForTableModel and generate a deeply nested Or filter. - // Therefore, a separate setting is made here - Filter timeFilter = null; - if (node.getTimePredicate().isPresent()) { - Expression timePredicate = node.getTimePredicate().get(); - timeFilter = - timePredicate.accept( - new ConvertPredicateToTimeFilterVisitor( - context.getZoneId(), TimestampPrecisionUtils.currPrecision), - null); - context - .getDriverContext() - .getFragmentInstanceContext() - .setTimeFilterForTableModel(timeFilter); - } - - boolean canPushDownLimit = cannotPushDownConjuncts.isEmpty(); - // only use full outer time join - boolean canPushDownLimitToAllSeriesScanOptions = - canPushDownLimit && pushDownConjunctsForEachMeasurement.isEmpty(); - // the left child of LeftOuterTimeJoinOperator is SeriesScanOperator - boolean pushDownOffsetAndLimitToLeftChildSeriesScanOperator = - canPushDownLimit && pushDownConjunctsForEachMeasurement.size() == 1; - // the left child of LeftOuterTimeJoinOperator is InnerTimeJoinOperator - boolean pushDownOffsetAndLimitAfterInnerJoinOperator = - canPushDownLimit && pushDownConjunctsForEachMeasurement.size() > 1; - removeUpperOffsetAndLimitOperator = - pushDownOffsetAndLimitToLeftChildSeriesScanOperator - || pushDownOffsetAndLimitAfterInnerJoinOperator - || isSingleColumn; - for (Symbol symbol : measurementSchemaIndex2Symbols) { - List pushDownPredicatesForCurrentMeasurement = - pushDownConjunctsForEachMeasurement.get(symbol); - Expression pushDownPredicateForCurrentMeasurement = - isSingleColumn - ? node.getPushDownPredicate() - : (pushDownPredicatesForCurrentMeasurement == null - ? null - : IrUtils.combineConjuncts(pushDownPredicatesForCurrentMeasurement)); - SeriesScanOptions.Builder builder = new SeriesScanOptions.Builder(); - // time filter may be stateful, so we need to copy it - builder.withGlobalTimeFilter(timeFilter == null ? null : timeFilter.copy()); - builder.withIsTableViewForTreeModel(true).withAllSensors(allSensors); - if (pushDownPredicateForCurrentMeasurement != null) { - builder.withPushDownFilter( - convertPredicateToFilter( - pushDownPredicateForCurrentMeasurement, - Collections.singletonMap(symbol.getName(), 0), - commonParameter.columnSchemaMap, - commonParameter.timeColumnName, - context.getZoneId(), - TimestampPrecisionUtils.currPrecision)); - } - if (isSingleColumn - || (pushDownOffsetAndLimitToLeftChildSeriesScanOperator - && pushDownPredicateForCurrentMeasurement != null)) { - builder.withPushDownLimit(node.getPushDownLimit()); - builder.withPushLimitToEachDevice(node.isPushLimitToEachDevice()); - } - - // In the case of single column, both offset and limit are pushed down to the - // SeriesScanOperator - if (!isSingleColumn && canPushDownLimitToAllSeriesScanOptions) { - builder.withPushDownLimit(node.getPushDownLimit() + node.getPushDownOffset()); - } - if (isSingleColumn - || (pushDownOffsetAndLimitToLeftChildSeriesScanOperator - && pushDownPredicateForCurrentMeasurement != null)) { - builder.withPushDownOffset( - node.isPushLimitToEachDevice() ? 0 : node.getPushDownOffset()); - } - SeriesScanOptions options = builder.build(); - options.setTTLForTableView(viewTTL); - seriesScanOptionsList.add(options); - } - } - - private Operator constructTreeToTableViewAdaptorOperator(DeviceEntry deviceEntry) { - seriesScanOperators = new ArrayList<>(measurementSchemas.size()); - operator = constructAndJoinScanOperators(deviceEntry); - return new TreeToTableViewAdaptorOperator( - operatorContext, - deviceEntry, - columnsIndexArray, - fullColumnSchemas, - operator, - extractor); - } - - private Operator constructAndJoinScanOperators(DeviceEntry deviceEntry) { - List childrenWithPushDownPredicate = new ArrayList<>(); - List innerJoinDataTypeList = new ArrayList<>(); - List childrenWithoutPushDownPredicate = new ArrayList<>(); - List fullOuterTimeJoinDataTypeList = new ArrayList<>(); - Map leftOuterJoinColumnIndexMap = new HashMap<>(); - for (int i = 0; i < measurementSchemas.size(); i++) { - IMeasurementSchema measurementSchema = measurementSchemas.get(i); - NonAlignedFullPath path = - new NonAlignedFullPath(deviceEntry.getDeviceID(), measurementSchema); - SeriesScanOptions seriesScanOptions = seriesScanOptionsList.get(i); - Operator seriesScanOperator = - new SeriesScanOperator( - operatorContext, - node.getPlanNodeId(), - path, - node.getScanOrder(), - seriesScanOptions); - seriesScanOperators.add(seriesScanOperator); - if (seriesScanOptions.getPushDownFilter() != null) { - childrenWithPushDownPredicate.add(seriesScanOperator); - innerJoinDataTypeList.add(measurementSchema.getType()); - leftOuterJoinColumnIndexMap.put( - new InputLocation(0, childrenWithPushDownPredicate.size() - 1), i); - } else { - childrenWithoutPushDownPredicate.add(seriesScanOperator); - fullOuterTimeJoinDataTypeList.add(measurementSchema.getType()); - leftOuterJoinColumnIndexMap.put( - new InputLocation(1, childrenWithoutPushDownPredicate.size() - 1), i); - } - } - Operator leftChild = - generateInnerTimeJoinOperator(childrenWithPushDownPredicate, innerJoinDataTypeList); - Operator rightChild = - generateFullOuterTimeJoinOperator( - childrenWithoutPushDownPredicate, fullOuterTimeJoinDataTypeList); - return generateLeftOuterTimeJoinOperator( - leftChild, - rightChild, - childrenWithPushDownPredicate.size(), - leftOuterJoinColumnIndexMap, - IMeasurementSchema.getDataTypeList(measurementSchemas)); - } - - private Operator generateInnerTimeJoinOperator( - List operators, List dataTypes) { - if (operators.isEmpty()) { - return null; - } - if (operators.size() == 1) { - return operators.get(0); - } - Map outputColumnMap = new HashMap<>(); - for (int i = 0; i < operators.size(); i++) { - outputColumnMap.put(new InputLocation(i, 0), i); - } - Operator currentOperator = - new InnerTimeJoinOperator( - operatorContext, - operators, - dataTypes, - node.getScanOrder() == Ordering.ASC - ? new AscTimeComparator() - : new DescTimeComparator(), - outputColumnMap); - boolean addOffsetAndLimitOperatorAfterLeftChild = - operators.size() > 1 && cannotPushDownConjuncts.isEmpty(); - if (addOffsetAndLimitOperatorAfterLeftChild) { - if (node.getPushDownOffset() > 0) { - currentOperator = getReuseOffsetOperator(currentOperator); - } - if (node.getPushDownLimit() > 0) { - currentOperator = getReuseLimitOperator(currentOperator); - } - } - return currentOperator; - } - - private Operator generateFullOuterTimeJoinOperator( - List operators, List dataTypes) { - if (operators.isEmpty()) { - return null; - } - if (operators.size() == 1) { - return operators.get(0); - } - List columnMergers = new ArrayList<>(operators.size()); - for (int i = 0; i < operators.size(); i++) { - columnMergers.add( - new SingleColumnMerger( - new InputLocation(i, 0), - node.getScanOrder() == Ordering.ASC - ? new AscTimeComparator() - : new DescTimeComparator())); - } - return new FullOuterTimeJoinOperator( - operatorContext, - operators, - node.getScanOrder(), - dataTypes, - columnMergers, - node.getScanOrder() == Ordering.ASC - ? new AscTimeComparator() - : new DescTimeComparator()); - } - - private Operator generateLeftOuterTimeJoinOperator( - Operator left, - Operator right, - int leftColumnCount, - Map outputColumnMap, - List dataTypes) { - if (left == null) { - return right; - } else if (right == null) { - return left; - } else { - return new TableLeftOuterTimeJoinOperator( - operatorContext, - left, - right, - leftColumnCount, - outputColumnMap, - dataTypes, - node.getScanOrder() == Ordering.ASC - ? new AscTimeComparator() - : new DescTimeComparator()); - } - } - - private Operator getReuseOffsetOperator(Operator child) { - this.reuseOffsetOperator = - reuseOffsetOperator == null - ? new OffsetOperator(operatorContext, node.getPushDownOffset(), child) - : new OffsetOperator(reuseOffsetOperator, child); - return this.reuseOffsetOperator; - } - - private Operator getReuseLimitOperator(Operator child) { - this.reuseLimitOperator = - reuseLimitOperator == null - ? new LimitOperator(operatorContext, node.getPushDownLimit(), child) - : new LimitOperator(reuseLimitOperator, child); - return this.reuseLimitOperator; - } - - private Operator getFilterAndProjectOperator(Operator childOperator) { - startCloseInternalOperator = childOperator; - if (filterAndProjectOperator != null) { - return new FilterAndProjectOperator(filterAndProjectOperator, childOperator); - } - List inputDataTypeList = new ArrayList<>(fullColumnSchemas.size()); - Map> symbolInputLocationMap = - new HashMap<>(fullColumnSchemas.size()); - for (int i = 0; i < fullColumnSchemas.size(); i++) { - ColumnSchema columnSchema = fullColumnSchemas.get(i); - symbolInputLocationMap - .computeIfAbsent( - new Symbol(symbolInputs.get(i).getName()), key -> new ArrayList<>()) - .add(new InputLocation(0, i)); - inputDataTypeList.add(getTSDataType(columnSchema.getType())); - } - Expression combinedCannotPushDownPredicates = - cannotPushDownConjuncts.isEmpty() - ? null - : IrUtils.combineConjuncts(cannotPushDownConjuncts); - filterAndProjectOperator = - (FilterAndProjectOperator) - TableOperatorGenerator.this.constructFilterAndProjectOperator( - Optional.ofNullable(combinedCannotPushDownPredicates), - childOperator, - node.getOutputSymbols().stream() - .map(Symbol::toSymbolReference) - .toArray(Expression[]::new), - inputDataTypeList, - symbolInputLocationMap, - node.getPlanNodeId(), - context); - return filterAndProjectOperator; - } - - @Override - public Operator getCurrentDeviceRootOperator() { - return operator; - } - - @Override - public List getCurrentDeviceDataSourceOperators() { - return seriesScanOperators; - } - - @Override - public Operator getCurrentDeviceStartCloseOperator() { - return startCloseInternalOperator == null ? operator : startCloseInternalOperator; - } - }; - - return new DeviceIteratorScanOperator.TreeNonAlignedDeviceViewScanParameters( - allSensors, - operatorContext, - node.getDeviceEntries(), - measurementColumnNames, - measurementSchemas, - deviceChildOperatorTreeGenerator); - } - - private static class CommonTableScanOperatorParameters { - - List outputColumnNames; - List columnSchemas; - List symbolInputs; - int[] columnsIndexArray; - Map columnSchemaMap; - Map tagAndAttributeColumnsIndexMap; - List measurementColumnNames; - Map measurementColumnsIndexMap; - String timeColumnName; - List measurementSchemas; - List measurementSchemaIndex2Symbol; - int measurementColumnCount; - int idx; - - private CommonTableScanOperatorParameters( - DeviceTableScanNode node, - Map fieldColumnsRenameMap, - boolean keepNonOutputMeasurementColumns) { - outputColumnNames = node.getOutputSymbols(); - int outputColumnCount = - keepNonOutputMeasurementColumns ? node.getAssignments().size() : outputColumnNames.size(); - columnSchemas = new ArrayList<>(outputColumnCount); - symbolInputs = new ArrayList<>(outputColumnCount); - columnsIndexArray = new int[outputColumnCount]; - columnSchemaMap = node.getAssignments(); - tagAndAttributeColumnsIndexMap = node.getTagAndAttributeIndexMap(); - measurementColumnNames = new ArrayList<>(); - measurementColumnsIndexMap = new HashMap<>(); - measurementSchemas = new ArrayList<>(); - measurementSchemaIndex2Symbol = new ArrayList<>(); - measurementColumnCount = 0; - idx = 0; - - boolean addedTimeColumn = false; - for (Symbol columnName : outputColumnNames) { - ColumnSchema schema = - requireNonNull(columnSchemaMap.get(columnName), columnName + " is null"); - - symbolInputs.add(columnName); - switch (schema.getColumnCategory()) { - case TAG: - case ATTRIBUTE: - columnsIndexArray[idx++] = - requireNonNull( - tagAndAttributeColumnsIndexMap.get(columnName), columnName + " is null"); - columnSchemas.add(schema); - break; - case FIELD: - columnsIndexArray[idx++] = measurementColumnCount; - measurementColumnCount++; - - String realMeasurementName = - fieldColumnsRenameMap.getOrDefault(schema.getName(), schema.getName()); - - measurementColumnNames.add(realMeasurementName); - measurementSchemas.add( - new MeasurementSchema(realMeasurementName, getTSDataType(schema.getType()))); - measurementSchemaIndex2Symbol.add(columnName); - columnSchemas.add(schema); - measurementColumnsIndexMap.put(columnName.getName(), measurementColumnCount - 1); - break; - case TIME: - columnsIndexArray[idx++] = -1; - columnSchemas.add(schema); - timeColumnName = columnName.getName(); - addedTimeColumn = true; - break; - default: - throw new IllegalArgumentException( - "Unexpected column category: " + schema.getColumnCategory()); - } - } - Set outputSet = new HashSet<>(outputColumnNames); - for (Map.Entry entry : node.getAssignments().entrySet()) { - if (!outputSet.contains(entry.getKey()) && entry.getValue().getColumnCategory() == FIELD) { - if (keepNonOutputMeasurementColumns) { - columnSchemas.add(entry.getValue()); - columnsIndexArray[idx++] = measurementColumnCount; - symbolInputs.add(entry.getKey()); - } - measurementColumnCount++; - String realMeasurementName = - fieldColumnsRenameMap.getOrDefault( - entry.getValue().getName(), entry.getValue().getName()); - - measurementColumnNames.add(realMeasurementName); - measurementSchemas.add( - new MeasurementSchema( - realMeasurementName, getTSDataType(entry.getValue().getType()))); - measurementSchemaIndex2Symbol.add(entry.getKey()); - measurementColumnsIndexMap.put(entry.getKey().getName(), measurementColumnCount - 1); - } else if (entry.getValue().getColumnCategory() == TIME) { - timeColumnName = entry.getKey().getName(); - // for non aligned series table view scan, here the time column will not be obtained - // through this structure, but we need to ensure that the length of columnSchemas is - // consistent with the length of columnsIndexArray - if (keepNonOutputMeasurementColumns && !addedTimeColumn) { - columnSchemas.add(entry.getValue()); - columnsIndexArray[idx++] = -1; - symbolInputs.add(entry.getKey()); - } - } - } - } - } - - public static IDeviceID.TreeDeviceIdColumnValueExtractor createTreeDeviceIdColumnValueExtractor( - String treeDBName) { - try { - PartialPath db = new PartialPath(treeDBName); - int dbLevel = db.getNodes().length; - // For the path of 'root.**', we can only get the root level in this place - // In this case, we still need to support deviceId such as 'root.db' - // The relevant deviceId must be two level db, but we can't get it now - if (dbLevel == 1 || dbLevel == 2) { - return new TwoLevelDBExtractor(treeDBName.length()); - } else if (dbLevel == 3) { - return new ThreeLevelDBExtractor(treeDBName.length()); - } else if (dbLevel >= 4) { - return new FourOrHigherLevelDBExtractor(dbLevel); - } else { - throw new IllegalArgumentException( - "tree db name should at least be two level: " + treeDBName); - } - } catch (IllegalPathException e) { - throw new IllegalArgumentException(e); - } - } - - @Override - public Operator visitTreeAlignedDeviceViewScan( - TreeAlignedDeviceViewScanNode node, LocalExecutionPlanContext context) { - QualifiedObjectName qualifiedObjectName = node.getQualifiedObjectName(); - TsTable tsTable = - DataNodeTableCache.getInstance() - .getTable(qualifiedObjectName.getDatabaseName(), qualifiedObjectName.getObjectName()); - IDeviceID.TreeDeviceIdColumnValueExtractor idColumnValueExtractor = - createTreeDeviceIdColumnValueExtractor(DataNodeTreeViewSchemaUtils.getPrefixPath(tsTable)); - - AbstractTableScanOperator.AbstractTableScanOperatorParameter parameter = - constructAbstractTableScanOperatorParameter( - node, - context, - TreeAlignedDeviceViewScanOperator.class.getSimpleName(), - node.getMeasurementColumnNameMap(), - tsTable.getCachedTableTTL()); - - TreeAlignedDeviceViewScanOperator treeAlignedDeviceViewScanOperator = - new TreeAlignedDeviceViewScanOperator(parameter, idColumnValueExtractor); - - addSource( - treeAlignedDeviceViewScanOperator, - context, - node, - parameter.measurementColumnNames, - parameter.measurementSchemas, - parameter.allSensors, - TreeAlignedDeviceViewScanNode.class.getSimpleName()); - - return treeAlignedDeviceViewScanOperator; - } - - private void addSource( - AbstractDataSourceOperator sourceOperator, - LocalExecutionPlanContext context, - DeviceTableScanNode node, - List measurementColumnNames, - List measurementSchemas, - Set allSensors, - String planNodeName) { - - ((DataDriverContext) context.getDriverContext()).addSourceOperator(sourceOperator); - - for (int i = 0, size = node.getDeviceEntries().size(); i < size; i++) { - DeviceEntry deviceEntry = node.getDeviceEntries().get(i); - if (deviceEntry == null) { - throw new IllegalStateException( - "Device entries of index " + i + " in " + planNodeName + " is empty"); - } - if (deviceEntry instanceof NonAlignedDeviceEntry) { - for (IMeasurementSchema schema : measurementSchemas) { - NonAlignedFullPath nonAlignedFullPath = - new NonAlignedFullPath(deviceEntry.getDeviceID(), schema); - ((DataDriverContext) context.getDriverContext()).addPath(nonAlignedFullPath); - } - } else { - AlignedFullPath alignedPath = - constructAlignedPath( - deviceEntry, measurementColumnNames, measurementSchemas, allSensors); - ((DataDriverContext) context.getDriverContext()).addPath(alignedPath); - } - } - - context.getDriverContext().setInputDriver(true); - } - - private AbstractTableScanOperator.AbstractTableScanOperatorParameter - constructAbstractTableScanOperatorParameter( - DeviceTableScanNode node, - LocalExecutionPlanContext context, - String className, - Map fieldColumnsRenameMap, - long viewTTL) { - - CommonTableScanOperatorParameters commonParameter = - new CommonTableScanOperatorParameters(node, fieldColumnsRenameMap, false); - List measurementSchemas = commonParameter.measurementSchemas; - List measurementColumnNames = commonParameter.measurementColumnNames; - List columnSchemas = commonParameter.columnSchemas; - int[] columnsIndexArray = commonParameter.columnsIndexArray; - SeriesScanOptions seriesScanOptions = - buildSeriesScanOptions( - context, - commonParameter.columnSchemaMap, - measurementColumnNames, - commonParameter.measurementColumnsIndexMap, - commonParameter.timeColumnName, - node.getTimePredicate(), - node.getPushDownLimit(), - node.getPushDownOffset(), - node.isPushLimitToEachDevice(), - node.getPushDownPredicate()); - seriesScanOptions.setTTLForTableView(viewTTL); - seriesScanOptions.setIsTableViewForTreeModel(node instanceof TreeDeviceViewScanNode); - - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext(context.getNextOperatorId(), node.getPlanNodeId(), className); - - int maxTsBlockLineNum = TSFileDescriptor.getInstance().getConfig().getMaxTsBlockLineNumber(); - if (context.getTypeProvider().getTemplatedInfo() != null) { - maxTsBlockLineNum = - (int) - Math.min( - context.getTypeProvider().getTemplatedInfo().getLimitValue(), maxTsBlockLineNum); - } - - Set allSensors = new HashSet<>(measurementColumnNames); - // for time column - allSensors.add(""); - - return new AbstractTableScanOperator.AbstractTableScanOperatorParameter( - allSensors, - operatorContext, - node.getPlanNodeId(), - columnSchemas, - columnsIndexArray, - node.getDeviceEntries(), - node.getScanOrder(), - seriesScanOptions, - measurementColumnNames, - measurementSchemas, - maxTsBlockLineNum); - } - - // used for TableScanOperator - private AbstractTableScanOperator.AbstractTableScanOperatorParameter - constructAbstractTableScanOperatorParameter( - DeviceTableScanNode node, LocalExecutionPlanContext context) { - return constructAbstractTableScanOperatorParameter( - node, - context, - TableScanOperator.class.getSimpleName(), - Collections.emptyMap(), - Long.MAX_VALUE); - } - - @Override - public Operator visitCteScan(CteScanNode node, LocalExecutionPlanContext context) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - CteScanOperator.class.getSimpleName()); - return new CteScanOperator( - operatorContext, - node.getPlanNodeId(), - node.getDataStore(), - context.getFragmentInstanceId().getQueryId()); - } - - @Override - public Operator visitTreeDeviceViewScan( - TreeDeviceViewScanNode node, LocalExecutionPlanContext context) { - if (node.getDeviceEntries().isEmpty() || node.getTreeDBName() == null) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - EmptyDataOperator.class.getSimpleName()); - return new EmptyDataOperator(operatorContext); - } - throw new IllegalArgumentException("Valid TreeDeviceViewScanNode is not expected here."); - } - - @Override - public Operator visitDeviceTableScan( - DeviceTableScanNode node, LocalExecutionPlanContext context) { - - AbstractTableScanOperator.AbstractTableScanOperatorParameter parameter = - constructAbstractTableScanOperatorParameter(node, context); - - TableScanOperator tableScanOperator = new TableScanOperator(parameter); - - context.getInstanceContext().collectTable(node.getQualifiedObjectName().getObjectName()); - addSource( - tableScanOperator, - context, - node, - parameter.measurementColumnNames, - parameter.measurementSchemas, - parameter.allSensors, - DeviceTableScanNode.class.getSimpleName()); - - return tableScanOperator; - } - - public static Map> makeLayout(final List children) { - final Map> outputMappings = new LinkedHashMap<>(); - int tsBlockIndex = 0; - for (final PlanNode childNode : children) { - int valueColumnIndex = 0; - for (final Symbol columnName : childNode.getOutputSymbols()) { - outputMappings - .computeIfAbsent(columnName, key -> new ArrayList<>()) - .add(new InputLocation(tsBlockIndex, valueColumnIndex)); - valueColumnIndex++; - } - tsBlockIndex++; - } - return outputMappings; - } - - private ImmutableMap makeLayoutFromOutputSymbols(List outputSymbols) { - if (outputSymbols == null) { - return ImmutableMap.of(); - } - ImmutableMap.Builder outputMappings = ImmutableMap.builder(); - int channel = 0; - for (Symbol symbol : outputSymbols) { - outputMappings.put(symbol, channel); - channel++; - } - return outputMappings.buildOrThrow(); - } - - private SeriesScanOptions.Builder getSeriesScanOptionsBuilder( - LocalExecutionPlanContext context, @NotNull Expression timePredicate) { - SeriesScanOptions.Builder scanOptionsBuilder = new SeriesScanOptions.Builder(); - - Filter timeFilter = - timePredicate.accept( - new ConvertPredicateToTimeFilterVisitor( - context.getZoneId(), TimestampPrecisionUtils.currPrecision), - null); - context.getDriverContext().getFragmentInstanceContext().setTimeFilterForTableModel(timeFilter); - // time filter may be stateful, so we need to copy it - scanOptionsBuilder.withGlobalTimeFilter(timeFilter.copy()); - - return scanOptionsBuilder; - } - - @Override - public Operator visitInformationSchemaTableScan( - final InformationSchemaTableScanNode node, final LocalExecutionPlanContext context) { - final OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - InformationSchemaTableScanOperator.class.getSimpleName()); - - final List dataTypes = - node.getOutputSymbols().stream() - .map(symbol -> getTSDataType(context.getTypeProvider().getTableModelType(symbol))) - .collect(Collectors.toList()); - - return new InformationSchemaTableScanOperator( - operatorContext, - node.getPlanNodeId(), - getSupplier( - operatorContext, - dataTypes, - context - .getDriverContext() - .getFragmentInstanceContext() - .getSessionInfo() - .getUserEntity(), - node)); - } - - @Override - public Operator visitFilter(FilterNode node, LocalExecutionPlanContext context) { - TypeProvider typeProvider = context.getTypeProvider(); - Optional predicate = Optional.of(node.getPredicate()); - Operator inputOperator = node.getChild().accept(this, context); - List inputDataTypes = getInputColumnTypes(node, typeProvider); - Map> inputLocations = makeLayout(node.getChildren()); - - return constructFilterAndProjectOperator( - predicate, - inputOperator, - node.getOutputSymbols().stream().map(Symbol::toSymbolReference).toArray(Expression[]::new), - inputDataTypes, - inputLocations, - node.getPlanNodeId(), - context); - } - - private Operator constructFilterAndProjectOperator( - Optional predicate, - Operator inputOperator, - Expression[] projectExpressions, - List inputDataTypes, - Map> inputLocations, - PlanNodeId planNodeId, - LocalExecutionPlanContext context) { - - final List filterOutputDataTypes = new ArrayList<>(inputDataTypes); - - // records LeafColumnTransformer of filter - List filterLeafColumnTransformerList = new ArrayList<>(); - - // records subexpression -> ColumnTransformer for filter - Map filterExpressionColumnTransformerMap = new HashMap<>(); - - ColumnTransformerBuilder visitor = new ColumnTransformerBuilder(); - - FragmentInstanceContext fragmentInstanceContext = - context.getDriverContext().getFragmentInstanceContext(); - ColumnTransformer filterOutputTransformer = - predicate - .map( - p -> { - ColumnTransformerBuilder.Context filterColumnTransformerContext = - new ColumnTransformerBuilder.Context( - fragmentInstanceContext.getSessionInfo(), - filterLeafColumnTransformerList, - inputLocations, - filterExpressionColumnTransformerMap, - ImmutableMap.of(), - ImmutableList.of(), - ImmutableList.of(), - 0, - context.getTypeProvider(), - metadata, - fragmentInstanceContext); - - return visitor.process(p, filterColumnTransformerContext); - }) - .orElse(null); - - // records LeafColumnTransformer of project expressions - List projectLeafColumnTransformerList = new ArrayList<>(); - - List projectOutputTransformerList = new ArrayList<>(); - - Map projectExpressionColumnTransformerMap = new HashMap<>(); - - // records common ColumnTransformer between filter and project expressions - List commonTransformerList = new ArrayList<>(); - - ColumnTransformerBuilder.Context projectColumnTransformerContext = - new ColumnTransformerBuilder.Context( - fragmentInstanceContext.getSessionInfo(), - projectLeafColumnTransformerList, - inputLocations, - projectExpressionColumnTransformerMap, - filterExpressionColumnTransformerMap, - commonTransformerList, - filterOutputDataTypes, - inputLocations.size(), - context.getTypeProvider(), - metadata, - fragmentInstanceContext); - - for (Expression expression : projectExpressions) { - projectOutputTransformerList.add( - visitor.process(expression, projectColumnTransformerContext)); - } - - final OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - planNodeId, - FilterAndProjectOperator.class.getSimpleName()); - - // Project expressions don't contain Non-Mappable UDF, TransformOperator is not needed - return new FilterAndProjectOperator( - operatorContext, - inputOperator, - filterOutputDataTypes, - filterLeafColumnTransformerList, - filterOutputTransformer, - commonTransformerList, - projectLeafColumnTransformerList, - projectOutputTransformerList, - false, - predicate.isPresent()); - } - - @Override - public Operator visitProject(ProjectNode node, LocalExecutionPlanContext context) { - TypeProvider typeProvider = context.getTypeProvider(); - Optional predicate; - Operator inputOperator; - List inputDataTypes; - Map> inputLocations; - if (node.getChild() instanceof FilterNode) { - FilterNode filterNode = (FilterNode) node.getChild(); - predicate = Optional.of(filterNode.getPredicate()); - inputOperator = filterNode.getChild().accept(this, context); - inputDataTypes = getInputColumnTypes(filterNode, typeProvider); - inputLocations = makeLayout(filterNode.getChildren()); - } else { - predicate = Optional.empty(); - inputOperator = node.getChild().accept(this, context); - inputDataTypes = getInputColumnTypes(node, typeProvider); - inputLocations = makeLayout(node.getChildren()); - } - - return constructFilterAndProjectOperator( - predicate, - inputOperator, - node.getAssignments().getMap().values().toArray(new Expression[0]), - inputDataTypes, - inputLocations, - node.getPlanNodeId(), - context); - } - - private List getInputColumnTypes(PlanNode node, TypeProvider typeProvider) { - // ignore "time" column - return node.getChildren().stream() - .map(PlanNode::getOutputSymbols) - .flatMap(List::stream) - .map(s -> getTSDataType(typeProvider.getTableModelType(s))) - .collect(Collectors.toList()); - } - - @Override - public Operator visitGapFill(GapFillNode node, LocalExecutionPlanContext context) { - Operator child = node.getChild().accept(this, context); - List inputDataTypes = - getOutputColumnTypes(node.getChild(), context.getTypeProvider()); - int timeColumnIndex = getColumnIndex(node.getGapFillColumn(), node.getChild()); - if (node.getGapFillGroupingKeys().isEmpty()) { // without group keys - if (node.getMonthDuration() == 0) { // without month interval - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - GapFillWoGroupWoMoOperator.class.getSimpleName()); - return new GapFillWoGroupWoMoOperator( - operatorContext, - child, - timeColumnIndex, - node.getStartTime(), - node.getEndTime(), - inputDataTypes, - node.getNonMonthDuration()); - } else { // with month interval - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - GapFillWoGroupWMoOperator.class.getSimpleName()); - return new GapFillWoGroupWMoOperator( - operatorContext, - child, - timeColumnIndex, - node.getStartTime(), - node.getEndTime(), - inputDataTypes, - node.getMonthDuration(), - context.getZoneId()); - } - - } else { // with group keys - Set groupingKeysIndexSet = new HashSet<>(); - Comparator groupKeyComparator = - genFillGroupKeyComparator( - node.getGapFillGroupingKeys(), node, inputDataTypes, groupingKeysIndexSet); - if (node.getMonthDuration() == 0) { // without month interval - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - GapFillWGroupWoMoOperator.class.getSimpleName()); - return new GapFillWGroupWoMoOperator( - operatorContext, - child, - timeColumnIndex, - node.getStartTime(), - node.getEndTime(), - groupKeyComparator, - inputDataTypes, - groupingKeysIndexSet, - node.getNonMonthDuration()); - } else { // with month interval - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - GapFillWGroupWMoOperator.class.getSimpleName()); - return new GapFillWGroupWMoOperator( - operatorContext, - child, - timeColumnIndex, - node.getStartTime(), - node.getEndTime(), - groupKeyComparator, - inputDataTypes, - groupingKeysIndexSet, - node.getMonthDuration(), - context.getZoneId()); - } - } - } - - @Override - public Operator visitPreviousFill(PreviousFillNode node, LocalExecutionPlanContext context) { - Operator child = node.getChild().accept(this, context); - - List inputDataTypes = - getOutputColumnTypes(node.getChild(), context.getTypeProvider()); - int inputColumnCount = inputDataTypes.size(); - int helperColumnIndex = -1; - if (node.getHelperColumn().isPresent()) { - helperColumnIndex = getColumnIndex(node.getHelperColumn().get(), node.getChild()); - } - IFill[] fillArray = - getPreviousFill( - inputColumnCount, - inputDataTypes, - node.getTimeBound().orElse(null), - context.getZoneId()); - - if (node.getGroupingKeys().isPresent()) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - PreviousFillWithGroupOperator.class.getSimpleName()); - return new PreviousFillWithGroupOperator( - operatorContext, - fillArray, - child, - helperColumnIndex, - genFillGroupKeyComparator( - node.getGroupingKeys().get(), node, inputDataTypes, new HashSet<>()), - inputDataTypes); - } else { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableFillOperator.class.getSimpleName()); - return new TableFillOperator(operatorContext, fillArray, child, helperColumnIndex); - } - } - - // used by fill and gapfill - private Comparator genFillGroupKeyComparator( - List groupingKeys, - SingleChildProcessNode node, - List inputDataTypes, - Set groupKeysIndex) { - int groupKeysCount = groupingKeys.size(); - List sortOrderList = new ArrayList<>(groupKeysCount); - List groupItemIndexList = new ArrayList<>(groupKeysCount); - List groupItemDataTypeList = new ArrayList<>(groupKeysCount); - Map columnIndex = - makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); - for (Symbol symbol : groupingKeys) { - // sort order for fill_group should always be ASC_NULLS_LAST, it should be same as - // QueryPlanner.fillGroup - sortOrderList.add(ASC_NULLS_LAST); - int index = columnIndex.get(symbol); - groupItemIndexList.add(index); - groupItemDataTypeList.add(inputDataTypes.get(index)); - } - groupKeysIndex.addAll(groupItemIndexList); - return getComparatorForTable(sortOrderList, groupItemIndexList, groupItemDataTypeList); - } - - // index starts from 0 - private int getColumnIndex(Symbol symbol, PlanNode node) { - String name = symbol.getName(); - int channel = 0; - for (Symbol columnName : node.getOutputSymbols()) { - if (columnName.getName().equals(name)) { - return channel; - } - channel++; - } - throw new IllegalStateException( - String.format("Found no column %s in %s", symbol, node.getOutputSymbols())); - } - - @Override - public Operator visitLinearFill(LinearFillNode node, LocalExecutionPlanContext context) { - Operator child = node.getChild().accept(this, context); - - List inputDataTypes = - getOutputColumnTypes(node.getChild(), context.getTypeProvider()); - int inputColumnCount = inputDataTypes.size(); - int helperColumnIndex = getColumnIndex(node.getHelperColumn(), node.getChild()); - ILinearFill[] fillArray = getLinearFill(inputColumnCount, inputDataTypes); - - if (node.getGroupingKeys().isPresent()) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableLinearFillWithGroupOperator.class.getSimpleName()); - return new TableLinearFillWithGroupOperator( - operatorContext, - fillArray, - child, - helperColumnIndex, - genFillGroupKeyComparator( - node.getGroupingKeys().get(), node, inputDataTypes, new HashSet<>()), - inputDataTypes); - } else { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableLinearFillOperator.class.getSimpleName()); - return new TableLinearFillOperator(operatorContext, fillArray, child, helperColumnIndex); - } - } - - @Override - public Operator visitValueFill(ValueFillNode node, LocalExecutionPlanContext context) { - Operator child = node.getChild().accept(this, context); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableFillOperator.class.getSimpleName()); - List inputDataTypes = - getOutputColumnTypes(node.getChild(), context.getTypeProvider()); - int inputColumnCount = inputDataTypes.size(); - Literal filledValue = node.getFilledValue(); - return new TableFillOperator( - operatorContext, - getValueFill(inputColumnCount, inputDataTypes, filledValue, context), - child, - -1); - } - - private IFill[] getValueFill( - int inputColumnCount, - List inputDataTypes, - Literal filledValue, - LocalExecutionPlanContext context) { - IFill[] constantFill = new IFill[inputColumnCount]; - for (int i = 0; i < inputColumnCount; i++) { - switch (inputDataTypes.get(i)) { - case BOOLEAN: - Boolean bool = filledValue.accept(new CastToBooleanLiteralVisitor(), null); - if (bool == null) { - constantFill[i] = IDENTITY_FILL; - } else { - constantFill[i] = new BooleanConstantFill(bool); - } - break; - case TEXT: - case STRING: - Binary binary = - filledValue.accept(new CastToStringLiteralVisitor(TSFileConfig.STRING_CHARSET), null); - if (binary == null) { - constantFill[i] = IDENTITY_FILL; - } else { - constantFill[i] = new BinaryConstantFill(binary); - } - break; - case BLOB: - Binary blob = filledValue.accept(new CastToBlobLiteralVisitor(), null); - if (blob == null) { - constantFill[i] = IDENTITY_FILL; - } else { - constantFill[i] = new BinaryConstantFill(blob); - } - break; - case INT32: - Integer intValue = filledValue.accept(new CastToInt32LiteralVisitor(), null); - if (intValue == null) { - constantFill[i] = IDENTITY_FILL; - } else { - constantFill[i] = new IntConstantFill(intValue); - } - break; - case DATE: - Integer dateValue = filledValue.accept(new CastToDateLiteralVisitor(), null); - if (dateValue == null) { - constantFill[i] = IDENTITY_FILL; - } else { - constantFill[i] = new IntConstantFill(dateValue); - } - break; - case INT64: - Long longValue = filledValue.accept(new CastToInt64LiteralVisitor(), null); - if (longValue == null) { - constantFill[i] = IDENTITY_FILL; - } else { - constantFill[i] = new LongConstantFill(longValue); - } - break; - case TIMESTAMP: - Long timestampValue = - filledValue.accept(new CastToTimestampLiteralVisitor(context.getZoneId()), null); - if (timestampValue == null) { - constantFill[i] = IDENTITY_FILL; - } else { - constantFill[i] = new LongConstantFill(timestampValue); - } - break; - case FLOAT: - Float floatValue = filledValue.accept(new CastToFloatLiteralVisitor(), null); - if (floatValue == null) { - constantFill[i] = IDENTITY_FILL; - } else { - constantFill[i] = new FloatConstantFill(floatValue); - } - break; - case DOUBLE: - Double doubleValue = filledValue.accept(new CastToDoubleLiteralVisitor(), null); - if (doubleValue == null) { - constantFill[i] = IDENTITY_FILL; - } else { - constantFill[i] = new DoubleConstantFill(doubleValue); - } - break; - default: - throw new IllegalArgumentException(UNKNOWN_DATATYPE + inputDataTypes.get(i)); - } - } - return constantFill; - } - - @Override - public Operator visitLimit(LimitNode node, LocalExecutionPlanContext context) { - Operator child = node.getChild().accept(this, context); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - LimitOperator.class.getSimpleName()); - - return new LimitOperator(operatorContext, node.getCount(), child); - } - - @Override - public Operator visitOffset(OffsetNode node, LocalExecutionPlanContext context) { - Operator child = node.getChild().accept(this, context); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - OffsetOperator.class.getSimpleName()); - - return new OffsetOperator(operatorContext, node.getCount(), child); - } - - @Override - public Operator visitOutput(OutputNode node, LocalExecutionPlanContext context) { - return node.getChild().accept(this, context); - } - - @Override - public Operator visitCollect(CollectNode node, LocalExecutionPlanContext context) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - CollectOperator.class.getSimpleName()); - List children = new ArrayList<>(node.getChildren().size()); - for (PlanNode child : node.getChildren()) { - children.add(this.process(child, context)); - } - return new CollectOperator(operatorContext, children); - } - - @Override - public Operator visitMergeSort(MergeSortNode node, LocalExecutionPlanContext context) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableMergeSortOperator.class.getSimpleName()); - List children = new ArrayList<>(node.getChildren().size()); - for (PlanNode child : node.getChildren()) { - children.add(this.process(child, context)); - } - List dataTypes = getOutputColumnTypes(node, context.getTypeProvider()); - int sortItemsCount = node.getOrderingScheme().getOrderBy().size(); - - List sortItemIndexList = new ArrayList<>(sortItemsCount); - List sortItemDataTypeList = new ArrayList<>(sortItemsCount); - genSortInformation( - node.getOutputSymbols(), - node.getOrderingScheme(), - sortItemIndexList, - sortItemDataTypeList, - context.getTypeProvider()); - - return new TableMergeSortOperator( - operatorContext, - children, - dataTypes, - getComparatorForTable( - node.getOrderingScheme().getOrderingList(), sortItemIndexList, sortItemDataTypeList)); - } - - @Override - public Operator visitSort(SortNode node, LocalExecutionPlanContext context) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableSortOperator.class.getSimpleName()); - List dataTypes = getOutputColumnTypes(node, context.getTypeProvider()); - int sortItemsCount = node.getOrderingScheme().getOrderBy().size(); - - List sortItemIndexList = new ArrayList<>(sortItemsCount); - List sortItemDataTypeList = new ArrayList<>(sortItemsCount); - genSortInformation( - node.getOutputSymbols(), - node.getOrderingScheme(), - sortItemIndexList, - sortItemDataTypeList, - context.getTypeProvider()); - - String filePrefix = - IoTDBDescriptor.getInstance().getConfig().getSortTmpDir() - + File.separator - + operatorContext.getDriverContext().getFragmentInstanceContext().getId().getFullId() - + File.separator - + operatorContext.getDriverContext().getPipelineId() - + File.separator; - - context.getDriverContext().setHaveTmpFile(true); - context.getDriverContext().getFragmentInstanceContext().setMayHaveTmpFile(true); - - Operator child = node.getChild().accept(this, context); - - return new TableSortOperator( - operatorContext, - child, - dataTypes, - filePrefix, - getComparatorForTable( - node.getOrderingScheme().getOrderingList(), sortItemIndexList, sortItemDataTypeList)); - } - - @Override - public Operator visitTopK(TopKNode node, LocalExecutionPlanContext context) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableTopKOperator.class.getSimpleName()); - List children = new ArrayList<>(node.getChildren().size()); - for (PlanNode child : node.getChildren()) { - children.add(this.process(child, context)); - } - List dataTypes = getOutputColumnTypes(node, context.getTypeProvider()); - int sortItemsCount = node.getOrderingScheme().getOrderBy().size(); - - List sortItemIndexList = new ArrayList<>(sortItemsCount); - List sortItemDataTypeList = new ArrayList<>(sortItemsCount); - genSortInformation( - node.getOutputSymbols(), - node.getOrderingScheme(), - sortItemIndexList, - sortItemDataTypeList, - context.getTypeProvider()); - return new TableTopKOperator( - operatorContext, - children, - dataTypes, - getComparatorForTable( - node.getOrderingScheme().getOrderingList(), sortItemIndexList, sortItemDataTypeList), - (int) node.getCount(), - node.isChildrenDataInOrder()); - } - - private List getOutputColumnTypes(PlanNode node, TypeProvider typeProvider) { - return node.getOutputSymbols().stream() - .map(s -> getTSDataType(typeProvider.getTableModelType(s))) - .collect(Collectors.toList()); - } - - private void genSortInformation( - List outputSymbols, - OrderingScheme orderingScheme, - List sortItemIndexList, - List sortItemDataTypeList, - TypeProvider typeProvider) { - Map columnIndex = new HashMap<>(); - int index = 0; - for (Symbol symbol : outputSymbols) { - columnIndex.put(symbol, index++); - } - orderingScheme - .getOrderBy() - .forEach( - sortItem -> { - Integer i = columnIndex.get(sortItem); - if (i == null) { - throw new IllegalStateException( - String.format( - "Sort Item %s is not included in children's output columns", sortItem)); - } - sortItemIndexList.add(i); - sortItemDataTypeList.add(getTSDataType(typeProvider.getTableModelType(sortItem))); - }); - } - - @Override - public Operator visitStreamSort(StreamSortNode node, LocalExecutionPlanContext context) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableStreamSortOperator.class.getSimpleName()); - List dataTypes = getOutputColumnTypes(node, context.getTypeProvider()); - int sortItemsCount = node.getOrderingScheme().getOrderBy().size(); - - List sortItemIndexList = new ArrayList<>(sortItemsCount); - List sortItemDataTypeList = new ArrayList<>(sortItemsCount); - genSortInformation( - node.getOutputSymbols(), - node.getOrderingScheme(), - sortItemIndexList, - sortItemDataTypeList, - context.getTypeProvider()); - - String filePrefix = - IoTDBDescriptor.getInstance().getConfig().getSortTmpDir() - + File.separator - + operatorContext.getDriverContext().getFragmentInstanceContext().getId().getFullId() - + File.separator - + operatorContext.getDriverContext().getPipelineId() - + File.separator; - - context.getDriverContext().setHaveTmpFile(true); - context.getDriverContext().getFragmentInstanceContext().setMayHaveTmpFile(true); - - Operator child = node.getChild().accept(this, context); - - return new TableStreamSortOperator( - operatorContext, - child, - dataTypes, - filePrefix, - getComparatorForTable( - node.getOrderingScheme().getOrderingList(), sortItemIndexList, sortItemDataTypeList), - getComparatorForTable( - node.getOrderingScheme() - .getOrderingList() - .subList(0, node.getStreamCompareKeyEndIndex() + 1), - sortItemIndexList.subList(0, node.getStreamCompareKeyEndIndex() + 1), - sortItemDataTypeList.subList(0, node.getStreamCompareKeyEndIndex() + 1)), - TSFileDescriptor.getInstance().getConfig().getMaxTsBlockLineNumber()); - } - - @Override - public Operator visitGroup(GroupNode node, LocalExecutionPlanContext context) { - if (node.getPartitionKeyCount() == 0) { - SortNode sortNode = - new SortNode( - node.getPlanNodeId(), node.getChild(), node.getOrderingScheme(), false, false); - return visitSort(sortNode, context); - } else { - StreamSortNode streamSortNode = - new StreamSortNode( - node.getPlanNodeId(), - node.getChild(), - node.getOrderingScheme(), - false, - false, - node.getPartitionKeyCount() - 1); - return visitStreamSort(streamSortNode, context); - } - } - - @Override - public Operator visitJoin(JoinNode node, LocalExecutionPlanContext context) { - List dataTypes = getOutputColumnTypes(node, context.getTypeProvider()); - - Operator leftChild = node.getLeftChild().accept(this, context); - Operator rightChild = node.getRightChild().accept(this, context); - - ImmutableMap leftColumnNamesMap = - makeLayoutFromOutputSymbols(node.getLeftChild().getOutputSymbols()); - int[] leftOutputSymbolIdx = new int[node.getLeftOutputSymbols().size()]; - for (int i = 0; i < leftOutputSymbolIdx.length; i++) { - Integer index = leftColumnNamesMap.get(node.getLeftOutputSymbols().get(i)); - if (index == null) { - throw new IllegalStateException( - "Left child of JoinNode doesn't contain LeftOutputSymbol " - + node.getLeftOutputSymbols().get(i)); - } - leftOutputSymbolIdx[i] = index; - } - - ImmutableMap rightColumnNamesMap = - makeLayoutFromOutputSymbols(node.getRightChild().getOutputSymbols()); - int[] rightOutputSymbolIdx = new int[node.getRightOutputSymbols().size()]; - for (int i = 0; i < rightOutputSymbolIdx.length; i++) { - Integer index = rightColumnNamesMap.get(node.getRightOutputSymbols().get(i)); - if (index == null) { - throw new IllegalStateException( - "Right child of JoinNode doesn't contain RightOutputSymbol " - + node.getLeftOutputSymbols().get(i)); - } - rightOutputSymbolIdx[i] = index; - } - - // cross join does not need time column - if (node.isCrossJoin()) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - SimpleNestedLoopCrossJoinOperator.class.getSimpleName()); - return new SimpleNestedLoopCrossJoinOperator( - operatorContext, - leftChild, - rightChild, - leftOutputSymbolIdx, - rightOutputSymbolIdx, - dataTypes); - } - - semanticCheckForJoin(node); - - JoinNode.AsofJoinClause asofJoinClause = node.getAsofCriteria().orElse(null); - int equiSize = node.getCriteria().size(); - int size = equiSize + (asofJoinClause == null ? 0 : 1); - int[] leftJoinKeyPositions = new int[size]; - for (int i = 0; i < equiSize; i++) { - Integer leftJoinKeyPosition = leftColumnNamesMap.get(node.getCriteria().get(i).getLeft()); - if (leftJoinKeyPosition == null) { - throw new IllegalStateException("Left child of JoinNode doesn't contain left join key."); - } - leftJoinKeyPositions[i] = leftJoinKeyPosition; - } - - List joinKeyTypes = new ArrayList<>(size); - int[] rightJoinKeyPositions = new int[size]; - for (int i = 0; i < equiSize; i++) { - Integer rightJoinKeyPosition = rightColumnNamesMap.get(node.getCriteria().get(i).getRight()); - if (rightJoinKeyPosition == null) { - throw new IllegalStateException("Right child of JoinNode doesn't contain right join key."); - } - rightJoinKeyPositions[i] = rightJoinKeyPosition; - - Type leftJoinKeyType = - context.getTypeProvider().getTableModelType(node.getCriteria().get(i).getLeft()); - checkIfJoinKeyTypeMatches( - leftJoinKeyType, - context.getTypeProvider().getTableModelType(node.getCriteria().get(i).getRight())); - joinKeyTypes.add(leftJoinKeyType); - } - - if (asofJoinClause != null) { - Integer leftAsofJoinKeyPosition = leftColumnNamesMap.get(asofJoinClause.getLeft()); - if (leftAsofJoinKeyPosition == null) { - throw new IllegalStateException( - "Left child of JoinNode doesn't contain left ASOF main join key."); - } - leftJoinKeyPositions[equiSize] = leftAsofJoinKeyPosition; - Integer rightAsofJoinKeyPosition = rightColumnNamesMap.get(asofJoinClause.getRight()); - if (rightAsofJoinKeyPosition == null) { - throw new IllegalStateException( - "Right child of JoinNode doesn't contain right ASOF main join key."); - } - rightJoinKeyPositions[equiSize] = rightAsofJoinKeyPosition; - - if (context.getTypeProvider().getTableModelType(asofJoinClause.getLeft()) != TIMESTAMP) { - throw new IllegalStateException("Type of left ASOF Join key is not TIMESTAMP"); - } - if (context.getTypeProvider().getTableModelType(asofJoinClause.getRight()) != TIMESTAMP) { - throw new IllegalStateException("Type of right ASOF Join key is not TIMESTAMP"); - } - - ComparisonExpression.Operator asofOperator = asofJoinClause.getOperator(); - - if (requireNonNull(node.getJoinType()) == JoinNode.JoinType.INNER) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - AsofMergeSortInnerJoinOperator.class.getSimpleName()); - return new AsofMergeSortInnerJoinOperator( - operatorContext, - leftChild, - leftJoinKeyPositions, - leftOutputSymbolIdx, - rightChild, - rightJoinKeyPositions, - rightOutputSymbolIdx, - JoinKeyComparatorFactory.getAsofComparators( - joinKeyTypes, - asofOperator == ComparisonExpression.Operator.LESS_THAN_OR_EQUAL - || asofOperator == ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL, - !asofJoinClause.isOperatorContainsGreater()), - dataTypes); - } else if (requireNonNull(node.getJoinType()) == JoinNode.JoinType.LEFT) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - AsofMergeSortLeftJoinOperator.class.getSimpleName()); - return new AsofMergeSortLeftJoinOperator( - operatorContext, - leftChild, - leftJoinKeyPositions, - leftOutputSymbolIdx, - rightChild, - rightJoinKeyPositions, - rightOutputSymbolIdx, - JoinKeyComparatorFactory.getAsofComparators( - joinKeyTypes, - asofOperator == ComparisonExpression.Operator.LESS_THAN_OR_EQUAL - || asofOperator == ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL, - !asofJoinClause.isOperatorContainsGreater()), - dataTypes); - } else { - throw new IllegalStateException("Unsupported ASOF join type: " + node.getJoinType()); - } - } - - if (requireNonNull(node.getJoinType()) == JoinNode.JoinType.INNER) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - MergeSortInnerJoinOperator.class.getSimpleName()); - return new MergeSortInnerJoinOperator( - operatorContext, - leftChild, - leftJoinKeyPositions, - leftOutputSymbolIdx, - rightChild, - rightJoinKeyPositions, - rightOutputSymbolIdx, - JoinKeyComparatorFactory.getComparators(joinKeyTypes, true), - dataTypes); - } else if (requireNonNull(node.getJoinType()) == JoinNode.JoinType.FULL) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - MergeSortFullOuterJoinOperator.class.getSimpleName()); - return new MergeSortFullOuterJoinOperator( - operatorContext, - leftChild, - leftJoinKeyPositions, - leftOutputSymbolIdx, - rightChild, - rightJoinKeyPositions, - rightOutputSymbolIdx, - JoinKeyComparatorFactory.getComparators(joinKeyTypes, true), - dataTypes, - joinKeyTypes.stream().map(this::buildUpdateLastRowFunction).collect(Collectors.toList())); - } else if (requireNonNull(node.getJoinType()) == JoinNode.JoinType.LEFT) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - MergeSortLeftJoinOperator.class.getSimpleName()); - return new MergeSortLeftJoinOperator( - operatorContext, - leftChild, - leftJoinKeyPositions, - leftOutputSymbolIdx, - rightChild, - rightJoinKeyPositions, - rightOutputSymbolIdx, - JoinKeyComparatorFactory.getComparators(joinKeyTypes, true), - dataTypes); - } - - throw new IllegalStateException("Unsupported join type: " + node.getJoinType()); - } - - private void semanticCheckForJoin(JoinNode node) { - try { - checkArgument( - !node.getFilter().isPresent() || node.getFilter().get().equals(TRUE_LITERAL), - String.format( - "Filter is not supported in %s. Filter is %s.", - node.getJoinType(), node.getFilter().map(Expression::toString).orElse("null"))); - checkArgument( - !node.getCriteria().isEmpty() || node.getAsofCriteria().isPresent(), - String.format("%s must have join keys.", node.getJoinType())); - } catch (IllegalArgumentException e) { - throw new SemanticException(e.getMessage()); - } - } - - private BiFunction buildUpdateLastRowFunction(Type joinKeyType) { - switch (joinKeyType.getTypeEnum()) { - case INT32: - return (inputColumn, rowIndex) -> - new IntColumn( - 1, Optional.empty(), new int[] {inputColumn.getInt(rowIndex)}, TSDataType.INT32); - case DATE: - return (inputColumn, rowIndex) -> - new IntColumn( - 1, Optional.empty(), new int[] {inputColumn.getInt(rowIndex)}, TSDataType.DATE); - case INT64: - case TIMESTAMP: - return (inputColumn, rowIndex) -> - new LongColumn(1, Optional.empty(), new long[] {inputColumn.getLong(rowIndex)}); - case FLOAT: - return (inputColumn, rowIndex) -> - new FloatColumn(1, Optional.empty(), new float[] {inputColumn.getFloat(rowIndex)}); - case DOUBLE: - return (inputColumn, rowIndex) -> - new DoubleColumn(1, Optional.empty(), new double[] {inputColumn.getDouble(rowIndex)}); - case BOOLEAN: - return (inputColumn, rowIndex) -> - new BooleanColumn( - 1, Optional.empty(), new boolean[] {inputColumn.getBoolean(rowIndex)}); - case STRING: - case TEXT: - case BLOB: - return (inputColumn, rowIndex) -> - new BinaryColumn(1, Optional.empty(), new Binary[] {inputColumn.getBinary(rowIndex)}); - default: - throw new UnsupportedOperationException("Unsupported data type: " + joinKeyType); - } - } - - @Override - public Operator visitSemiJoin(SemiJoinNode node, LocalExecutionPlanContext context) { - List dataTypes = getOutputColumnTypes(node, context.getTypeProvider()); - - Operator leftChild = node.getLeftChild().accept(this, context); - Operator rightChild = node.getRightChild().accept(this, context); - - ImmutableMap sourceColumnNamesMap = - makeLayoutFromOutputSymbols(node.getSource().getOutputSymbols()); - List sourceOutputSymbols = node.getSource().getOutputSymbols(); - int[] sourceOutputSymbolIdx = new int[node.getSource().getOutputSymbols().size()]; - for (int i = 0; i < sourceOutputSymbolIdx.length; i++) { - Integer index = sourceColumnNamesMap.get(sourceOutputSymbols.get(i)); - checkNotNull(index, "Source of SemiJoinNode doesn't contain sourceOutputSymbol."); - sourceOutputSymbolIdx[i] = index; - } - - ImmutableMap filteringSourceColumnNamesMap = - makeLayoutFromOutputSymbols(node.getRightChild().getOutputSymbols()); - - Integer sourceJoinKeyPosition = sourceColumnNamesMap.get(node.getSourceJoinSymbol()); - checkNotNull(sourceJoinKeyPosition, "Source of SemiJoinNode doesn't contain sourceJoinSymbol."); - - Integer filteringSourceJoinKeyPosition = - filteringSourceColumnNamesMap.get(node.getFilteringSourceJoinSymbol()); - checkNotNull( - filteringSourceJoinKeyPosition, - "FilteringSource of SemiJoinNode doesn't contain filteringSourceJoinSymbol."); - - Type sourceJoinKeyType = - context.getTypeProvider().getTableModelType(node.getSourceJoinSymbol()); - - checkIfJoinKeyTypeMatches( - sourceJoinKeyType, - context.getTypeProvider().getTableModelType(node.getFilteringSourceJoinSymbol())); - - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - MergeSortSemiJoinOperator.class.getSimpleName()); - return new MergeSortSemiJoinOperator( - operatorContext, - leftChild, - sourceJoinKeyPosition, - sourceOutputSymbolIdx, - rightChild, - filteringSourceJoinKeyPosition, - JoinKeyComparatorFactory.getComparator(sourceJoinKeyType, true), - dataTypes); - } - - private void checkIfJoinKeyTypeMatches(Type leftJoinKeyType, Type rightJoinKeyType) { - if (leftJoinKeyType != rightJoinKeyType) { - throw new SemanticException( - "Join key type mismatch. Left join key type: " - + leftJoinKeyType - + ", right join key type: " - + rightJoinKeyType); - } - } - - @Override - public Operator visitEnforceSingleRow( - EnforceSingleRowNode node, LocalExecutionPlanContext context) { - Operator child = node.getChild().accept(this, context); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - EnforceSingleRowOperator.class.getSimpleName()); - - return new EnforceSingleRowOperator(operatorContext, child); - } - - @Override - public Operator visitAssignUniqueId(AssignUniqueId node, LocalExecutionPlanContext context) { - Operator child = node.getChild().accept(this, context); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - EnforceSingleRowOperator.class.getSimpleName()); - - return new AssignUniqueIdOperator(operatorContext, child); - } - - @Override - public Operator visitCountMerge( - final CountSchemaMergeNode node, final LocalExecutionPlanContext context) { - final OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - CountMergeOperator.class.getSimpleName()); - final List children = new ArrayList<>(node.getChildren().size()); - for (final PlanNode child : node.getChildren()) { - children.add(this.process(child, context)); - } - return new CountMergeOperator(operatorContext, children); - } - - @Override - public Operator visitTableDeviceFetch( - final TableDeviceFetchNode node, final LocalExecutionPlanContext context) { - final OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - SchemaQueryScanOperator.class.getSimpleName()); - return new SchemaQueryScanOperator<>( - node.getPlanNodeId(), - operatorContext, - SchemaSourceFactory.getTableDeviceFetchSource( - node.getDatabase(), - node.getTableName(), - node.getDeviceIdList(), - node.getColumnHeaderList())); - } - - @Override - public Operator visitTableDeviceQueryScan( - final TableDeviceQueryScanNode node, final LocalExecutionPlanContext context) { - // Query scan use filterNode directly - final TsTable table = - DataNodeTableCache.getInstance().getTable(node.getDatabase(), node.getTableName()); - final SchemaQueryScanOperator operator = - new SchemaQueryScanOperator<>( - node.getPlanNodeId(), - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - SchemaQueryScanOperator.class.getSimpleName()), - SchemaSourceFactory.getTableDeviceQuerySource( - node.getDatabase(), - table, - node.getTagDeterminedFilterList(), - node.getColumnHeaderList(), - node.getColumnHeaderList().stream() - .map(columnHeader -> table.getColumnSchema(columnHeader.getColumnName())) - .collect(Collectors.toList()), - null, - node.isNeedAligned())); - operator.setLimit(node.getLimit()); - return operator; - } - - @Override - public Operator visitTableDeviceQueryCount( - final TableDeviceQueryCountNode node, final LocalExecutionPlanContext context) { - final String database = node.getDatabase(); - final TsTable table = DataNodeTableCache.getInstance().getTable(database, node.getTableName()); - final List columnSchemaList = - node.getColumnHeaderList().stream() - .map(columnHeader -> table.getColumnSchema(columnHeader.getColumnName())) - .collect(Collectors.toList()); - - // In "count" we have to reuse filter operator per "next" - final List filterLeafColumnTransformerList = new ArrayList<>(); - FragmentInstanceContext fragmentInstanceContext = - context.getDriverContext().getFragmentInstanceContext(); - return new SchemaCountOperator<>( - node.getPlanNodeId(), - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - SchemaCountOperator.class.getSimpleName()), - SchemaSourceFactory.getTableDeviceQuerySource( - database, - table, - node.getTagDeterminedFilterList(), - node.getColumnHeaderList(), - columnSchemaList, - Objects.nonNull(node.getTagFuzzyPredicate()) - ? new DevicePredicateFilter( - filterLeafColumnTransformerList, - new ColumnTransformerBuilder() - .process( - node.getTagFuzzyPredicate(), - new ColumnTransformerBuilder.Context( - fragmentInstanceContext.getSessionInfo(), - filterLeafColumnTransformerList, - makeLayout(Collections.singletonList(node)), - new HashMap<>(), - ImmutableMap.of(), - ImmutableList.of(), - ImmutableList.of(), - 0, - context.getTypeProvider(), - metadata, - fragmentInstanceContext)), - columnSchemaList, - database, - table) - : null, - false)); - } - - @Override - public Operator visitAggregation(AggregationNode node, LocalExecutionPlanContext context) { - - Operator child = node.getChild().accept(this, context); - - if (node.getGroupingKeys().isEmpty()) { - return planGlobalAggregation(node, child, context.getTypeProvider(), context); - } - - return planGroupByAggregation(node, child, context.getTypeProvider(), context); - } - - private Operator planGlobalAggregation( - AggregationNode node, - Operator child, - TypeProvider typeProvider, - LocalExecutionPlanContext context) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - AggregationOperator.class.getSimpleName()); - Map aggregationMap = node.getAggregations(); - ImmutableList.Builder aggregatorBuilder = new ImmutableList.Builder<>(); - Map childLayout = - makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); - - node.getOutputSymbols() - .forEach( - symbol -> - aggregatorBuilder.add( - buildAggregator( - childLayout, - symbol, - aggregationMap.get(symbol), - node.getStep(), - typeProvider, - true, - false, - null, - Collections.emptySet()))); - return new AggregationOperator(operatorContext, child, aggregatorBuilder.build()); - } - - // timeColumnName and measurementColumnNames will only be set for AggTableScan. - private TableAggregator buildAggregator( - Map childLayout, - Symbol symbol, - AggregationNode.Aggregation aggregation, - AggregationNode.Step step, - TypeProvider typeProvider, - boolean scanAscending, - boolean isAggTableScan, - String timeColumnName, - Set measurementColumnNames) { - List argumentChannels = new ArrayList<>(); - for (Expression argument : aggregation.getArguments()) { - Symbol argumentSymbol = Symbol.from(argument); - argumentChannels.add(childLayout.get(argumentSymbol)); - } - - String functionName = aggregation.getResolvedFunction().getSignature().getName(); - List originalArgumentTypes = - aggregation.getResolvedFunction().getSignature().getArgumentTypes().stream() - .map(InternalTypeManager::getTSDataType) - .collect(Collectors.toList()); - TableAccumulator accumulator = - createAccumulator( - functionName, - getAggregationTypeByFuncName(functionName), - originalArgumentTypes, - aggregation.getArguments(), - Collections.emptyMap(), - scanAscending, - isAggTableScan, - timeColumnName, - measurementColumnNames, - aggregation.isDistinct()); - - OptionalInt maskChannel = OptionalInt.empty(); - if (aggregation.hasMask()) { - maskChannel = OptionalInt.of(childLayout.get(aggregation.getMask().get())); - } - - return new TableAggregator( - accumulator, - step, - getTSDataType(typeProvider.getTableModelType(symbol)), - argumentChannels, - maskChannel); - } - - private Operator planGroupByAggregation( - AggregationNode node, - Operator child, - TypeProvider typeProvider, - LocalExecutionPlanContext context) { - Map childLayout = - makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); - - List groupByChannels = getChannelsForSymbols(node.getGroupingKeys(), childLayout); - List groupByTypes = - node.getGroupingKeys().stream() - .map(typeProvider::getTableModelType) - .collect(toImmutableList()); - - if (node.isStreamable()) { - if (groupByTypes.size() == node.getPreGroupedSymbols().size()) { - ImmutableList.Builder aggregatorBuilder = new ImmutableList.Builder<>(); - node.getAggregations() - .forEach( - (k, v) -> - aggregatorBuilder.add( - buildAggregator( - childLayout, - k, - v, - node.getStep(), - typeProvider, - true, - false, - null, - Collections.emptySet()))); - - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - StreamingAggregationOperator.class.getSimpleName()); - return new StreamingAggregationOperator( - operatorContext, - child, - groupByTypes, - groupByChannels, - genGroupKeyComparator(groupByTypes, groupByChannels), - aggregatorBuilder.build(), - Long.MAX_VALUE, - false, - Long.MAX_VALUE); - } - - ImmutableList.Builder aggregatorBuilder = new ImmutableList.Builder<>(); - node.getAggregations() - .forEach( - (k, v) -> - aggregatorBuilder.add( - buildGroupByAggregator(childLayout, k, v, node.getStep(), typeProvider))); - - Set preGroupedKeys = ImmutableSet.copyOf(node.getPreGroupedSymbols()); - List groupingKeys = node.getGroupingKeys(); - ImmutableList.Builder preGroupedTypesBuilder = new ImmutableList.Builder<>(); - ImmutableList.Builder preGroupedChannelsBuilder = new ImmutableList.Builder<>(); - ImmutableList.Builder preGroupedIndexInResultBuilder = new ImmutableList.Builder<>(); - ImmutableList.Builder unPreGroupedTypesBuilder = new ImmutableList.Builder<>(); - ImmutableList.Builder unPreGroupedChannelsBuilder = new ImmutableList.Builder<>(); - ImmutableList.Builder unPreGroupedIndexInResultBuilder = - new ImmutableList.Builder<>(); - for (int i = 0; i < groupByTypes.size(); i++) { - if (preGroupedKeys.contains(groupingKeys.get(i))) { - preGroupedTypesBuilder.add(groupByTypes.get(i)); - preGroupedChannelsBuilder.add(groupByChannels.get(i)); - preGroupedIndexInResultBuilder.add(i); - } else { - unPreGroupedTypesBuilder.add(groupByTypes.get(i)); - unPreGroupedChannelsBuilder.add(groupByChannels.get(i)); - unPreGroupedIndexInResultBuilder.add(i); - } - } - - List preGroupedChannels = preGroupedChannelsBuilder.build(); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - StreamingHashAggregationOperator.class.getSimpleName()); - return new StreamingHashAggregationOperator( - operatorContext, - child, - preGroupedChannels, - preGroupedIndexInResultBuilder.build(), - unPreGroupedTypesBuilder.build(), - unPreGroupedChannelsBuilder.build(), - unPreGroupedIndexInResultBuilder.build(), - genGroupKeyComparator(preGroupedTypesBuilder.build(), preGroupedChannels), - aggregatorBuilder.build(), - node.getStep(), - DEFAULT_GROUP_NUMBER, - Long.MAX_VALUE, - false, - Long.MAX_VALUE); - } - - ImmutableList.Builder aggregatorBuilder = new ImmutableList.Builder<>(); - node.getAggregations() - .forEach( - (k, v) -> - aggregatorBuilder.add( - buildGroupByAggregator(childLayout, k, v, node.getStep(), typeProvider))); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - HashAggregationOperator.class.getSimpleName()); - - return new HashAggregationOperator( - operatorContext, - child, - groupByTypes, - groupByChannels, - aggregatorBuilder.build(), - node.getStep(), - DEFAULT_GROUP_NUMBER, - Long.MAX_VALUE, - false, - Long.MAX_VALUE); - } - - private Comparator genGroupKeyComparator( - List groupTypes, List groupByChannels) { - return getComparatorForTable( - // SortOrder is not sensitive here, the comparator is just used to judge equality. - groupTypes.stream().map(k -> ASC_NULLS_LAST).collect(Collectors.toList()), - groupByChannels, - groupTypes.stream().map(InternalTypeManager::getTSDataType).collect(Collectors.toList())); - } - - private static List getChannelsForSymbols( - List symbols, Map layout) { - ImmutableList.Builder builder = ImmutableList.builder(); - for (Symbol symbol : symbols) { - builder.add(layout.get(symbol)); - } - return builder.build(); - } - - private GroupedAggregator buildGroupByAggregator( - Map childLayout, - Symbol symbol, - AggregationNode.Aggregation aggregation, - AggregationNode.Step step, - TypeProvider typeProvider) { - List argumentChannels = new ArrayList<>(); - for (Expression argument : aggregation.getArguments()) { - Symbol argumentSymbol = Symbol.from(argument); - argumentChannels.add(childLayout.get(argumentSymbol)); - } - - String functionName = aggregation.getResolvedFunction().getSignature().getName(); - List originalArgumentTypes = - aggregation.getResolvedFunction().getSignature().getArgumentTypes().stream() - .map(InternalTypeManager::getTSDataType) - .collect(Collectors.toList()); - GroupedAccumulator accumulator = - createGroupedAccumulator( - functionName, - getAggregationTypeByFuncName(functionName), - originalArgumentTypes, - Collections.emptyList(), - Collections.emptyMap(), - true, - aggregation.isDistinct()); - - OptionalInt maskChannel = OptionalInt.empty(); - if (aggregation.hasMask()) { - maskChannel = OptionalInt.of(childLayout.get(aggregation.getMask().get())); - } - - return new GroupedAggregator( - accumulator, - step, - getTSDataType(typeProvider.getTableModelType(symbol)), - argumentChannels, - maskChannel); - } - - @Override - public Operator visitAggregationTreeDeviceViewScan( - AggregationTreeDeviceViewScanNode node, LocalExecutionPlanContext context) { - throw new UnsupportedOperationException( - "The AggregationTreeDeviceViewScanNode should has been transferred to its child class node"); - } - - @Override - public Operator visitAlignedAggregationTreeDeviceViewScan( - AlignedAggregationTreeDeviceViewScanNode node, LocalExecutionPlanContext context) { - QualifiedObjectName qualifiedObjectName = node.getQualifiedObjectName(); - TsTable tsTable = - DataNodeTableCache.getInstance() - .getTable(qualifiedObjectName.getDatabaseName(), qualifiedObjectName.getObjectName()); - IDeviceID.TreeDeviceIdColumnValueExtractor idColumnValueExtractor = - createTreeDeviceIdColumnValueExtractor(DataNodeTreeViewSchemaUtils.getPrefixPath(tsTable)); - - AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter parameter = - constructAbstractAggTableScanOperatorParameter( - node, - context, - TreeAlignedDeviceViewAggregationScanOperator.class.getSimpleName(), - node.getMeasurementColumnNameMap(), - tsTable.getCachedTableTTL()); - - TreeAlignedDeviceViewAggregationScanOperator treeAlignedDeviceViewAggregationScanOperator = - new TreeAlignedDeviceViewAggregationScanOperator(parameter, idColumnValueExtractor); - - addSource( - treeAlignedDeviceViewAggregationScanOperator, - context, - node, - parameter.getMeasurementColumnNames(), - parameter.getMeasurementSchemas(), - parameter.getAllSensors(), - AlignedAggregationTreeDeviceViewScanNode.class.getSimpleName()); - return treeAlignedDeviceViewAggregationScanOperator; - } - - @Override - public Operator visitNonAlignedAggregationTreeDeviceViewScan( - NonAlignedAggregationTreeDeviceViewScanNode node, LocalExecutionPlanContext context) { - QualifiedObjectName qualifiedObjectName = node.getQualifiedObjectName(); - TsTable tsTable = - DataNodeTableCache.getInstance() - .getTable(qualifiedObjectName.getDatabaseName(), qualifiedObjectName.getObjectName()); - IDeviceID.TreeDeviceIdColumnValueExtractor idColumnValueExtractor = - createTreeDeviceIdColumnValueExtractor(DataNodeTreeViewSchemaUtils.getPrefixPath(tsTable)); - - AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter parameter = - constructAbstractAggTableScanOperatorParameter( - node, - context, - TreeNonAlignedDeviceViewAggregationScanOperator.class.getSimpleName(), - node.getMeasurementColumnNameMap(), - tsTable.getCachedTableTTL()); - - // construct source operator (generator) - TreeNonAlignedDeviceViewScanNode scanNode = - new TreeNonAlignedDeviceViewScanNode( - node.getPlanNodeId(), - node.getQualifiedObjectName(), - // the outputSymbols of TreeNonAlignedDeviceViewAggregationScanOperator is not equals - // with TreeNonAlignedDeviceViewScanNode - parameter.getOutputSymbols(), - node.getAssignments(), - node.getDeviceEntries(), - node.getTagAndAttributeIndexMap(), - node.getScanOrder(), - node.getTimePredicate().orElse(null), - node.getPushDownPredicate(), - node.getPushDownLimit(), - node.getPushDownOffset(), - node.isPushLimitToEachDevice(), - true, - node.getTreeDBName(), - node.getMeasurementColumnNameMap()); - - Operator sourceOperator = visitTreeNonAlignedDeviceViewScan(scanNode, context); - if (!(sourceOperator instanceof EmptyDataOperator)) { - // Use deviceChildOperatorTreeGenerator directly, we will control switch of devices in - // TreeNonAlignedDeviceViewAggregationScanOperator - TreeNonAlignedDeviceViewAggregationScanOperator aggTableScanOperator = - new TreeNonAlignedDeviceViewAggregationScanOperator( - parameter, - idColumnValueExtractor, - ((DeviceIteratorScanOperator) sourceOperator).getDeviceChildOperatorTreeGenerator()); - - addSource( - aggTableScanOperator, - context, - node, - parameter.getMeasurementColumnNames(), - parameter.getMeasurementSchemas(), - parameter.getAllSensors(), - NonAlignedAggregationTreeDeviceViewScanNode.class.getSimpleName()); - return aggTableScanOperator; - } else { - // source data is empty, return directly - return sourceOperator; - } - } - - private AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter - constructAbstractAggTableScanOperatorParameter( - AggregationTableScanNode node, - LocalExecutionPlanContext context, - String className, - Map fieldColumnsRenameMap, - long tableViewTTL) { - - List measurementColumnNames = new ArrayList<>(); - List measurementSchemas = new ArrayList<>(); - Map measurementColumnsIndexMap = new HashMap<>(); - - List aggregators = new ArrayList<>(node.getAggregations().size()); - List aggregatorInputChannels = - new ArrayList<>( - (int) - node.getAggregations().values().stream() - .mapToLong(aggregation -> aggregation.getArguments().size()) - .sum()); - int aggDistinctArgumentCount = - (int) - node.getAggregations().values().stream() - .flatMap(aggregation -> aggregation.getArguments().stream()) - .map(Symbol::from) - .distinct() - .count(); - List aggColumnSchemas = new ArrayList<>(aggDistinctArgumentCount); - Map aggColumnLayout = new HashMap<>(aggDistinctArgumentCount); - int[] aggColumnsIndexArray = new int[aggDistinctArgumentCount]; - - List outputSymbols = new ArrayList<>(); - - String timeColumnName = null; - int channel = 0; - int measurementColumnCount = 0; - for (Map.Entry entry : node.getAggregations().entrySet()) { - for (Expression argument : entry.getValue().getArguments()) { - Symbol symbol = Symbol.from(argument); - ColumnSchema schema = - requireNonNull(node.getAssignments().get(symbol), symbol + " is null"); - if (!aggColumnLayout.containsKey(symbol)) { - switch (schema.getColumnCategory()) { - case TAG: - case ATTRIBUTE: - aggColumnsIndexArray[channel] = - requireNonNull( - node.getTagAndAttributeIndexMap().get(symbol), symbol + " is null"); - break; - case FIELD: - aggColumnsIndexArray[channel] = measurementColumnCount; - measurementColumnCount++; - String realMeasurementName = - fieldColumnsRenameMap.getOrDefault(schema.getName(), schema.getName()); - measurementColumnNames.add(realMeasurementName); - measurementSchemas.add( - new MeasurementSchema(realMeasurementName, getTSDataType(schema.getType()))); - measurementColumnsIndexMap.put(symbol.getName(), measurementColumnCount - 1); - outputSymbols.add(symbol); - break; - case TIME: - aggColumnsIndexArray[channel] = -1; - timeColumnName = symbol.getName(); - break; - default: - throw new IllegalArgumentException( - "Unexpected column category: " + schema.getColumnCategory()); - } - - aggColumnSchemas.add(schema); - aggregatorInputChannels.add(channel); - aggColumnLayout.put(symbol, channel++); - } else { - aggregatorInputChannels.add(aggColumnLayout.get(symbol)); - } - } - } - - for (Map.Entry entry : node.getAssignments().entrySet()) { - if (!aggColumnLayout.containsKey(entry.getKey()) - && entry.getValue().getColumnCategory() == FIELD) { - measurementColumnCount++; - String realMeasurementName = - fieldColumnsRenameMap.getOrDefault( - entry.getValue().getName(), entry.getValue().getName()); - measurementColumnNames.add(realMeasurementName); - measurementSchemas.add( - new MeasurementSchema(realMeasurementName, getTSDataType(entry.getValue().getType()))); - measurementColumnsIndexMap.put(entry.getKey().getName(), measurementColumnCount - 1); - } else if (entry.getValue().getColumnCategory() == TIME) { - timeColumnName = entry.getKey().getName(); - } - } - - boolean[] ret = checkStatisticAndScanOrder(node, timeColumnName); - boolean canUseStatistic = ret[0]; - boolean scanAscending = ret[1]; - - for (Map.Entry entry : node.getAggregations().entrySet()) { - aggregators.add( - buildAggregator( - aggColumnLayout, - entry.getKey(), - entry.getValue(), - node.getStep(), - context.getTypeProvider(), - scanAscending, - true, - timeColumnName, - measurementColumnsIndexMap.keySet())); - } - - ITableTimeRangeIterator timeRangeIterator = null; - List groupingKeySchemas = null; - int[] groupingKeyIndex = null; - if (!node.getGroupingKeys().isEmpty()) { - groupingKeySchemas = new ArrayList<>(node.getGroupingKeys().size()); - groupingKeyIndex = new int[node.getGroupingKeys().size()]; - for (int i = 0; i < node.getGroupingKeys().size(); i++) { - Symbol groupingKey = node.getGroupingKeys().get(i); - - if (node.getTagAndAttributeIndexMap().containsKey(groupingKey)) { - groupingKeySchemas.add(node.getAssignments().get(groupingKey)); - groupingKeyIndex[i] = node.getTagAndAttributeIndexMap().get(groupingKey); - } else { - if (node.getProjection() != null - && !node.getProjection().getMap().isEmpty() - && node.getProjection().contains(groupingKey)) { - FunctionCall dateBinFunc = (FunctionCall) node.getProjection().get(groupingKey); - List arguments = dateBinFunc.getArguments(); - DateBinFunctionColumnTransformer dateBinTransformer = - new DateBinFunctionColumnTransformer( - TIMESTAMP, - ((LongLiteral) arguments.get(0)).getParsedValue(), - ((LongLiteral) arguments.get(1)).getParsedValue(), - null, - ((LongLiteral) arguments.get(3)).getParsedValue(), - context.getZoneId()); - timeRangeIterator = new TableDateBinTimeRangeIterator(dateBinTransformer); - } else { - throw new IllegalStateException( - "grouping key must be ID or Attribute in AggregationTableScan"); - } - } - } - } - if (timeRangeIterator == null) { - if (node.getGroupingKeys().isEmpty()) { - // global aggregation, has no group by, output init value if no data - timeRangeIterator = - new TableSingleTimeWindowIterator(new TimeRange(Long.MIN_VALUE, Long.MAX_VALUE)); - } else { - // aggregation with group by, only has data the result will not be empty - timeRangeIterator = new TableSingleTimeWindowIterator(); - } - } - - final OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext(context.getNextOperatorId(), node.getPlanNodeId(), className); - SeriesScanOptions seriesScanOptions = - buildSeriesScanOptions( - context, - node.getAssignments(), - measurementColumnNames, - measurementColumnsIndexMap, - timeColumnName, - node.getTimePredicate(), - node.getPushDownLimit(), - node.getPushDownOffset(), - node.isPushLimitToEachDevice(), - node.getPushDownPredicate()); - seriesScanOptions.setTTLForTableView(tableViewTTL); - seriesScanOptions.setIsTableViewForTreeModel(node instanceof AggregationTreeDeviceViewScanNode); - - Set allSensors = new HashSet<>(measurementColumnNames); - allSensors.add(""); // for time column - context.getDriverContext().setInputDriver(true); - - return new AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter( - node.getPlanNodeId(), - operatorContext, - aggColumnSchemas, - aggColumnsIndexArray, - node.getDeviceEntries(), - node.getDeviceEntries().size(), - seriesScanOptions, - measurementColumnNames, - allSensors, - measurementSchemas, - aggregators, - groupingKeySchemas, - groupingKeyIndex, - timeRangeIterator, - scanAscending, - canUseStatistic, - aggregatorInputChannels, - timeColumnName, - outputSymbols); - } - - // used for AggregationTableScanNode - private AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter - constructAbstractAggTableScanOperatorParameter( - AggregationTableScanNode node, LocalExecutionPlanContext context) { - return constructAbstractAggTableScanOperatorParameter( - node, - context, - AbstractAggTableScanOperator.class.getSimpleName(), - Collections.emptyMap(), - Long.MAX_VALUE); - } - - @Override - public Operator visitAggregationTableScan( - AggregationTableScanNode node, LocalExecutionPlanContext context) { - - AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter parameter = - constructAbstractAggTableScanOperatorParameter(node, context); - - OptimizeType optimizeType = - canUseLastCacheOptimize( - parameter.getTableAggregators(), node, parameter.getTimeColumnName()); - if (optimizeType != OptimizeType.NOOP) { - return constructLastQueryAggTableScanOperator( - node, parameter, optimizeType == OptimizeType.LAST_ROW, context); - } else { - DefaultAggTableScanOperator aggTableScanOperator = new DefaultAggTableScanOperator(parameter); - - context.getInstanceContext().collectTable(node.getQualifiedObjectName().getObjectName()); - addSource( - aggTableScanOperator, - context, - node, - parameter.getMeasurementColumnNames(), - parameter.getMeasurementSchemas(), - parameter.getAllSensors(), - AggregationTableScanNode.class.getSimpleName()); - return aggTableScanOperator; - } - } - - private LastQueryAggTableScanOperator constructLastQueryAggTableScanOperator( - AggregationTableScanNode node, - AbstractAggTableScanOperator.AbstractAggTableScanOperatorParameter parameter, - boolean isLastRowOptimize, - LocalExecutionPlanContext context) { - List hitCachesIndexes = new ArrayList<>(); - List> lastRowCacheResults = null; - List lastValuesCacheResults = null; - List cachedDeviceEntries = new ArrayList<>(); - List unCachedDeviceEntries = new ArrayList<>(); - long tableTTL = - DataNodeTTLCache.getInstance() - .getTTLForTable( - node.getQualifiedObjectName().getDatabaseName(), - node.getQualifiedObjectName().getObjectName()); - Filter updateTimeFilter = - updateFilterUsingTTL(parameter.getSeriesScanOptions().getGlobalTimeFilter(), tableTTL); - if (isLastRowOptimize) { - lastRowCacheResults = new ArrayList<>(); - for (int i = 0; i < node.getDeviceEntries().size(); i++) { - Optional> lastByResult = - TableDeviceSchemaCache.getInstance() - .getLastRow( - node.getQualifiedObjectName().getDatabaseName(), - node.getDeviceEntries().get(i).getDeviceID(), - "", - parameter.getMeasurementColumnNames()); - boolean allHitCache = true; - if (lastByResult.isPresent() && lastByResult.get().getLeft().isPresent()) { - for (int j = 0; j < lastByResult.get().getRight().length; j++) { - TsPrimitiveType tsPrimitiveType = lastByResult.get().getRight()[j]; - if (tsPrimitiveType == null - || (updateTimeFilter != null - && !LastQueryUtil.satisfyFilter( - updateTimeFilter, - new TimeValuePair( - lastByResult.get().getLeft().getAsLong(), tsPrimitiveType)))) { - // the process logic is different from tree model which examine if - // `isFilterGtOrGe(seriesScanOptions.getGlobalTimeFilter())`, set - // `lastByResult.get().getRight()[j] = EMPTY_PRIMITIVE_TYPE`, - // but it should skip in table model - allHitCache = false; - break; - } - } - } else { - allHitCache = false; - } - - DeviceEntry deviceEntry = node.getDeviceEntries().get(i); - if (!allHitCache) { - AlignedFullPath alignedPath = - constructAlignedPath( - deviceEntry, - parameter.getMeasurementColumnNames(), - parameter.getMeasurementSchemas(), - parameter.getAllSensors()); - ((DataDriverContext) context.getDriverContext()).addPath(alignedPath); - unCachedDeviceEntries.add(deviceEntry); - addUncachedDeviceToContext(node, context, deviceEntry); - - // last cache updateColumns need to put "" as time column - String[] updateColumns = new String[parameter.getMeasurementColumnNames().size() + 1]; - updateColumns[0] = ""; - for (int j = 1; j < updateColumns.length; j++) { - updateColumns[j] = parameter.getMeasurementColumnNames().get(j - 1); - } - TableDeviceSchemaCache.getInstance() - .initOrInvalidateLastCache( - node.getQualifiedObjectName().getDatabaseName(), - deviceEntry.getDeviceID(), - updateColumns, - false); - } else { - hitCachesIndexes.add(i); - lastRowCacheResults.add(lastByResult.get()); - cachedDeviceEntries.add(deviceEntry); - decreaseDeviceCount(node, context, deviceEntry); - } - } - } else { - // LAST_VALUES optimize - lastValuesCacheResults = new ArrayList<>(); - int measurementSize = parameter.getMeasurementColumnNames().size(); - // We don't init time if the last cache will not be updated in process of operator - boolean needInitTime = - parameter.getTableAggregators().stream() - .anyMatch( - aggregator -> - aggregator.getAccumulator() instanceof LastDescAccumulator - && !((LastDescAccumulator) aggregator.getAccumulator()) - .isMeasurementColumn()); - // When we need last cache of Time column if: - // 1. query is group by (we need last cache of Time to help judge if there is no data in - // device) - // 2. last(time), last(device) or last(attribute) occurs - boolean needTime = !node.getGroupingKeys().isEmpty() || needInitTime; - String[] targetColumns; - - if (needTime) { - targetColumns = new String[measurementSize + 1]; - // put time column in the last for convenience of later processing - targetColumns[targetColumns.length - 1] = ""; - } else { - targetColumns = new String[measurementSize]; - } - - for (int j = 0; j < measurementSize; j++) { - targetColumns[j] = parameter.getMeasurementColumnNames().get(j); - } - - for (int i = 0; i < node.getDeviceEntries().size(); i++) { - TimeValuePair[] lastResult = - TableDeviceSchemaCache.getInstance() - .getLastEntries( - node.getQualifiedObjectName().getDatabaseName(), - node.getDeviceEntries().get(i).getDeviceID(), - targetColumns); - boolean allHitCache = true; - if (lastResult != null) { - for (TimeValuePair timeValuePair : lastResult) { - if (timeValuePair == null || timeValuePair.getValue() == null) { - allHitCache = false; - break; - } - - if (updateTimeFilter != null - && !LastQueryUtil.satisfyFilter( - parameter.getSeriesScanOptions().getGlobalTimeFilter(), timeValuePair)) { - if (isFilterGtOrGe(updateTimeFilter)) { - // it means there is no data meets Filter - timeValuePair.setValue(EMPTY_PRIMITIVE_TYPE); - } else { - allHitCache = false; - break; - } - } - } - } else { - allHitCache = false; - } - - DeviceEntry deviceEntry = node.getDeviceEntries().get(i); - if (!allHitCache) { - AlignedFullPath alignedPath = - constructAlignedPath( - deviceEntry, - parameter.getMeasurementColumnNames(), - parameter.getMeasurementSchemas(), - parameter.getAllSensors()); - ((DataDriverContext) context.getDriverContext()).addPath(alignedPath); - unCachedDeviceEntries.add(deviceEntry); - addUncachedDeviceToContext(node, context, deviceEntry); - - TableDeviceSchemaCache.getInstance() - .initOrInvalidateLastCache( - node.getQualifiedObjectName().getDatabaseName(), - deviceEntry.getDeviceID(), - needInitTime || node.getGroupingKeys().isEmpty() - ? targetColumns - : Arrays.copyOfRange(targetColumns, 0, targetColumns.length - 1), - false); - } else { - hitCachesIndexes.add(i); - lastValuesCacheResults.add(lastResult); - cachedDeviceEntries.add(deviceEntry); - decreaseDeviceCount(node, context, deviceEntry); - } - } - } - - parameter.setDeviceEntries(unCachedDeviceEntries); - - // context add TableLastQueryOperator - LastQueryAggTableScanOperator lastQueryOperator = - new LastQueryAggTableScanOperator( - parameter, - cachedDeviceEntries, - node.getQualifiedObjectName(), - hitCachesIndexes, - lastRowCacheResults, - lastValuesCacheResults, - node.getDeviceCountMap(), - context.getInstanceContext().getDataNodeQueryContext()); - - ((DataDriverContext) context.getDriverContext()).addSourceOperator(lastQueryOperator); - parameter - .getOperatorContext() - .setOperatorType(LastQueryAggTableScanOperator.class.getSimpleName()); - return lastQueryOperator; - } - - private void addUncachedDeviceToContext( - AggregationTableScanNode node, LocalExecutionPlanContext context, DeviceEntry deviceEntry) { - boolean deviceInMultiRegion = - node.getDeviceCountMap() != null && node.getDeviceCountMap().containsKey(deviceEntry); - if (!deviceInMultiRegion) { - return; - } - - context.dataNodeQueryContext.lock(true); - try { - context.dataNodeQueryContext.addUnCachedDeviceIfAbsent( - node.getQualifiedObjectName(), deviceEntry, node.getDeviceCountMap().get(deviceEntry)); - } finally { - context.dataNodeQueryContext.unLock(true); - } - } - - /** - * Decrease the device count when its last cache was hit. Notice that the count can also be zero - * after decrease, we need to update last cache if needed. - */ - private void decreaseDeviceCount( - AggregationTableScanNode node, LocalExecutionPlanContext context, DeviceEntry deviceEntry) { - boolean deviceInMultiRegion = - node.getDeviceCountMap() != null && node.getDeviceCountMap().containsKey(deviceEntry); - if (!deviceInMultiRegion) { - return; - } - - context.dataNodeQueryContext.lock(true); - try { - context.dataNodeQueryContext.decreaseDeviceAndMayUpdateLastCache( - node.getQualifiedObjectName(), deviceEntry, node.getDeviceCountMap().get(deviceEntry)); - } finally { - context.dataNodeQueryContext.unLock(true); - } - } - - private SeriesScanOptions buildSeriesScanOptions( - LocalExecutionPlanContext context, - Map columnSchemaMap, - List measurementColumnNames, - Map measurementColumnsIndexMap, - String timeColumnName, - Optional timePredicate, - long pushDownLimit, - long pushDownOffset, - boolean pushLimitToEachDevice, - Expression pushDownPredicate) { - SeriesScanOptions.Builder scanOptionsBuilder = - timePredicate - .map(expression -> getSeriesScanOptionsBuilder(context, expression)) - .orElseGet(SeriesScanOptions.Builder::new); - scanOptionsBuilder.withPushDownLimit(pushDownLimit); - scanOptionsBuilder.withPushDownOffset(pushDownOffset); - scanOptionsBuilder.withPushLimitToEachDevice(pushLimitToEachDevice); - scanOptionsBuilder.withAllSensors(new HashSet<>(measurementColumnNames)); - if (pushDownPredicate != null) { - scanOptionsBuilder.withPushDownFilter( - convertPredicateToFilter( - pushDownPredicate, - measurementColumnsIndexMap, - columnSchemaMap, - timeColumnName, - context.getZoneId(), - TimestampPrecisionUtils.currPrecision)); - } - return scanOptionsBuilder.build(); - } - - @Override - public Operator visitExplainAnalyze(ExplainAnalyzeNode node, LocalExecutionPlanContext context) { - Operator operator = node.getChild().accept(this, context); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - ExplainAnalyzeOperator.class.getSimpleName()); - return new ExplainAnalyzeOperator( - operatorContext, operator, node.getQueryId(), node.isVerbose(), node.getTimeout()); - } - - @Override - public Operator visitCopyTo(CopyToNode node, LocalExecutionPlanContext context) { - PlanNode childNode = node.getChild(); - - List innerQueryOutputSymbols = node.getInnerQueryOutputSymbols(); - List childOutputSymbols = childNode.getOutputSymbols(); - Map childOutputSymbolsIndexMap = new HashMap<>(childOutputSymbols.size()); - for (int i = 0; i < childOutputSymbols.size(); i++) { - childOutputSymbolsIndexMap.put(childOutputSymbols.get(i), i); - } - int[] columnIndex2TsBlockColumnIndexList = new int[innerQueryOutputSymbols.size()]; - for (int i = 0; i < innerQueryOutputSymbols.size(); i++) { - int index = childOutputSymbolsIndexMap.get(innerQueryOutputSymbols.get(i)); - columnIndex2TsBlockColumnIndexList[i] = index; - } - - Operator operator = childNode.accept(this, context); - - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableCopyToOperator.class.getSimpleName()); - return new TableCopyToOperator( - operatorContext, - operator, - node.getTargetFilePath(), - node.getCopyToOptions(), - node.getInnerQueryDatasetHeader().getColumnHeaders(), - columnIndex2TsBlockColumnIndexList); - } - - @Override - public Operator visitTableFunctionProcessor( - TableFunctionProcessorNode node, LocalExecutionPlanContext context) { - TableFunction tableFunction = metadata.getTableFunction(node.getName()); - TableFunctionProcessorProvider processorProvider = - tableFunction.getProcessorProvider(node.getTableFunctionHandle()); - if (node.getChildren().isEmpty()) { - List outputDataTypes = - node.getOutputSymbols().stream() - .map(context.getTypeProvider()::getTableModelType) - .map(InternalTypeManager::getTSDataType) - .collect(Collectors.toList()); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableFunctionLeafOperator.class.getSimpleName()); - return new TableFunctionLeafOperator(operatorContext, processorProvider, outputDataTypes); - } else { - Operator operator = node.getChild().accept(this, context); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableFunctionOperator.class.getSimpleName()); - - List inputDataTypes = - node.getChild().getOutputSymbols().stream() - .map(context.getTypeProvider()::getTableModelType) - .map(InternalTypeManager::getTSDataType) - .collect(Collectors.toList()); - - List outputDataTypes = - node.getOutputSymbols().stream() - .map(context.getTypeProvider()::getTableModelType) - .map(InternalTypeManager::getTSDataType) - .collect(Collectors.toList()); - - int properChannelCount = node.getProperOutputs().size(); - Optional passThroughSpecification = - node.getPassThroughSpecification(); - - Map childLayout = - makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); - List requiredChannels = - getChannelsForSymbols(node.getRequiredSymbols(), childLayout); - List passThroughChannels = - passThroughSpecification - .map( - passThrough -> - getChannelsForSymbols( - passThrough.getColumns().stream() - .map(TableFunctionNode.PassThroughColumn::getSymbol) - .collect(Collectors.toList()), - childLayout)) - .orElse(Collections.emptyList()); - List partitionChannels; - if (node.getDataOrganizationSpecification().isPresent()) { - partitionChannels = - getChannelsForSymbols( - node.getDataOrganizationSpecification().get().getPartitionBy(), childLayout); - } else { - partitionChannels = Collections.emptyList(); - } - return new TableFunctionOperator( - operatorContext, - processorProvider, - operator, - inputDataTypes, - outputDataTypes, - properChannelCount, - requiredChannels, - passThroughChannels, - passThroughSpecification - .map(TableFunctionNode.PassThroughSpecification::isDeclaredAsPassThrough) - .orElse(false), - partitionChannels, - node.isRequireRecordSnapshot()); - } - } - - private PatternAggregator buildPatternAggregator( - ResolvedFunction resolvedFunction, - List> arguments, - List argumentChannels, - PatternAggregationTracker patternAggregationTracker) { - String functionName = resolvedFunction.getSignature().getName(); - List originalArgumentTypes = - resolvedFunction.getSignature().getArgumentTypes().stream() - .map(InternalTypeManager::getTSDataType) - .collect(Collectors.toList()); - - TableAccumulator accumulator = - createBuiltinAccumulator(getAggregationTypeByFuncName(functionName), originalArgumentTypes); - - BoundSignature signature = resolvedFunction.getSignature(); - - return new PatternAggregator( - signature, accumulator, argumentChannels, patternAggregationTracker); - } - - @Override - public Operator visitPatternRecognition( - PatternRecognitionNode node, LocalExecutionPlanContext context) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - PatternRecognitionOperator.class.getSimpleName()); - - Operator child = node.getChild().accept(this, context); - - Map childLayout = - makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); - - List partitionBySymbols = node.getPartitionBy(); - List partitionChannels = - ImmutableList.copyOf(getChannelsForSymbols(partitionBySymbols, childLayout)); - - List sortChannels = ImmutableList.of(); - List sortOrder = ImmutableList.of(); - - if (node.getOrderingScheme().isPresent()) { - OrderingScheme orderingScheme = node.getOrderingScheme().get(); - sortChannels = getChannelsForSymbols(orderingScheme.getOrderBy(), childLayout); - sortOrder = orderingScheme.getOrderingList(); - } - - // The output order for pattern recognition operation is defined as follows: - // - for ONE ROW PER MATCH: partition by symbols, then measures, - // - for ALL ROWS PER MATCH: partition by symbols, order by symbols, measures, remaining input - // symbols. - - // all output column types of the input table - List inputDataTypes = - getOutputColumnTypes(node.getChild(), context.getTypeProvider()); - - // input channels to be passed directly to output, excluding MEASURES columns - ImmutableList.Builder outputChannels = ImmutableList.builder(); - // output dataTypes, used to construct the output TsBlock, including MEASURES columns - ImmutableList.Builder outputDataTypes = ImmutableList.builder(); - - if (node.getRowsPerMatch() == ONE) { - // ONE ROW PER MATCH: partition columns, MEASURES - - // add all partition columns - outputChannels.addAll(partitionChannels); - for (int i = 0; i < partitionBySymbols.size(); i++) { - Symbol symbol = partitionBySymbols.get(i); - // obtain the absolute index of the symbol in the base table through `childLayout` - outputDataTypes.add(inputDataTypes.get(childLayout.get(symbol))); - } - } else { - // ALL ROWS PER MATCH: all input columns, MEASURES - - outputChannels.addAll( - IntStream.range(0, inputDataTypes.size()).boxed().collect(toImmutableList())); - outputDataTypes.addAll(inputDataTypes); - } - - // add MEASURES columns - for (Map.Entry measure : node.getMeasures().entrySet()) { - outputDataTypes.add(getTSDataType(measure.getValue().getType())); - } - - // prepare structures specific to PatternRecognitionNode - // 1. establish a two-way mapping of IrLabels to `int` - List primaryLabels = ImmutableList.copyOf(node.getVariableDefinitions().keySet()); - ImmutableList.Builder labelNamesBuilder = ImmutableList.builder(); - ImmutableMap.Builder mappingBuilder = ImmutableMap.builder(); - for (int i = 0; i < primaryLabels.size(); i++) { - IrLabel label = primaryLabels.get(i); - labelNamesBuilder.add(label.getName()); - mappingBuilder.put(label, i); - } - Map mapping = mappingBuilder.buildOrThrow(); - List labelNames = labelNamesBuilder.build(); - - // 2. rewrite pattern to program - Program program = IrRowPatternToProgramRewriter.rewrite(node.getPattern(), mapping); - - // 3. DEFINE: prepare patternVariableComputation (PatternVariableRecognizer is to be - // instantiated once per partition) - - // during pattern matching, each thread will have a list of aggregations necessary for label - // evaluations. - // the list of aggregations for a thread will be produced at thread creation time from this - // supplier list, respecting the order. - // pointers in LabelEvaluator and ThreadEquivalence will access aggregations by position in - // list. - int matchAggregationIndex = 0; - ImmutableList.Builder variableRecognizerAggregatorBuilder = - ImmutableList.builder(); - List variableRecognizerAggregators = ImmutableList.of(); - - ImmutableList.Builder evaluationsBuilder = - ImmutableList.builder(); - - for (Map.Entry entry : - node.getVariableDefinitions().entrySet()) { - String variableName = entry.getKey().getName(); - ExpressionAndValuePointers expressionAndValuePointers = entry.getValue(); - - // convert the `ValuePointer` in the `Assignment` to `PhysicalValueAccessor` - List valueAccessors = new ArrayList<>(); - for (ExpressionAndValuePointers.Assignment assignment : - expressionAndValuePointers.getAssignments()) { - ValuePointer pointer = assignment.getValuePointer(); - if (pointer instanceof MatchNumberValuePointer) { - valueAccessors.add( - new PhysicalValuePointer(MATCH_NUMBER, INT64, LogicalIndexNavigation.NO_OP)); - } else if (pointer instanceof ClassifierValuePointer) { - ClassifierValuePointer classifierPointer = (ClassifierValuePointer) pointer; - valueAccessors.add( - new PhysicalValuePointer( - CLASSIFIER, - STRING, - classifierPointer.getLogicalIndexPointer().toLogicalIndexNavigation(mapping))); - } else if (pointer instanceof ScalarValuePointer) { - ScalarValuePointer scalarPointer = (ScalarValuePointer) pointer; - valueAccessors.add( - new PhysicalValuePointer( - getOnlyElement( - getChannelsForSymbols( - ImmutableList.of(scalarPointer.getInputSymbol()), childLayout)), - context.getTypeProvider().getTableModelType(scalarPointer.getInputSymbol()), - scalarPointer.getLogicalIndexPointer().toLogicalIndexNavigation(mapping))); - } else if (pointer instanceof AggregationValuePointer) { - AggregationValuePointer aggregationPointer = (AggregationValuePointer) pointer; - - ResolvedFunction resolvedFunction = aggregationPointer.getFunction(); - - ImmutableList.Builder> builder = ImmutableList.builder(); - List signatureTypes = resolvedFunction.getSignature().getArgumentTypes(); - for (int i = 0; i < aggregationPointer.getArguments().size(); i++) { - builder.add( - new AbstractMap.SimpleEntry<>( - aggregationPointer.getArguments().get(i), signatureTypes.get(i))); - } - List> arguments = builder.build(); - - List valueChannels = new ArrayList<>(); - - for (Map.Entry argumentWithType : arguments) { - Expression argument = argumentWithType.getKey(); - valueChannels.add(childLayout.get(Symbol.from(argument))); - } - - AggregationLabelSet labelSet = aggregationPointer.getSetDescriptor(); - Set labels = - labelSet.getLabels().stream().map(mapping::get).collect(Collectors.toSet()); - PatternAggregationTracker patternAggregationTracker = - new PatternAggregationTracker( - labels, aggregationPointer.getSetDescriptor().isRunning()); - - PatternAggregator variableRecognizerAggregator = - buildPatternAggregator( - resolvedFunction, arguments, valueChannels, patternAggregationTracker); - - variableRecognizerAggregatorBuilder.add(variableRecognizerAggregator); - - valueAccessors.add(new PhysicalAggregationPointer(matchAggregationIndex)); - matchAggregationIndex++; - } - } - - variableRecognizerAggregators = variableRecognizerAggregatorBuilder.build(); - - // transform the symbolic expression tree in the logical planning stage into a parametric - // expression tree - Computation computation = Computation.ComputationParser.parse(expressionAndValuePointers); - - // construct a `PatternVariableComputation` object, where valueAccessors is a parameter list - // and computation is a parametric expression tree, encapsulating the computation logic - PatternVariableRecognizer.PatternVariableComputation patternVariableComputation = - new PatternVariableRecognizer.PatternVariableComputation( - valueAccessors, computation, ImmutableList.of(), labelNames); - - evaluationsBuilder.add(patternVariableComputation); - } - - // 4. MEASURES: prepare measures computations - ImmutableList.Builder measureComputationsBuilder = - ImmutableList.builder(); - - matchAggregationIndex = 0; - ImmutableList.Builder measurePatternAggregatorBuilder = - ImmutableList.builder(); - List measurePatternAggregators = ImmutableList.of(); - - for (Measure measure : node.getMeasures().values()) { - ExpressionAndValuePointers expressionAndValuePointers = - measure.getExpressionAndValuePointers(); - - // convert the `ValuePointer` in the `Assignment` to `PhysicalValueAccessor` - List valueAccessors = new ArrayList<>(); - for (ExpressionAndValuePointers.Assignment assignment : - expressionAndValuePointers.getAssignments()) { - ValuePointer pointer = assignment.getValuePointer(); - if (pointer instanceof MatchNumberValuePointer) { - valueAccessors.add( - new PhysicalValuePointer(MATCH_NUMBER, INT64, LogicalIndexNavigation.NO_OP)); - } else if (pointer instanceof ClassifierValuePointer) { - ClassifierValuePointer classifierPointer = (ClassifierValuePointer) pointer; - valueAccessors.add( - new PhysicalValuePointer( - CLASSIFIER, - STRING, - classifierPointer.getLogicalIndexPointer().toLogicalIndexNavigation(mapping))); - } else if (pointer instanceof ScalarValuePointer) { - ScalarValuePointer scalarPointer = (ScalarValuePointer) pointer; - valueAccessors.add( - new PhysicalValuePointer( - getOnlyElement( - getChannelsForSymbols( - ImmutableList.of(scalarPointer.getInputSymbol()), childLayout)), - context.getTypeProvider().getTableModelType(scalarPointer.getInputSymbol()), - scalarPointer.getLogicalIndexPointer().toLogicalIndexNavigation(mapping))); - } else if (pointer instanceof AggregationValuePointer) { - AggregationValuePointer aggregationPointer = (AggregationValuePointer) pointer; - - ResolvedFunction resolvedFunction = aggregationPointer.getFunction(); - - ImmutableList.Builder> builder = ImmutableList.builder(); - List signatureTypes = resolvedFunction.getSignature().getArgumentTypes(); - for (int i = 0; i < aggregationPointer.getArguments().size(); i++) { - builder.add( - new AbstractMap.SimpleEntry<>( - aggregationPointer.getArguments().get(i), signatureTypes.get(i))); - } - List> arguments = builder.build(); - - List valueChannels = new ArrayList<>(); - - for (Map.Entry argumentWithType : arguments) { - Expression argument = argumentWithType.getKey(); - valueChannels.add(childLayout.get(Symbol.from(argument))); - } - - AggregationLabelSet labelSet = aggregationPointer.getSetDescriptor(); - Set labels = - labelSet.getLabels().stream().map(mapping::get).collect(Collectors.toSet()); - PatternAggregationTracker patternAggregationTracker = - new PatternAggregationTracker( - labels, aggregationPointer.getSetDescriptor().isRunning()); - - PatternAggregator measurePatternAggregator = - buildPatternAggregator( - resolvedFunction, arguments, valueChannels, patternAggregationTracker); - - measurePatternAggregatorBuilder.add(measurePatternAggregator); - - valueAccessors.add(new PhysicalAggregationPointer(matchAggregationIndex)); - matchAggregationIndex++; - } - } - - measurePatternAggregators = measurePatternAggregatorBuilder.build(); - - // transform the symbolic expression tree in the logical planning stage into a parametric - // expression tree - Computation computation = Computation.ComputationParser.parse(expressionAndValuePointers); - - // construct a `PatternExpressionComputation` object, where valueAccessors is a parameter - // list and computation is a parametric expression tree, encapsulating the computation logic. - PatternExpressionComputation measureComputation = - new PatternExpressionComputation(valueAccessors, computation, measurePatternAggregators); - - measureComputationsBuilder.add(measureComputation); - } - - // 5. prepare SKIP TO navigation - Optional skipToNavigation = Optional.empty(); - if (!node.getSkipToLabels().isEmpty()) { - boolean last = node.getSkipToPosition().equals(LAST); - skipToNavigation = - Optional.of( - new LogicalIndexPointer(node.getSkipToLabels(), last, false, 0, 0) - .toLogicalIndexNavigation(mapping)); - } - - return new PatternRecognitionOperator( - operatorContext, - child, - inputDataTypes, - outputDataTypes.build(), - outputChannels.build(), - partitionChannels, - sortChannels, - node.getRowsPerMatch(), - node.getSkipToPosition(), - skipToNavigation, - new Matcher(program, variableRecognizerAggregators), - evaluationsBuilder.build(), - measurePatternAggregators, - measureComputationsBuilder.build(), - labelNames); - } - - @Override - public Operator visitInto(IntoNode node, LocalExecutionPlanContext context) { - Operator child = node.getChild().accept(this, context); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableIntoOperator.class.getSimpleName()); - - PartialPath targetTable = new PartialPath(node.getTable(), false); - - Map tsDataTypeMap = new LinkedHashMap<>(); - Map inputLocationMap = new LinkedHashMap<>(); - List inputColumnTypes = new ArrayList<>(); - List inputColumnCategories = new ArrayList<>(); - - List originColumns = node.getColumns(); - List originInputColumnNames = node.getNeededInputColumnNames(); - int size = originColumns.size(); - List inputColumns = new ArrayList<>(size); - - List childOutputName = node.getChild().getOutputSymbols(); - Map map = new HashMap<>(childOutputName.size()); - for (int i = 0; i < size; i++) { - map.put(childOutputName.get(i), i); - inputColumns.add(null); - } - for (int i = 0; i < size; i++) { - int index = map.get(originInputColumnNames.get(i)); - inputColumns.set(index, originColumns.get(i)); - } - ColumnSchema timeColumnOfTargetTable = null; - for (int i = 0; i < inputColumns.size(); i++) { - String columnName = inputColumns.get(i).getName(); - inputLocationMap.put(columnName, new InputLocation(0, i)); - - TsTableColumnCategory columnCategory = inputColumns.get(i).getColumnCategory(); - if (columnCategory == TIME) { - if (timeColumnOfTargetTable == null) { - timeColumnOfTargetTable = inputColumns.get(i); - } else { - throw new SemanticException("Multiple columns with TIME category found"); - } - continue; - } - - TSDataType columnType = InternalTypeManager.getTSDataType(inputColumns.get(i).getType()); - tsDataTypeMap.put(columnName, columnType); - inputColumnTypes.add(columnType); - inputColumnCategories.add(columnCategory); - } - if (timeColumnOfTargetTable == null) { - throw new SemanticException("Missing TIME category column"); - } - - long statementSizePerLine = - OperatorGeneratorUtil.calculateStatementSizePerLine(inputColumnTypes); - - return new TableIntoOperator( - operatorContext, - child, - node.getDatabase(), - targetTable, - inputColumnTypes, - inputColumnCategories, - inputLocationMap, - tsDataTypeMap, - true, - FragmentInstanceManager.getInstance().getIntoOperationExecutor(), - statementSizePerLine, - timeColumnOfTargetTable); - } - - private boolean[] checkStatisticAndScanOrder( - AggregationTableScanNode node, String timeColumnName) { - boolean canUseStatistic = true; - int ascendingCount = 0, descendingCount = 0; - - for (Map.Entry entry : node.getAggregations().entrySet()) { - AggregationNode.Aggregation aggregation = entry.getValue(); - String funcName = aggregation.getResolvedFunction().getSignature().getName(); - Symbol argument = Symbol.from(aggregation.getArguments().get(0)); - Type argumentType = node.getAssignments().get(argument).getType(); - - switch (funcName) { - case COUNT: - case AVG: - case SUM: - case EXTREME: - break; - case MAX: - case MIN: - if (BlobType.BLOB.equals(argumentType) - || ObjectType.OBJECT.equals(argumentType) - || BinaryType.TEXT.equals(argumentType) - || BooleanType.BOOLEAN.equals(argumentType)) { - canUseStatistic = false; - } - break; - case FIRST_AGGREGATION: - case LAST_AGGREGATION: - case LAST_BY_AGGREGATION: - case FIRST_BY_AGGREGATION: - if (FIRST_AGGREGATION.equals(funcName) || FIRST_BY_AGGREGATION.equals(funcName)) { - ascendingCount++; - } else { - descendingCount++; - } - - // first/last/first_by/last_by aggregation with BLOB or OBJECT type can not use statistics - if (BlobType.BLOB.equals(argumentType) || ObjectType.OBJECT.equals(argumentType)) { - canUseStatistic = false; - break; - } - - // first and last, the second argument has to be the time column - if (FIRST_AGGREGATION.equals(funcName) || LAST_AGGREGATION.equals(funcName)) { - if (!isTimeColumn(aggregation.getArguments().get(1), timeColumnName)) { - canUseStatistic = false; - break; - } - } - - // first_by and last_by, the second argument has to be the time column - if (FIRST_BY_AGGREGATION.equals(funcName) || LAST_BY_AGGREGATION.equals(funcName)) { - if (!isTimeColumn(aggregation.getArguments().get(2), timeColumnName)) { - canUseStatistic = false; - break; - } - } - - // only last_by(time, x) or last_by(x,time) can use statistic - if ((LAST_BY_AGGREGATION.equals(funcName) || FIRST_BY_AGGREGATION.equals(funcName)) - && !isTimeColumn(aggregation.getArguments().get(0), timeColumnName) - && !isTimeColumn(aggregation.getArguments().get(1), timeColumnName)) { - canUseStatistic = false; - } - break; - default: - canUseStatistic = false; - } - } - - boolean isAscending = node.getScanOrder().isAscending(); - boolean groupByDateBin = node.getProjection() != null && !node.getProjection().isEmpty(); - // only in non-groupByDateBin situation can change the scan order - if (!groupByDateBin) { - if (ascendingCount >= descendingCount) { - node.setScanOrder(Ordering.ASC); - isAscending = true; - } else { - node.setScanOrder(Ordering.DESC); - isAscending = false; - } - } - return new boolean[] {canUseStatistic, isAscending}; - } - - private OptimizeType canUseLastCacheOptimize( - List aggregators, AggregationTableScanNode node, String timeColumnName) { - if (!CommonDescriptor.getInstance().getConfig().isLastCacheEnable() || aggregators.isEmpty()) { - return OptimizeType.NOOP; - } - - // has value filter, can not optimize - if (node.getPushDownPredicate() != null) { - return OptimizeType.NOOP; - } - - // has date_bin, can not optimize - if (!node.getGroupingKeys().isEmpty() - && node.getProjection() != null - && !node.getProjection().getMap().isEmpty()) { - return OptimizeType.NOOP; - } - - // if the timeColumnName is null, the param of function is just a timestamp column other than - // the time column - if (timeColumnName == null || !checkOrderColumnIsTime(node.getAggregations(), timeColumnName)) { - return OptimizeType.NOOP; - } - - if (canUseLastRowOptimize(aggregators)) { - return OptimizeType.LAST_ROW; - } - - if (canUseLastValuesOptimize(aggregators)) { - return OptimizeType.LAST_VALUES; - } - - return OptimizeType.NOOP; - } - - /** - * Checks if the ordering column in aggregations matches the time column. only check for - * FIRST/LAST/FIRST_BY/LAST_BY - */ - private boolean checkOrderColumnIsTime( - Map aggregations, String timeColumnName) { - - for (Map.Entry entry : aggregations.entrySet()) { - String functionName = - entry.getValue().getResolvedFunction().getSignature().getName().toLowerCase(); - List arguments = entry.getValue().getArguments(); - Expression lastParam = entry.getValue().getArguments().get(arguments.size() - 1); - - switch (functionName) { - case FIRST_AGGREGATION: - case LAST_AGGREGATION: - case FIRST_BY_AGGREGATION: - case LAST_BY_AGGREGATION: - if (!((SymbolReference) lastParam).getName().equalsIgnoreCase(timeColumnName)) { - return false; - } - break; - } - } - return true; - } - - private boolean canUseLastRowOptimize(List aggregators) { - for (TableAggregator aggregator : aggregators) { - if (aggregator.getAccumulator() instanceof LastDescAccumulator) { - if (!((LastDescAccumulator) aggregator.getAccumulator()).isTimeColumn()) { - return false; - } - } else if (aggregator.getAccumulator() instanceof LastByDescAccumulator) { - if (!((LastByDescAccumulator) aggregator.getAccumulator()).yIsTimeColumn()) { - return false; - } - } else { - return false; - } - } - return true; - } - - private boolean canUseLastValuesOptimize(List aggregators) { - for (TableAggregator aggregator : aggregators) { - if (aggregator.getAccumulator() instanceof LastByDescAccumulator) { - // cannot optimize when x is Measurement or y is not Measurement - if (((LastByDescAccumulator) aggregator.getAccumulator()).xIsMeasurementColumn() - || !((LastByDescAccumulator) aggregator.getAccumulator()).yIsMeasurementColumn()) { - return false; - } - } else if (!(aggregator.getAccumulator() instanceof LastDescAccumulator)) { - return false; - } - } - return true; - } - - private enum OptimizeType { - LAST_ROW, - LAST_VALUES, - NOOP - } - - @Override - public Operator visitMarkDistinct(MarkDistinctNode node, LocalExecutionPlanContext context) { - Operator child = node.getChild().accept(this, context); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - ExplainAnalyzeOperator.class.getSimpleName()); - - TypeProvider typeProvider = context.getTypeProvider(); - Map childLayout = - makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); - - return new MarkDistinctOperator( - operatorContext, - child, - node.getChild().getOutputSymbols().stream() - .map(typeProvider::getTableModelType) - .collect(Collectors.toList()), - node.getDistinctSymbols().stream().map(childLayout::get).collect(Collectors.toList()), - Optional.empty()); - } - - @Override - public Operator visitWindowFunction(WindowNode node, LocalExecutionPlanContext context) { - TypeProvider typeProvider = context.getTypeProvider(); - Operator child = node.getChild().accept(this, context); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - TableWindowOperator.class.getSimpleName()); - - Map childLayout = - makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); - - // Partition channel - List partitionBySymbols = node.getSpecification().getPartitionBy(); - List partitionChannels = - ImmutableList.copyOf(getChannelsForSymbols(partitionBySymbols, childLayout)); - - // Sort channel - List sortChannels = ImmutableList.of(); - List sortOrder = ImmutableList.of(); - if (node.getSpecification().getOrderingScheme().isPresent()) { - OrderingScheme orderingScheme = node.getSpecification().getOrderingScheme().get(); - sortChannels = getChannelsForSymbols(orderingScheme.getOrderBy(), childLayout); - sortOrder = orderingScheme.getOrderingList(); - } - - // Output channel - ImmutableList.Builder outputChannels = ImmutableList.builder(); - List outputDataTypes = new ArrayList<>(); - List inputDataTypes = - getOutputColumnTypes(node.getChild(), context.getTypeProvider()); - for (int i = 0; i < inputDataTypes.size(); i++) { - outputChannels.add(i); - outputDataTypes.add(inputDataTypes.get(i)); - } - - // Window functions - List frameInfoList = new ArrayList<>(); - List windowFunctions = new ArrayList<>(); - List windowFunctionOutputSymbols = new ArrayList<>(); - List windowFunctionOutputDataTypes = new ArrayList<>(); - for (Map.Entry entry : node.getWindowFunctions().entrySet()) { - // Create FrameInfo - WindowNode.Frame frame = entry.getValue().getFrame(); - - Optional frameStartChannel = Optional.empty(); - if (frame.getStartValue().isPresent()) { - frameStartChannel = Optional.ofNullable(childLayout.get(frame.getStartValue().get())); - } - Optional frameEndChannel = Optional.empty(); - if (frame.getEndValue().isPresent()) { - frameEndChannel = Optional.ofNullable(childLayout.get(frame.getEndValue().get())); - } - - Optional sortKeyChannel = Optional.empty(); - Optional ordering = Optional.empty(); - if (node.getSpecification().getOrderingScheme().isPresent()) { - sortKeyChannel = Optional.of(sortChannels.get(0)); - if (sortOrder.get(0).isNullsFirst()) { - if (sortOrder.get(0).isAscending()) { - ordering = Optional.of(ASC_NULLS_FIRST); - } else { - ordering = Optional.of(DESC_NULLS_FIRST); - } - } else { - if (sortOrder.get(0).isAscending()) { - ordering = Optional.of(ASC_NULLS_LAST); - } else { - ordering = Optional.of(DESC_NULLS_LAST); - } - } - } - FrameInfo frameInfo = - new FrameInfo( - frame.getType(), - frame.getStartType(), - frameStartChannel, - frame.getEndType(), - frameEndChannel, - sortKeyChannel, - ordering); - frameInfoList.add(frameInfo); - - // Arguments - WindowNode.Function function = entry.getValue(); - ResolvedFunction resolvedFunction = function.getResolvedFunction(); - List argumentChannels = new ArrayList<>(); - for (Expression argument : function.getArguments()) { - Symbol argumentSymbol = Symbol.from(argument); - argumentChannels.add(childLayout.get(argumentSymbol)); - } - - // Return value - Type returnType = resolvedFunction.getSignature().getReturnType(); - windowFunctionOutputDataTypes.add(getTSDataType(returnType)); - - // Window function - Symbol symbol = entry.getKey(); - WindowFunction windowFunction; - FunctionKind functionKind = resolvedFunction.getFunctionKind(); - if (functionKind == FunctionKind.AGGREGATE) { - WindowAggregator tableWindowAggregator = - buildWindowAggregator(symbol, function, typeProvider, argumentChannels); - windowFunction = new AggregationWindowFunction(tableWindowAggregator); - } else if (functionKind == FunctionKind.WINDOW) { - String functionName = function.getResolvedFunction().getSignature().getName(); - windowFunction = - WindowFunctionFactory.createBuiltinWindowFunction( - functionName, argumentChannels, function.isIgnoreNulls()); - } else { - throw new UnsupportedOperationException("Unsupported function kind: " + functionKind); - } - - windowFunctions.add(windowFunction); - windowFunctionOutputSymbols.add(symbol); - } - - // Compute layout - ImmutableMap.Builder outputMappings = ImmutableMap.builder(); - for (Symbol symbol : node.getChild().getOutputSymbols()) { - outputMappings.put(symbol, childLayout.get(symbol)); - } - int channel = inputDataTypes.size(); - - for (Symbol symbol : windowFunctionOutputSymbols) { - outputMappings.put(symbol, channel); - channel++; - } - - outputDataTypes.addAll(windowFunctionOutputDataTypes); - return new TableWindowOperator( - operatorContext, - child, - inputDataTypes, - outputDataTypes, - outputChannels.build(), - windowFunctions, - frameInfoList, - partitionChannels, - sortChannels); - } - - private WindowAggregator buildWindowAggregator( - Symbol symbol, - WindowNode.Function function, - TypeProvider typeProvider, - List argumentChannels) { - // Create accumulator first - String functionName = function.getResolvedFunction().getSignature().getName(); - List originalArgumentTypes = - function.getResolvedFunction().getSignature().getArgumentTypes().stream() - .map(InternalTypeManager::getTSDataType) - .collect(Collectors.toList()); - TableAccumulator accumulator = - createBuiltinAccumulator(getAggregationTypeByFuncName(functionName), originalArgumentTypes); - - // Create aggregator by accumulator - return new WindowAggregator( - accumulator, getTSDataType(typeProvider.getTableModelType(symbol)), argumentChannels); - } - - @Override - public Operator visitUnion(UnionNode node, LocalExecutionPlanContext context) { - List children = - node.getChildren().stream() - .map(child -> child.accept(this, context)) - .collect(Collectors.toList()); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - MappingCollectOperator.class.getSimpleName()); - - int size = children.size(); - List> mappings = new ArrayList<>(size); - List unionOutputs = node.getOutputSymbols(); - ListMultimap outputToInputs = node.getSymbolMapping(); - for (int i = 0; i < size; i++) { - Map childOutputs = - makeLayoutFromOutputSymbols(node.getChildren().get(i).getOutputSymbols()); - int finalI = i; - mappings.add( - unionOutputs.stream() - .map(symbol -> childOutputs.get(outputToInputs.get(symbol).get(finalI))) - .collect(Collectors.toList())); - } - return new MappingCollectOperator(operatorContext, children, mappings); - } - - @Override - public Operator visitValuesNode(ValuesNode node, LocalExecutionPlanContext context) { - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - MappingCollectOperator.class.getSimpleName()); - - // Currently we only support empty values operator - assert node.getRowCount() == 0; - return new ValuesOperator(operatorContext, ImmutableList.of()); - } - - @Override - public Operator visitRowNumber(RowNumberNode node, LocalExecutionPlanContext context) { - Operator child = node.getChild().accept(this, context); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - MappingCollectOperator.class.getSimpleName()); - - List partitionBySymbols = node.getPartitionBy(); - Map childLayout = - makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); - List partitionChannels = getChannelsForSymbols(partitionBySymbols, childLayout); - List inputDataTypes = - getOutputColumnTypes(node.getChild(), context.getTypeProvider()); - - ImmutableList.Builder outputChannels = ImmutableList.builder(); - for (int i = 0; i < inputDataTypes.size(); i++) { - outputChannels.add(i); - } - - // compute the layout of the output from the window operator - ImmutableMap.Builder outputMappings = ImmutableMap.builder(); - outputMappings.putAll(childLayout); - - // row number function goes in the last channel - int channel = inputDataTypes.size(); - outputMappings.put(node.getRowNumberSymbol(), channel); - - return new RowNumberOperator( - operatorContext, - child, - inputDataTypes, - outputChannels.build(), - partitionChannels, - node.getMaxRowCountPerPartition(), - 10_000); - } - - @Override - public Operator visitTopKRanking(TopKRankingNode node, LocalExecutionPlanContext context) { - Operator child = node.getChild().accept(this, context); - OperatorContext operatorContext = - context - .getDriverContext() - .addOperatorContext( - context.getNextOperatorId(), - node.getPlanNodeId(), - MappingCollectOperator.class.getSimpleName()); - - List partitionBySymbols = node.getSpecification().getPartitionBy(); - Map childLayout = - makeLayoutFromOutputSymbols(node.getChild().getOutputSymbols()); - List partitionChannels = getChannelsForSymbols(partitionBySymbols, childLayout); - List inputDataTypes = - getOutputColumnTypes(node.getChild(), context.getTypeProvider()); - List partitionTypes = - partitionChannels.stream().map(inputDataTypes::get).collect(toImmutableList()); - - List orderBySymbols = new ArrayList<>(); - Optional orderingScheme = node.getSpecification().getOrderingScheme(); - if (orderingScheme.isPresent()) { - orderBySymbols = orderingScheme.get().getOrderBy(); - } - - List sortOrder = new ArrayList<>(); - List sortChannels = getChannelsForSymbols(orderBySymbols, childLayout); - if (orderingScheme.isPresent()) { - sortOrder = - orderBySymbols.stream() - .map(symbol -> orderingScheme.get().getOrdering(symbol)) - .collect(toImmutableList()); - } - - ImmutableList.Builder outputChannels = ImmutableList.builder(); - for (int i = 0; i < inputDataTypes.size(); i++) { - outputChannels.add(i); - } - - // compute the layout of the output from the window operator - ImmutableMap.Builder outputMappings = ImmutableMap.builder(); - outputMappings.putAll(childLayout); - - if (!node.isPartial() || !partitionChannels.isEmpty()) { - // ranking function goes in the last channel - int channel = inputDataTypes.size(); - outputMappings.put(node.getRankingSymbol(), channel); - } - - return new TopKRankingOperator( - operatorContext, - child, - node.getRankingType(), - inputDataTypes, - outputChannels.build(), - partitionChannels, - partitionTypes, - sortChannels, - sortOrder, - node.getMaxRankingPerPartition(), - node.isPartial(), - Optional.empty(), - 1000, - Optional.empty()); - } -} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TemplatedLogicalPlan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TemplatedLogicalPlan.java index 5634785a21487..36529b2176248 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TemplatedLogicalPlan.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TemplatedLogicalPlan.java @@ -20,16 +20,16 @@ package org.apache.iotdb.db.queryengine.plan.planner; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.analyze.TemplatedInfo; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.statement.crud.QueryStatement; import org.apache.iotdb.db.utils.SchemaUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TemplatedLogicalPlanBuilder.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TemplatedLogicalPlanBuilder.java index 19dcc8ee66d3c..d16bfb4ce6ef6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TemplatedLogicalPlanBuilder.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TemplatedLogicalPlanBuilder.java @@ -22,10 +22,10 @@ import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FilterNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.RawDataAggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.AlignedSeriesScanNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/DistributionPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/DistributionPlanner.java index ae17fdde04f0d..078c2c3e8464d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/DistributionPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/DistributionPlanner.java @@ -20,6 +20,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.distribution; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; @@ -34,8 +36,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.PlanFragment; import org.apache.iotdb.db.queryengine.plan.planner.plan.SubPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ExchangeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/ExchangeNodeAdder.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/ExchangeNodeAdder.java index 009d45ae54008..2c3e560159acd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/ExchangeNodeAdder.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/ExchangeNodeAdder.java @@ -21,9 +21,11 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.partition.DataPartition; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.ExplainAnalyzeNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.AbstractSchemaMergeNode; @@ -47,7 +49,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.HorizontallyConcatNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.LimitNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ProjectNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.RawDataAggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleDeviceViewNode; @@ -68,7 +69,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.RegionScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesAggregationScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SourceNode; import java.util.Arrays; import java.util.HashMap; @@ -78,7 +78,7 @@ import static com.google.common.collect.ImmutableList.toImmutableList; -public class ExchangeNodeAdder extends PlanVisitor { +public class ExchangeNodeAdder implements PlanVisitor { private final Analysis analysis; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/NodeGroupContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/NodeGroupContext.java index ee8c0bb4c6f18..23c74bb3075b4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/NodeGroupContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/NodeGroupContext.java @@ -21,11 +21,11 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.partition.DataPartition; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.last.LastQueryNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SourceNode; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import org.apache.iotdb.db.queryengine.plan.statement.crud.QueryStatement; import org.apache.iotdb.db.queryengine.plan.statement.metadata.ShowTimeSeriesStatement; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SimpleFragmentParallelPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SimpleFragmentParallelPlanner.java index d86b233b93f3a..4e34d36147168 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SimpleFragmentParallelPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SimpleFragmentParallelPlanner.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.distribution; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.plan.ClusterTopology; @@ -29,8 +31,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.PlanFragment; import org.apache.iotdb.db.queryengine.plan.planner.plan.SubPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.TreeModelTimePredicate; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ExchangeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.MultiChildrenSinkNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.LastQueryScanNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java index 9e1d402da5d9f..97665f3f12e71 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/SourceRewriter.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.planner.distribution; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot; import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; @@ -26,21 +27,23 @@ import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.expression.multi.FunctionType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.commons.schema.table.Audit; import org.apache.iotdb.commons.utils.PathUtils; import org.apache.iotdb.commons.utils.TimePartitionUtils; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.analyze.TemplatedInfo; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; -import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionType; import org.apache.iotdb.db.queryengine.plan.expression.visitor.ConcatDeviceVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.BaseSourceRewriter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.CountSchemaMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.SchemaFetchMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.SchemaFetchScanNode; @@ -55,7 +58,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.HorizontallyConcatNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.LimitNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ProjectNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.RawDataAggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleDeviceViewNode; @@ -76,7 +78,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesAggregationSourceNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesSourceNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SourceNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.TimeseriesRegionScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; @@ -85,7 +86,6 @@ import org.apache.iotdb.db.queryengine.plan.statement.component.OrderByKey; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.queryengine.plan.statement.component.SortItem; -import org.apache.iotdb.db.utils.constant.SqlConstant; import com.google.common.collect.ImmutableList; import org.apache.tsfile.common.conf.TSFileConfig; @@ -106,16 +106,16 @@ import java.util.TreeSet; import java.util.stream.Collectors; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.AVG; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT_IF; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.DIFF; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.FIRST_VALUE; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.TIME_DURATION; import static org.apache.iotdb.commons.conf.IoTDBConstant.LAST_VALUE; import static org.apache.iotdb.commons.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD; import static org.apache.iotdb.commons.partition.DataPartition.NOT_ASSIGNED; import static org.apache.iotdb.db.queryengine.plan.analyze.ExpressionTypeAnalyzer.analyzeExpression; import static org.apache.iotdb.db.queryengine.plan.planner.LogicalPlanBuilder.updateTypeProviderByPartialAggregation; -import static org.apache.iotdb.db.utils.constant.SqlConstant.AVG; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT_IF; -import static org.apache.iotdb.db.utils.constant.SqlConstant.DIFF; -import static org.apache.iotdb.db.utils.constant.SqlConstant.FIRST_VALUE; -import static org.apache.iotdb.db.utils.constant.SqlConstant.TIME_DURATION; public class SourceRewriter extends BaseSourceRewriter { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/WriteFragmentParallelPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/WriteFragmentParallelPlanner.java index edce982fea086..34b2b34be716a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/WriteFragmentParallelPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/WriteFragmentParallelPlanner.java @@ -21,6 +21,7 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.partition.StorageExecutor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.ClusterTopology; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; @@ -28,7 +29,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; import org.apache.iotdb.db.queryengine.plan.planner.plan.PlanFragment; import org.apache.iotdb.db.queryengine.plan.planner.plan.SubPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import java.util.ArrayList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/ConsumeAllChildrenPipelineMemoryEstimator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/ConsumeAllChildrenPipelineMemoryEstimator.java index 9585bffd53bd9..8431e887a0a3e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/ConsumeAllChildrenPipelineMemoryEstimator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/ConsumeAllChildrenPipelineMemoryEstimator.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.planner.memory; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; public class ConsumeAllChildrenPipelineMemoryEstimator extends PipelineMemoryEstimator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/ConsumeChildrenOneByOnePipelineMemoryEstimator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/ConsumeChildrenOneByOnePipelineMemoryEstimator.java index 0462dde544303..d2f292053c011 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/ConsumeChildrenOneByOnePipelineMemoryEstimator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/ConsumeChildrenOneByOnePipelineMemoryEstimator.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.memory; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; public class ConsumeChildrenOneByOnePipelineMemoryEstimator extends PipelineMemoryEstimator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/FakedMemoryReservationManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/FakedMemoryReservationManager.java index 35ded4d625211..ee6e0b06cf478 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/FakedMemoryReservationManager.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/FakedMemoryReservationManager.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.memory; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; + import org.apache.tsfile.utils.Pair; public class FakedMemoryReservationManager implements MemoryReservationManager { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/NotThreadSafeMemoryReservationManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/NotThreadSafeMemoryReservationManager.java index 4fa97f368adf1..7dbebaa2b502d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/NotThreadSafeMemoryReservationManager.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/NotThreadSafeMemoryReservationManager.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.planner.memory; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanner; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/PipelineMemoryEstimator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/PipelineMemoryEstimator.java index 42c2586f70898..181826877d3a3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/PipelineMemoryEstimator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/PipelineMemoryEstimator.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.memory; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import java.util.LinkedList; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/PipelineMemoryEstimatorFactory.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/PipelineMemoryEstimatorFactory.java index f02a5d109f6c7..5ad9cbca61929 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/PipelineMemoryEstimatorFactory.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/PipelineMemoryEstimatorFactory.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.memory; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; public class PipelineMemoryEstimatorFactory { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/AbstractFragmentParallelPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/AbstractFragmentParallelPlanner.java index 0dcc7018fc60d..47f1575c4f1b3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/AbstractFragmentParallelPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/AbstractFragmentParallelPlanner.java @@ -26,6 +26,8 @@ import org.apache.iotdb.commons.exception.IoTDBRuntimeException; import org.apache.iotdb.commons.partition.QueryExecutor; import org.apache.iotdb.commons.partition.StorageExecutor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.DataNodeEndPoints; @@ -33,8 +35,6 @@ import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.plan.planner.IFragmentParallelPlaner; import org.apache.iotdb.db.queryengine.plan.planner.exceptions.ReplicaSetUnreachableException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.rpc.TSStatusCode; import org.apache.tsfile.external.commons.collections4.CollectionUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/FragmentInstance.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/FragmentInstance.java index ae99aac6fbaf2..2489104dd7daa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/FragmentInstance.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/FragmentInstance.java @@ -23,13 +23,13 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.exception.runtime.SerializationRunTimeException; import org.apache.iotdb.commons.partition.ExecutorType; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.commons.utils.ThriftCommonsSerDeUtils; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.analyze.QueryType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeUtil; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/LogicalQueryPlan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/LogicalQueryPlan.java index 6e69c354f0f77..b355cac722670 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/LogicalQueryPlan.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/LogicalQueryPlan.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; /** * LogicalQueryPlan represents a logical query plan. It stores the root node of corresponding query diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/PlanFragment.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/PlanFragment.java index a178c5c1f6cd8..22d8fa4d1f7a5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/PlanFragment.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/PlanFragment.java @@ -22,14 +22,15 @@ import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.partition.DataPartition; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPartitionRelatedNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.planner.SubPlanTypeExtractor; import org.apache.iotdb.db.queryengine.plan.planner.distribution.NodeDistribution; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.IPartitionRelatedNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.db.queryengine.plan.planner.plan.node.DataNodePlanNodeDeserializer; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.AlignedSeriesAggregationScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.AlignedSeriesScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.VirtualSourceNode; @@ -198,7 +199,7 @@ public void serialize(DataOutputStream stream) throws IOException { // so there is no need to serialize all the SeriesScanNode repeated if (typeProvider.getTemplatedInfo() != null) { typeProvider.serialize(stream); - planNodeTree.serializeUseTemplate(stream, typeProvider); + planNodeTree.serializeUseTemplate(stream); return; } @@ -224,7 +225,8 @@ public static PlanFragment deserialize(ByteBuffer byteBuffer) { public static PlanNode deserializeHelper(ByteBuffer byteBuffer, TypeProvider typeProvider) { PlanNode root; if (typeProvider != null && typeProvider.getTemplatedInfo() != null) { - root = PlanNodeType.deserializeWithTemplate(byteBuffer, typeProvider); + root = + DataNodePlanNodeDeserializer.INSTANCE.deserializeWithTemplate(byteBuffer, typeProvider); if (root instanceof AlignedSeriesScanNode || root instanceof AlignedSeriesAggregationScanNode) { return root; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/TableModelTimePredicate.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/TableModelTimePredicate.java index dcdb79bf79e78..f410ae29ff001 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/TableModelTimePredicate.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/TableModelTimePredicate.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.analyze.PredicateUtils; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.tsfile.read.filter.basic.Filter; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/TimePredicate.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/TimePredicate.java index d424aa82d09a3..8dfc84898117d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/TimePredicate.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/TimePredicate.java @@ -43,7 +43,7 @@ static TimePredicate deserialize(ByteBuffer byteBuffer) { return new TreeModelTimePredicate(Expression.deserialize(byteBuffer)); } else { return new TableModelTimePredicate( - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression.deserialize( + org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression.deserialize( byteBuffer)); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/BaseSourceRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/BaseSourceRewriter.java index 11f8afd64480a..b2424bfca26ab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/BaseSourceRewriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/BaseSourceRewriter.java @@ -19,12 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; + import java.util.Collections; import java.util.List; import static com.google.common.collect.ImmutableList.toImmutableList; -public class BaseSourceRewriter extends PlanVisitor, C> { +public class BaseSourceRewriter implements PlanVisitor, C> { @Override public List visitPlan(PlanNode node, C context) { // TODO: (xingtanzjr) we apply no action for IWritePlanNode currently diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/DataNodePlanNodeDeserializer.java similarity index 66% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/DataNodePlanNodeDeserializer.java index 7f255d0fe5f81..d46853f222a3f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/DataNodePlanNodeDeserializer.java @@ -1,24 +1,21 @@ /* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.apache.iotdb.db.queryengine.plan.planner.plan.node; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.CommonPlanNodeDeserializer; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.load.LoadTsFilePieceNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.CountSchemaMergeNode; @@ -120,30 +117,11 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertRowsNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertTabletNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AlignedAggregationTreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.NonAlignedAggregationTreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableDiskUsageInformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeAlignedDeviceViewScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeNonAlignedDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.ConstructTableDevicesBlackListNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.DeleteTableDeviceNode; @@ -157,213 +135,15 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableNodeLocationAddNode; -import org.apache.tsfile.utils.ReadWriteIOUtils; - import java.io.DataInputStream; -import java.io.DataOutputStream; import java.io.IOException; import java.nio.ByteBuffer; -public enum PlanNodeType { - AGGREGATE((short) 0), - DEVICE_VIEW((short) 1), - FILL((short) 2), - FILTER((short) 3), - FILTER_NULL((short) 4), - GROUP_BY_LEVEL((short) 5), - LIMIT((short) 6), - OFFSET((short) 7), - SORT((short) 8), - FULL_OUTER_TIME_JOIN((short) 9), - FRAGMENT_SINK((short) 10), - SERIES_SCAN((short) 11), - SERIES_AGGREGATE_SCAN((short) 12), - INSERT_TABLET((short) 13), - INSERT_ROW((short) 14), - INSERT_ROWS((short) 15), - INSERT_ROWS_OF_ONE_DEVICE((short) 16), - INSERT_MULTI_TABLET((short) 17), - DEVICES_SCHEMA_SCAN((short) 18), - CREATE_TIME_SERIES((short) 19), - EXCHANGE((short) 20), - ALTER_TIME_SERIES((short) 21), - CREATE_ALIGNED_TIME_SERIES((short) 22), - TIME_SERIES_SCHEMA_SCAN((short) 23), - SERIES_SCHEMA_FETCH_SCAN((short) 24), - SCHEMA_QUERY_MERGE((short) 25), - SCHEMA_QUERY_ORDER_BY_HEAT((short) 26), - DEVICES_COUNT((short) 27), - TIME_SERIES_COUNT((short) 28), - LEVEL_TIME_SERIES_COUNT((short) 29), - COUNT_MERGE((short) 30), - SLIDING_WINDOW_AGGREGATION((short) 31), - PROJECT((short) 32), - ALIGNED_SERIES_SCAN((short) 33), - ALIGNED_SERIES_AGGREGATE_SCAN((short) 34), - DEVICE_MERGE((short) 35), - SCHEMA_FETCH_MERGE((short) 36), - TRANSFORM((short) 37), - CREATE_MULTI_TIME_SERIES((short) 39), - NODE_PATHS_SCAN((short) 40), - NODE_PATHS_CONVERT((short) 41), - NODE_MANAGEMENT_MEMORY_MERGE((short) 42), - DELETE_DATA((short) 44), - DELETE_TIME_SERIES((short) 45), - @Deprecated - DEPRECATED_LAST_QUERY_SCAN((short) 46), - @Deprecated - DEPRECATED_ALIGNED_LAST_QUERY_SCAN((short) 47), - LAST_QUERY((short) 48), - LAST_QUERY_MERGE((short) 49), - LAST_QUERY_COLLECT((short) 50), - NODE_PATHS_COUNT((short) 51), - INTERNAL_CREATE_TIME_SERIES((short) 52), - ACTIVATE_TEMPLATE((short) 53), - PATHS_USING_TEMPLATE_SCAN((short) 54), - LOAD_TSFILE((short) 55), - CONSTRUCT_SCHEMA_BLACK_LIST_NODE((short) 56), - ROLLBACK_SCHEMA_BLACK_LIST_NODE((short) 57), - GROUP_BY_TAG((short) 58), - PRE_DEACTIVATE_TEMPLATE_NODE((short) 59), - ROLLBACK_PRE_DEACTIVATE_TEMPLATE_NODE((short) 60), - DEACTIVATE_TEMPLATE_NODE((short) 61), - INTO((short) 62), - DEVICE_VIEW_INTO((short) 63), - VERTICALLY_CONCAT((short) 64), - SINGLE_DEVICE_VIEW((short) 65), - MERGE_SORT((short) 66), - SHOW_QUERIES((short) 67), - INTERNAL_BATCH_ACTIVATE_TEMPLATE((short) 68), - INTERNAL_CREATE_MULTI_TIMESERIES((short) 69), - IDENTITY_SINK((short) 70), - SHUFFLE_SINK((short) 71), - BATCH_ACTIVATE_TEMPLATE((short) 72), - CREATE_LOGICAL_VIEW((short) 73), - CONSTRUCT_LOGICAL_VIEW_BLACK_LIST((short) 74), - ROLLBACK_LOGICAL_VIEW_BLACK_LIST((short) 75), - DELETE_LOGICAL_VIEW((short) 76), - LOGICAL_VIEW_SCHEMA_SCAN((short) 77), - ALTER_LOGICAL_VIEW((short) 78), - PIPE_ENRICHED_INSERT_DATA((short) 79), - INFERENCE((short) 80), - LAST_QUERY_TRANSFORM((short) 81), - TOP_K((short) 82), - COLUMN_INJECT((short) 83), - - PIPE_ENRICHED_DELETE_DATA((short) 84), - PIPE_ENRICHED_WRITE((short) 85), - PIPE_ENRICHED_NON_WRITE((short) 86), - - INNER_TIME_JOIN((short) 87), - LEFT_OUTER_TIME_JOIN((short) 88), - AGG_MERGE_SORT((short) 89), - - EXPLAIN_ANALYZE((short) 90), - - PIPE_OPERATE_SCHEMA_QUEUE_REFERENCE((short) 91), - - RAW_DATA_AGGREGATION((short) 92), - - DEVICE_REGION_SCAN((short) 93), - TIMESERIES_REGION_SCAN((short) 94), - REGION_MERGE((short) 95), - DEVICE_SCHEMA_FETCH_SCAN((short) 96), - - CONTINUOUS_SAME_SEARCH_INDEX_SEPARATOR((short) 97), - - LAST_QUERY_SCAN((short) 98), - ALTER_ENCODING_COMPRESSOR((short) 99), - // 100 - 106 are occupied - SHOW_DISK_USAGE((short) 107), - TREE_COLLECT((short) 108), - LOAD_TSFILE_OBJECT_PIECE((short) 109), - - CREATE_OR_UPDATE_TABLE_DEVICE((short) 902), - TABLE_DEVICE_QUERY_SCAN((short) 903), - TABLE_DEVICE_FETCH((short) 904), - DELETE_TABLE_DEVICE((short) 905), - TABLE_DEVICE_QUERY_COUNT((short) 906), - TABLE_DEVICE_ATTRIBUTE_UPDATE((short) 907), - TABLE_DEVICE_ATTRIBUTE_COMMIT((short) 908), - TABLE_DEVICE_LOCATION_ADD((short) 909), - CONSTRUCT_TABLE_DEVICES_BLACK_LIST((short) 910), - ROLLBACK_TABLE_DEVICES_BLACK_LIST((short) 911), - DELETE_TABLE_DEVICES_IN_BLACK_LIST((short) 912), - TABLE_ATTRIBUTE_COLUMN_DROP((short) 913), - - DEVICE_TABLE_SCAN_NODE((short) 1000), - TABLE_FILTER_NODE((short) 1001), - TABLE_PROJECT_NODE((short) 1002), - TABLE_OUTPUT_NODE((short) 1003), - TABLE_LIMIT_NODE((short) 1004), - TABLE_OFFSET_NODE((short) 1005), - TABLE_SORT_NODE((short) 1006), - TABLE_MERGESORT_NODE((short) 1007), - TABLE_TOPK_NODE((short) 1008), - TABLE_COLLECT_NODE((short) 1009), - TABLE_STREAM_SORT_NODE((short) 1010), - TABLE_JOIN_NODE((short) 1011), - TABLE_PREVIOUS_FILL_NODE((short) 1012), - TABLE_LINEAR_FILL_NODE((short) 1013), - TABLE_VALUE_FILL_NODE((short) 1014), - TABLE_AGGREGATION_NODE((short) 1015), - TABLE_AGGREGATION_TABLE_SCAN_NODE((short) 1016), - TABLE_GAP_FILL_NODE((short) 1017), - TABLE_EXCHANGE_NODE((short) 1018), - TABLE_EXPLAIN_ANALYZE_NODE((short) 1019), - TABLE_ENFORCE_SINGLE_ROW_NODE((short) 1020), - INFORMATION_SCHEMA_TABLE_SCAN_NODE((short) 1021), - @Deprecated - AGGREGATION_TREE_DEVICE_VIEW_SCAN_NODE((short) 1022), - TREE_ALIGNED_DEVICE_VIEW_SCAN_NODE((short) 1023), - TREE_NONALIGNED_DEVICE_VIEW_SCAN_NODE((short) 1024), - TABLE_SEMI_JOIN_NODE((short) 1025), - MARK_DISTINCT_NODE((short) 1026), - TABLE_ASSIGN_UNIQUE_ID((short) 1027), - TABLE_FUNCTION_NODE((short) 1028), - TABLE_FUNCTION_PROCESSOR_NODE((short) 1029), - TABLE_GROUP_NODE((short) 1030), - TABLE_PATTERN_RECOGNITION_NODE((short) 1031), - TABLE_WINDOW_FUNCTION((short) 1032), - TABLE_INTO_NODE((short) 1033), - TABLE_UNION_NODE((short) 1034), - TABLE_INTERSECT_NODE((short) 1035), - TABLE_EXCEPT_NODE((short) 1036), - TABLE_TOPK_RANKING_NODE((short) 1037), - TABLE_ROW_NUMBER_NODE((short) 1038), - TABLE_VALUES_NODE((short) 1039), - TABLE_DISK_USAGE_INFORMATION_SCHEMA_TABLE_SCAN_NODE((short) 1040), - ALIGNED_AGGREGATION_TREE_DEVICE_VIEW_SCAN_NODE((short) 1041), - NON_ALIGNED_AGGREGATION_TREE_DEVICE_VIEW_SCAN_NODE((short) 1042), - - RELATIONAL_INSERT_TABLET((short) 2000), - RELATIONAL_INSERT_ROW((short) 2001), - RELATIONAL_INSERT_ROWS((short) 2002), - RELATIONAL_DELETE_DATA((short) 2003), - OBJECT_FILE_NODE((short) 2004), - ; - - public static final int BYTES = Short.BYTES; - - private final short nodeType; - - PlanNodeType(short nodeType) { - this.nodeType = nodeType; - } - - public short getNodeType() { - return nodeType; - } +public class DataNodePlanNodeDeserializer extends CommonPlanNodeDeserializer { + public static final DataNodePlanNodeDeserializer INSTANCE = new DataNodePlanNodeDeserializer(); - public void serialize(ByteBuffer buffer) { - ReadWriteIOUtils.write(nodeType, buffer); - } - - public void serialize(DataOutputStream stream) throws IOException { - ReadWriteIOUtils.write(nodeType, stream); - } - - public static PlanNode deserializeFromWAL(DataInputStream stream) throws IOException { + @Override + public PlanNode deserializeFromWAL(DataInputStream stream) throws IOException { short nodeType = stream.readShort(); switch (nodeType) { case 13: @@ -391,7 +171,8 @@ public static PlanNode deserializeFromWAL(DataInputStream stream) throws IOExcep } } - public static PlanNode deserializeFromWAL(ByteBuffer buffer) { + @Override + public PlanNode deserializeFromWAL(ByteBuffer buffer) { short nodeType = buffer.getShort(); switch (nodeType) { case 13: @@ -419,12 +200,14 @@ public static PlanNode deserializeFromWAL(ByteBuffer buffer) { } } - public static PlanNode deserialize(ByteBuffer buffer) { + @Override + public PlanNode deserialize(ByteBuffer buffer) { short nodeType = buffer.getShort(); return deserialize(buffer, nodeType); } - public static PlanNode deserialize(ByteBuffer buffer, short nodeType) { + @Override + public PlanNode deserialize(ByteBuffer buffer, short nodeType) { switch (nodeType) { case 0: return AggregationNode.deserialize(buffer); @@ -651,60 +434,14 @@ public static PlanNode deserialize(ByteBuffer buffer, short nodeType) { case 1000: return org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode .deserialize(buffer); - case 1001: - return org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode.deserialize( - buffer); - case 1002: - return org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode.deserialize( - buffer); - case 1003: - return org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode.deserialize( - buffer); - case 1004: - return org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode.deserialize( - buffer); - case 1005: - return org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode.deserialize( - buffer); - case 1006: - return org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode.deserialize( - buffer); - case 1007: - return org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode - .deserialize(buffer); - case 1008: - return org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode.deserialize( - buffer); - case 1009: - return org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode.deserialize( - buffer); - case 1010: - return org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode - .deserialize(buffer); - case 1011: - return org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.deserialize( - buffer); - case 1012: - return PreviousFillNode.deserialize(buffer); - case 1013: - return LinearFillNode.deserialize(buffer); - case 1014: - return ValueFillNode.deserialize(buffer); - case 1015: - return org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode - .deserialize(buffer); case 1016: return org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode .deserialize(buffer); - case 1017: - return GapFillNode.deserialize(buffer); case 1018: return org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode .deserialize(buffer); case 1019: throw new UnsupportedOperationException("ExplainAnalyzeNode should not be deserialized"); - case 1020: - return EnforceSingleRowNode.deserialize(buffer); case 1021: return InformationSchemaTableScanNode.deserialize(buffer); case 1022: @@ -714,37 +451,9 @@ public static PlanNode deserialize(ByteBuffer buffer, short nodeType) { return TreeAlignedDeviceViewScanNode.deserialize(buffer); case 1024: return TreeNonAlignedDeviceViewScanNode.deserialize(buffer); - case 1025: - return SemiJoinNode.deserialize(buffer); - case 1026: - return MarkDistinctNode.deserialize(buffer); - case 1027: - return AssignUniqueId.deserialize(buffer); - case 1028: - return TableFunctionNode.deserialize(buffer); - case 1029: - return TableFunctionProcessorNode.deserialize(buffer); - case 1030: - return GroupNode.deserialize(buffer); - case 1031: - return PatternRecognitionNode.deserialize(buffer); - case 1032: - return WindowNode.deserialize(buffer); case 1033: return org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode.deserialize( buffer); - case 1034: - return UnionNode.deserialize(buffer); - case 1035: - return IntersectNode.deserialize(buffer); - case 1036: - return ExceptNode.deserialize(buffer); - case 1037: - return TopKRankingNode.deserialize(buffer); - case 1038: - return RowNumberNode.deserialize(buffer); - case 1039: - return ValuesNode.deserialize(buffer); case 1040: return TableDiskUsageInformationSchemaTableScanNode.deserialize(buffer); case 1041: @@ -762,11 +471,11 @@ public static PlanNode deserialize(ByteBuffer buffer, short nodeType) { case 2004: return ObjectNode.deserialize(buffer); default: - throw new IllegalArgumentException("Invalid node type: " + nodeType); + return super.deserialize(buffer, nodeType); } } - public static PlanNode deserializeWithTemplate(ByteBuffer buffer, TypeProvider typeProvider) { + public PlanNode deserializeWithTemplate(ByteBuffer buffer, TypeProvider typeProvider) { short nodeType = buffer.getShort(); switch (nodeType) { case 1: diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/DataNodePlanNodeDeserializerProvider.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/DataNodePlanNodeDeserializerProvider.java new file mode 100644 index 0000000000000..cb10664236ff2 --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/DataNodePlanNodeDeserializerProvider.java @@ -0,0 +1,25 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.db.queryengine.plan.planner.plan.node; + +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanNodeDeserializer; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanNodeDeserializerProvider; + +public class DataNodePlanNodeDeserializerProvider implements IPlanNodeDeserializerProvider { + @Override + public IPlanNodeDeserializer getDeserializer() { + return DataNodePlanNodeDeserializer.INSTANCE; + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/ExplainAnalyzeNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/ExplainAnalyzeNode.java index 0d4efe1677b7d..4460322d6a1a7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/ExplainAnalyzeNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/ExplainAnalyzeNode.java @@ -19,8 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import java.io.DataOutputStream; import java.io.IOException; @@ -48,8 +51,8 @@ public PlanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitExplainAnalyze(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitExplainAnalyze(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java index 180b4b9f1be11..8403aeeb9ef5c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java @@ -23,6 +23,31 @@ import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GapFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LinearFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MarkDistinctNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PreviousFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowNumberNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValueFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValuesNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; import org.apache.iotdb.db.queryengine.plan.analyze.TemplatedInfo; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationMergeSortNode; @@ -66,35 +91,14 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.CrossSeriesAggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.DeviceViewIntoPathDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.IntoPathDescriptor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableDiskUsageInformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; import com.google.common.base.Joiner; import org.apache.tsfile.external.commons.lang3.Validate; @@ -109,7 +113,7 @@ import static com.google.common.base.Preconditions.checkArgument; -public class PlanGraphPrinter extends PlanVisitor, PlanGraphPrinter.GraphContext> { +public class PlanGraphPrinter implements PlanVisitor, PlanGraphPrinter.GraphContext> { private static final String INDENT = " "; private static final String HORIZONTAL = "─"; @@ -128,9 +132,6 @@ public class PlanGraphPrinter extends PlanVisitor, PlanGraphPrinter private static final String REGION_NOT_ASSIGNED = "Not Assigned"; public static final String DEVICE_NUMBER = "DeviceNumber"; public static final String CACHED_DEVICE_NUMBER = "CachedDeviceNumber"; - public static final String CURRENT_USED_MEMORY = "CurrentUsedMemory"; - public static final String MAX_USED_MEMORY = "MaxUsedMemory"; - public static final String MAX_RESERVED_MEMORY = "MaxReservedMemory"; public static final String REGIONS_OF_CURRENT_SUB_TASK = "RegionsOfCurrentSubTask"; public static final String PREPARE_CACHE_READER_COST = "PrepareCacheReaderCost"; public static final String LOAD_OBJECT_FILE_COST = "LoadObjectFileCost"; @@ -714,13 +715,14 @@ public List visitTableScan(TableScanNode node, GraphContext context) { @Override public List visitAggregation( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode node, + org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode node, GraphContext context) { List boxValue = new ArrayList<>(); boxValue.add(String.format("Aggregation-%s", node.getPlanNodeId().getId())); boxValue.add(String.format("OutputSymbols: %s", node.getOutputSymbols())); int i = 0; - for (org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Aggregation + for (org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode + .Aggregation aggregation : node.getAggregations().values()) { StringBuilder aggregator = new StringBuilder( @@ -753,7 +755,8 @@ public List visitAggregationTableScan( boxValue.add(String.format("QualifiedTableName: %s", node.getQualifiedObjectName().toString())); boxValue.add(String.format("OutputSymbols: %s", node.getOutputSymbols())); int i = 0; - for (org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Aggregation + for (org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode + .Aggregation aggregation : node.getAggregations().values()) { StringBuilder aggregator = new StringBuilder( @@ -820,7 +823,7 @@ public List visitMarkDistinct(MarkDistinctNode node, GraphContext contex @Override public List visitFilter( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode node, + org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode node, GraphContext context) { List boxValue = new ArrayList<>(); boxValue.add(String.format("Filter-%s", node.getPlanNodeId().getId())); @@ -830,7 +833,7 @@ public List visitFilter( @Override public List visitProject( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode node, + org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode node, GraphContext context) { List boxValue = new ArrayList<>(); boxValue.add(String.format("Project-%s", node.getPlanNodeId().getId())); @@ -850,9 +853,7 @@ public List visitInto( } @Override - public List visitOutput( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode node, - GraphContext context) { + public List visitOutput(OutputNode node, GraphContext context) { List boxValue = new ArrayList<>(); boxValue.add(String.format("OutputNode-%s", node.getPlanNodeId().getId())); boxValue.add(String.format("OutputColumns-%s", node.getOutputColumnNames())); @@ -930,7 +931,7 @@ public List visitTableExchange(ExchangeNode node, GraphContext context) @Override public List visitLimit( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode node, + org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode node, GraphContext context) { List boxValue = new ArrayList<>(); boxValue.add(String.format("Limit-%s", node.getPlanNodeId().getId())); @@ -947,7 +948,7 @@ public List visitEnforceSingleRow(EnforceSingleRowNode node, GraphContex @Override public List visitOffset( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode node, + org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode node, GraphContext context) { List boxValue = new ArrayList<>(); boxValue.add(String.format("Offset-%s", node.getPlanNodeId().getId())); @@ -957,7 +958,7 @@ public List visitOffset( @Override public List visitSort( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode node, + org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode node, GraphContext context) { List boxValue = new ArrayList<>(); boxValue.add(String.format("Sort-%s", node.getPlanNodeId().getId())); @@ -966,9 +967,7 @@ public List visitSort( } @Override - public List visitStreamSort( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode node, - GraphContext context) { + public List visitStreamSort(StreamSortNode node, GraphContext context) { List boxValue = new ArrayList<>(); boxValue.add(String.format("StreamSort-%s", node.getPlanNodeId().getId())); boxValue.add(String.format("OrderingScheme: %s", node.getOrderingScheme())); @@ -998,7 +997,7 @@ public List visitGroup(GroupNode node, GraphContext context) { @Override public List visitMergeSort( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode node, + org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode node, GraphContext context) { List boxValue = new ArrayList<>(); boxValue.add(String.format("MergeSort-%s", node.getPlanNodeId().getId())); @@ -1009,7 +1008,7 @@ public List visitMergeSort( @Override public List visitCollect( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode node, + org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CollectNode node, GraphContext context) { List boxValue = new ArrayList<>(); boxValue.add(String.format("Collect-%s", node.getPlanNodeId().getId())); @@ -1019,7 +1018,7 @@ public List visitCollect( @Override public List visitTopK( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode node, + org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode node, GraphContext context) { List boxValue = new ArrayList<>(); boxValue.add(String.format("TopK-%s", node.getPlanNodeId().getId())); @@ -1039,9 +1038,7 @@ public List visitCorrelatedJoin(CorrelatedJoinNode node, GraphContext co } @Override - public List visitJoin( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode node, - GraphContext context) { + public List visitJoin(JoinNode node, GraphContext context) { List boxValue = new ArrayList<>(); boxValue.add(String.format("Join-%s", node.getPlanNodeId().getId())); if (node.getAsofCriteria().isPresent()) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeUtil.java index e90093c4398dd..e622b9fab6a80 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeUtil.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeUtil.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import java.util.List; import java.util.Map; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanVisitor.java index 1bc3c9611098d..93ded06e49a19 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanVisitor.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.CountSchemaMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.DeviceSchemaFetchScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.DevicesCountNode; @@ -79,17 +80,14 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.IntoNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.LimitNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.OffsetNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ProjectNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.RawDataAggregationNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleDeviceViewNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SlidingWindowAggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SortNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TopKNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TransformNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.InnerTimeJoinNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.LeftOuterTimeJoinNode; @@ -110,7 +108,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanSourceNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.ShowDiskUsageNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.ShowQueriesNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SourceNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.TimeseriesRegionScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertMultiTabletsNode; @@ -123,33 +120,16 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertRowsNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertTabletNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AlignedAggregationTreeDeviceViewScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.NonAlignedAggregationTreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeAlignedDeviceViewScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeNonAlignedDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.ConstructTableDevicesBlackListNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.DeleteTableDeviceNode; @@ -164,13 +144,7 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableNodeLocationAddNode; @SuppressWarnings("java:S6539") // suppress "Monster class" warning -public abstract class PlanVisitor { - - public R process(PlanNode node, C context) { - return node.accept(this, context); - } - - public abstract R visitPlan(PlanNode node, C context); +public interface PlanVisitor extends ICoreQueryPlanVisitor { ///////////////////////////////////////////////////////////////////////////////////////////////// // Data Query Node @@ -178,228 +152,212 @@ public R process(PlanNode node, C context) { // source -------------------------------------------------------------------------------------- - public R visitSourceNode(SourceNode node, C context) { - return visitPlan(node, context); + default R visitCteScan(CteScanNode node, C context) { + return visitSourceNode(node, context); } - public R visitSeriesScanSource(SeriesScanSourceNode node, C context) { + default R visitSeriesScanSource(SeriesScanSourceNode node, C context) { return visitSourceNode(node, context); } - public R visitSeriesScan(SeriesScanNode node, C context) { + default R visitSeriesScan(SeriesScanNode node, C context) { return visitSeriesScanSource(node, context); } - public R visitAlignedSeriesScan(AlignedSeriesScanNode node, C context) { + default R visitAlignedSeriesScan(AlignedSeriesScanNode node, C context) { return visitSeriesScanSource(node, context); } - public R visitSeriesAggregationSourceNode(SeriesAggregationSourceNode node, C context) { + default R visitSeriesAggregationSourceNode(SeriesAggregationSourceNode node, C context) { return visitSourceNode(node, context); } - public R visitSeriesAggregationScan(SeriesAggregationScanNode node, C context) { + default R visitSeriesAggregationScan(SeriesAggregationScanNode node, C context) { return visitSeriesAggregationSourceNode(node, context); } - public R visitAlignedSeriesAggregationScan(AlignedSeriesAggregationScanNode node, C context) { + default R visitAlignedSeriesAggregationScan(AlignedSeriesAggregationScanNode node, C context) { return visitSeriesAggregationSourceNode(node, context); } - public R visitLastQueryScan(LastQueryScanNode node, C context) { + default R visitLastQueryScan(LastQueryScanNode node, C context) { return visitSourceNode(node, context); } - public R visitRegionScan(RegionScanNode node, C context) { + default R visitRegionScan(RegionScanNode node, C context) { return visitSourceNode(node, context); } - public R visitDeviceRegionScan(DeviceRegionScanNode node, C context) { + default R visitDeviceRegionScan(DeviceRegionScanNode node, C context) { return visitRegionScan(node, context); } - public R visitTimeSeriesRegionScan(TimeseriesRegionScanNode node, C context) { + default R visitTimeSeriesRegionScan(TimeseriesRegionScanNode node, C context) { return visitRegionScan(node, context); } - public R visitCteScan(CteScanNode node, C context) { - return visitSourceNode(node, context); - } - // single child -------------------------------------------------------------------------------- - public R visitSingleChildProcess(SingleChildProcessNode node, C context) { - return visitPlan(node, context); - } - - public R visitFill(FillNode node, C context) { + default R visitFill(FillNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitFilter(FilterNode node, C context) { + default R visitFilter(FilterNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitSlidingWindowAggregation(SlidingWindowAggregationNode node, C context) { + default R visitSlidingWindowAggregation(SlidingWindowAggregationNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitLimit(LimitNode node, C context) { + default R visitLimit(LimitNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitOffset(OffsetNode node, C context) { + default R visitOffset(OffsetNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitSort(SortNode node, C context) { + default R visitSort(SortNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitProject(ProjectNode node, C context) { + default R visitProject(ProjectNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitExchange(ExchangeNode node, C context) { + default R visitExchange(ExchangeNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitTransform(TransformNode node, C context) { + default R visitTransform(TransformNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitInto(IntoNode node, C context) { + default R visitInto(IntoNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitInto( + default R visitInto( org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitDeviceViewInto(DeviceViewIntoNode node, C context) { + default R visitDeviceViewInto(DeviceViewIntoNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitColumnInject(ColumnInjectNode node, C context) { + default R visitColumnInject(ColumnInjectNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitSingleDeviceView(SingleDeviceViewNode node, C context) { + default R visitSingleDeviceView(SingleDeviceViewNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitInference(InferenceNode node, C context) { + default R visitInference(InferenceNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitExplainAnalyze(ExplainAnalyzeNode node, C context) { + default R visitExplainAnalyze(ExplainAnalyzeNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitRawDataAggregation(RawDataAggregationNode node, C context) { + default R visitRawDataAggregation(RawDataAggregationNode node, C context) { return visitSingleChildProcess(node, context); } // two child ----------------------------------------------------------------------------------- - public R visitTwoChildProcess(TwoChildProcessNode node, C context) { - return visitPlan(node, context); - } - - public R visitLeftOuterTimeJoin(LeftOuterTimeJoinNode node, C context) { + default R visitLeftOuterTimeJoin(LeftOuterTimeJoinNode node, C context) { return visitTwoChildProcess(node, context); } // multi child -------------------------------------------------------------------------------- - public R visitMultiChildProcess(MultiChildProcessNode node, C context) { - return visitPlan(node, context); - } - - public R visitDeviceView(DeviceViewNode node, C context) { + default R visitDeviceView(DeviceViewNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitAggregationMergeSort(AggregationMergeSortNode node, C context) { + default R visitAggregationMergeSort(AggregationMergeSortNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitDeviceMerge(DeviceMergeNode node, C context) { + default R visitDeviceMerge(DeviceMergeNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitGroupByLevel(GroupByLevelNode node, C context) { + default R visitGroupByLevel(GroupByLevelNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitGroupByTag(GroupByTagNode node, C context) { + default R visitGroupByTag(GroupByTagNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitAggregation(AggregationNode node, C context) { + default R visitAggregation(AggregationNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitFullOuterTimeJoin(FullOuterTimeJoinNode node, C context) { + default R visitFullOuterTimeJoin(FullOuterTimeJoinNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitInnerTimeJoin(InnerTimeJoinNode node, C context) { + default R visitInnerTimeJoin(InnerTimeJoinNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitLastQuery(LastQueryNode node, C context) { + default R visitLastQuery(LastQueryNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitLastQueryMerge(LastQueryMergeNode node, C context) { + default R visitLastQueryMerge(LastQueryMergeNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitLastQueryCollect(LastQueryCollectNode node, C context) { + default R visitLastQueryCollect(LastQueryCollectNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitLastQueryTransform(LastQueryTransformNode node, C context) { + default R visitLastQueryTransform(LastQueryTransformNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitMergeSort(MergeSortNode node, C context) { + default R visitMergeSort(MergeSortNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitCollect(CollectNode node, C context) { + default R visitCollect(CollectNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitTopK(TopKNode node, C context) { + default R visitTopK(TopKNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitHorizontallyConcat(HorizontallyConcatNode node, C context) { + default R visitHorizontallyConcat(HorizontallyConcatNode node, C context) { return visitMultiChildProcess(node, context); } - public R visitRegionMerge(ActiveRegionScanMergeNode node, C context) { + default R visitRegionMerge(ActiveRegionScanMergeNode node, C context) { return visitMultiChildProcess(node, context); } // others ----------------------------------------------------------------------------------- - public R visitShowQueries(ShowQueriesNode node, C context) { + default R visitShowQueries(ShowQueriesNode node, C context) { return visitPlan(node, context); } - public R visitShowDiskUsage(ShowDiskUsageNode node, C context) { + default R visitShowDiskUsage(ShowDiskUsageNode node, C context) { return visitPlan(node, context); } - public R visitIdentitySink(IdentitySinkNode node, C context) { + default R visitIdentitySink(IdentitySinkNode node, C context) { return visitPlan(node, context); } - public R visitShuffleSink(ShuffleSinkNode node, C context) { + default R visitShuffleSink(ShuffleSinkNode node, C context) { return visitPlan(node, context); } @@ -407,208 +365,209 @@ public R visitShuffleSink(ShuffleSinkNode node, C context) { // Schema Write & Query Node ///////////////////////////////////////////////////////////////////////////////////////////////// - public R visitSchemaQueryMerge(SchemaQueryMergeNode node, C context) { + default R visitSchemaQueryMerge(SchemaQueryMergeNode node, C context) { return visitPlan(node, context); } - public R visitSchemaQueryScan(SchemaQueryScanNode node, C context) { + default R visitSchemaQueryScan(SchemaQueryScanNode node, C context) { return visitPlan(node, context); } - public R visitSchemaQueryOrderByHeat(SchemaQueryOrderByHeatNode node, C context) { + default R visitSchemaQueryOrderByHeat(SchemaQueryOrderByHeatNode node, C context) { return visitPlan(node, context); } - public R visitTimeSeriesSchemaScan(TimeSeriesSchemaScanNode node, C context) { + default R visitTimeSeriesSchemaScan(TimeSeriesSchemaScanNode node, C context) { return visitPlan(node, context); } - public R visitDevicesSchemaScan(DevicesSchemaScanNode node, C context) { + default R visitDevicesSchemaScan(DevicesSchemaScanNode node, C context) { return visitPlan(node, context); } - public R visitDevicesCount(DevicesCountNode node, C context) { + default R visitDevicesCount(DevicesCountNode node, C context) { return visitPlan(node, context); } - public R visitTimeSeriesCount(TimeSeriesCountNode node, C context) { + default R visitTimeSeriesCount(TimeSeriesCountNode node, C context) { return visitPlan(node, context); } - public R visitLevelTimeSeriesCount(LevelTimeSeriesCountNode node, C context) { + default R visitLevelTimeSeriesCount(LevelTimeSeriesCountNode node, C context) { return visitPlan(node, context); } - public R visitCountMerge(CountSchemaMergeNode node, C context) { + default R visitCountMerge(CountSchemaMergeNode node, C context) { return visitPlan(node, context); } - public R visitCreateTimeSeries(CreateTimeSeriesNode node, C context) { + default R visitCreateTimeSeries(CreateTimeSeriesNode node, C context) { return visitPlan(node, context); } - public R visitSchemaFetchMerge(SchemaFetchMergeNode node, C context) { + default R visitSchemaFetchMerge(SchemaFetchMergeNode node, C context) { return visitPlan(node, context); } - public R visitSeriesSchemaFetchScan(SeriesSchemaFetchScanNode node, C context) { + default R visitSeriesSchemaFetchScan(SeriesSchemaFetchScanNode node, C context) { return visitPlan(node, context); } - public R visitDeviceSchemaFetchScan(DeviceSchemaFetchScanNode node, C context) { + default R visitDeviceSchemaFetchScan(DeviceSchemaFetchScanNode node, C context) { return visitPlan(node, context); } - public R visitCreateAlignedTimeSeries(CreateAlignedTimeSeriesNode node, C context) { + default R visitCreateAlignedTimeSeries(CreateAlignedTimeSeriesNode node, C context) { return visitPlan(node, context); } - public R visitCreateMultiTimeSeries(CreateMultiTimeSeriesNode node, C context) { + default R visitCreateMultiTimeSeries(CreateMultiTimeSeriesNode node, C context) { return visitPlan(node, context); } - public R visitAlterTimeSeries(AlterTimeSeriesNode node, C context) { + default R visitAlterTimeSeries(AlterTimeSeriesNode node, C context) { return visitPlan(node, context); } - public R visitInternalCreateTimeSeries(InternalCreateTimeSeriesNode node, C context) { + default R visitInternalCreateTimeSeries(InternalCreateTimeSeriesNode node, C context) { return visitPlan(node, context); } - public R visitActivateTemplate(ActivateTemplateNode node, C context) { + default R visitActivateTemplate(ActivateTemplateNode node, C context) { return visitPlan(node, context); } - public R visitPreDeactivateTemplate(PreDeactivateTemplateNode node, C context) { + default R visitPreDeactivateTemplate(PreDeactivateTemplateNode node, C context) { return visitPlan(node, context); } - public R visitRollbackPreDeactivateTemplate(RollbackPreDeactivateTemplateNode node, C context) { + default R visitRollbackPreDeactivateTemplate(RollbackPreDeactivateTemplateNode node, C context) { return visitPlan(node, context); } - public R visitDeactivateTemplate(DeactivateTemplateNode node, C context) { + default R visitDeactivateTemplate(DeactivateTemplateNode node, C context) { return visitPlan(node, context); } - public R visitInternalBatchActivateTemplate(InternalBatchActivateTemplateNode node, C context) { + default R visitInternalBatchActivateTemplate(InternalBatchActivateTemplateNode node, C context) { return visitPlan(node, context); } - public R visitInternalCreateMultiTimeSeries(InternalCreateMultiTimeSeriesNode node, C context) { + default R visitInternalCreateMultiTimeSeries(InternalCreateMultiTimeSeriesNode node, C context) { return visitPlan(node, context); } - public R visitNodePathsSchemaScan(NodePathsSchemaScanNode node, C context) { + default R visitNodePathsSchemaScan(NodePathsSchemaScanNode node, C context) { return visitPlan(node, context); } - public R visitNodeManagementMemoryMerge(NodeManagementMemoryMergeNode node, C context) { + default R visitNodeManagementMemoryMerge(NodeManagementMemoryMergeNode node, C context) { return visitPlan(node, context); } - public R visitNodePathConvert(NodePathsConvertNode node, C context) { + default R visitNodePathConvert(NodePathsConvertNode node, C context) { return visitPlan(node, context); } - public R visitNodePathsCount(NodePathsCountNode node, C context) { + default R visitNodePathsCount(NodePathsCountNode node, C context) { return visitPlan(node, context); } - public R visitDeleteTimeseries(DeleteTimeSeriesNode node, C context) { + default R visitDeleteTimeseries(DeleteTimeSeriesNode node, C context) { return visitPlan(node, context); } - public R visitAlterEncodingCompressor(AlterEncodingCompressorNode node, C context) { + default R visitAlterEncodingCompressor(AlterEncodingCompressorNode node, C context) { return visitPlan(node, context); } - public R visitAlterTimeSeriesDataType(AlterTimeSeriesNode node, C context) { + default R visitAlterTimeSeriesDataType(AlterTimeSeriesNode node, C context) { return visitPlan(node, context); } - public R visitConstructSchemaBlackList(ConstructSchemaBlackListNode node, C context) { + default R visitConstructSchemaBlackList(ConstructSchemaBlackListNode node, C context) { return visitPlan(node, context); } - public R visitRollbackSchemaBlackList(RollbackSchemaBlackListNode node, C context) { + default R visitRollbackSchemaBlackList(RollbackSchemaBlackListNode node, C context) { return visitPlan(node, context); } - public R visitBatchActivateTemplate(BatchActivateTemplateNode node, C context) { + default R visitBatchActivateTemplate(BatchActivateTemplateNode node, C context) { return visitPlan(node, context); } - public R visitCreateLogicalView(CreateLogicalViewNode node, C context) { + default R visitCreateLogicalView(CreateLogicalViewNode node, C context) { return visitPlan(node, context); } - public R visitConstructLogicalViewBlackList(ConstructLogicalViewBlackListNode node, C context) { + default R visitConstructLogicalViewBlackList(ConstructLogicalViewBlackListNode node, C context) { return visitPlan(node, context); } - public R visitRollbackLogicalViewBlackList(RollbackLogicalViewBlackListNode node, C context) { + default R visitRollbackLogicalViewBlackList(RollbackLogicalViewBlackListNode node, C context) { return visitPlan(node, context); } - public R visitDeleteLogicalView(DeleteLogicalViewNode node, C context) { + default R visitDeleteLogicalView(DeleteLogicalViewNode node, C context) { return visitPlan(node, context); } - public R visitAlterLogicalView(AlterLogicalViewNode node, C context) { + default R visitAlterLogicalView(AlterLogicalViewNode node, C context) { return visitPlan(node, context); } - public R visitCreateOrUpdateTableDevice( + default R visitCreateOrUpdateTableDevice( final CreateOrUpdateTableDeviceNode node, final C context) { return visitPlan(node, context); } - public R visitTableDeviceAttributeUpdate( + default R visitTableDeviceAttributeUpdate( final TableDeviceAttributeUpdateNode node, final C context) { return visitPlan(node, context); } - public R visitTableDeviceFetch(final TableDeviceFetchNode node, final C context) { + default R visitTableDeviceFetch(final TableDeviceFetchNode node, final C context) { return visitPlan(node, context); } - public R visitTableDeviceQueryScan(final TableDeviceQueryScanNode node, final C context) { + default R visitTableDeviceQueryScan(final TableDeviceQueryScanNode node, final C context) { return visitPlan(node, context); } - public R visitTableDeviceQueryCount(final TableDeviceQueryCountNode node, final C context) { + default R visitTableDeviceQueryCount(final TableDeviceQueryCountNode node, final C context) { return visitPlan(node, context); } - public R visitTableDeviceAttributeCommit( + default R visitTableDeviceAttributeCommit( final TableDeviceAttributeCommitUpdateNode node, final C context) { return visitPlan(node, context); } - public R visitTableNodeLocationAdd(final TableNodeLocationAddNode node, final C context) { + default R visitTableNodeLocationAdd(final TableNodeLocationAddNode node, final C context) { return visitPlan(node, context); } - public R visitDeleteTableDevice(final DeleteTableDeviceNode node, final C context) { + default R visitDeleteTableDevice(final DeleteTableDeviceNode node, final C context) { return visitPlan(node, context); } - public R visitTableAttributeColumnDrop(final TableAttributeColumnDropNode node, final C context) { + default R visitTableAttributeColumnDrop( + final TableAttributeColumnDropNode node, final C context) { return visitPlan(node, context); } - public R visitConstructTableDevicesBlackList( + default R visitConstructTableDevicesBlackList( final ConstructTableDevicesBlackListNode node, final C context) { return visitPlan(node, context); } - public R visitRollbackTableDevicesBlackList( + default R visitRollbackTableDevicesBlackList( final RollbackTableDevicesBlackListNode node, final C context) { return visitPlan(node, context); } - public R visitDeleteTableDevicesInBlackList( + default R visitDeleteTableDevicesInBlackList( final DeleteTableDevicesInBlackListNode node, final C context) { return visitPlan(node, context); } @@ -617,47 +576,47 @@ public R visitDeleteTableDevicesInBlackList( // Data Write Node ///////////////////////////////////////////////////////////////////////////////////////////////// - public R visitInsertRow(InsertRowNode node, C context) { + default R visitInsertRow(InsertRowNode node, C context) { return visitPlan(node, context); } - public R visitRelationalInsertRow(RelationalInsertRowNode node, C context) { + default R visitRelationalInsertRow(RelationalInsertRowNode node, C context) { return visitInsertRow(node, context); } - public R visitRelationalInsertRows(RelationalInsertRowsNode node, C context) { + default R visitRelationalInsertRows(RelationalInsertRowsNode node, C context) { return visitInsertRows(node, context); } - public R visitInsertTablet(InsertTabletNode node, C context) { + default R visitInsertTablet(InsertTabletNode node, C context) { return visitPlan(node, context); } - public R visitRelationalInsertTablet(RelationalInsertTabletNode node, C context) { + default R visitRelationalInsertTablet(RelationalInsertTabletNode node, C context) { return visitInsertTablet(node, context); } - public R visitInsertRows(InsertRowsNode node, C context) { + default R visitInsertRows(InsertRowsNode node, C context) { return visitPlan(node, context); } - public R visitInsertMultiTablets(InsertMultiTabletsNode node, C context) { + default R visitInsertMultiTablets(InsertMultiTabletsNode node, C context) { return visitPlan(node, context); } - public R visitInsertRowsOfOneDevice(InsertRowsOfOneDeviceNode node, C context) { + default R visitInsertRowsOfOneDevice(InsertRowsOfOneDeviceNode node, C context) { return visitPlan(node, context); } - public R visitDeleteData(DeleteDataNode node, C context) { + default R visitDeleteData(DeleteDataNode node, C context) { return visitPlan(node, context); } - public R visitDeleteData(RelationalDeleteDataNode node, C context) { + default R visitDeleteData(RelationalDeleteDataNode node, C context) { return visitPlan(node, context); } - public R visitWriteObjectFile(ObjectNode node, C context) { + default R visitWriteObjectFile(ObjectNode node, C context) { return visitPlan(node, context); } @@ -665,246 +624,85 @@ public R visitWriteObjectFile(ObjectNode node, C context) { // Pipe Related Node ///////////////////////////////////////////////////////////////////////////////////////////////// - public R visitPipeEnrichedInsertNode(PipeEnrichedInsertNode node, C context) { + default R visitPipeEnrichedInsertNode(PipeEnrichedInsertNode node, C context) { return visitPlan(node, context); } - public R visitPipeEnrichedDeleteDataNode(PipeEnrichedDeleteDataNode node, C context) { + default R visitPipeEnrichedDeleteDataNode(PipeEnrichedDeleteDataNode node, C context) { return visitPlan(node, context); } - public R visitPipeEnrichedWritePlanNode(PipeEnrichedWritePlanNode node, C context) { + default R visitPipeEnrichedWritePlanNode(PipeEnrichedWritePlanNode node, C context) { return visitPlan(node, context); } - public R visitPipeEnrichedNonWritePlanNode(PipeEnrichedNonWritePlanNode node, C context) { + default R visitPipeEnrichedNonWritePlanNode(PipeEnrichedNonWritePlanNode node, C context) { return visitPlan(node, context); } - public R visitPipeOperateSchemaQueueNode(PipeOperateSchemaQueueNode node, C context) { + default R visitPipeOperateSchemaQueueNode(PipeOperateSchemaQueueNode node, C context) { return visitPlan(node, context); } // =============================== Used for Table Model ==================================== - public R visitFilter( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitApply( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode node, C context) { - return visitTwoChildProcess(node, context); - } - public R visitAssignUniqueId( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitEnforceSingleRow( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode node, - C context) { - return visitSingleChildProcess(node, context); - } - - public R visitCorrelatedJoin( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode node, - C context) { - return visitTwoChildProcess(node, context); - } - - public R visitTableScan(TableScanNode node, C context) { + default R visitTableScan(TableScanNode node, C context) { return visitPlan(node, context); } - public R visitDeviceTableScan(DeviceTableScanNode node, C context) { + default R visitDeviceTableScan(DeviceTableScanNode node, C context) { return visitTableScan(node, context); } - public R visitInformationSchemaTableScan(InformationSchemaTableScanNode node, C context) { + default R visitInformationSchemaTableScan(InformationSchemaTableScanNode node, C context) { return visitTableScan(node, context); } - public R visitProject( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitLimit( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitOffset( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitMergeSort( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode node, C context) { - return visitMultiChildProcess(node, context); - } - - public R visitExplainAnalyze( + default R visitExplainAnalyze( org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitCopyTo( + default R visitCopyTo( org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitOutput( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitCollect( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode node, C context) { - return visitMultiChildProcess(node, context); - } - - public R visitGapFill(GapFillNode node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitFill( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.FillNode node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitPreviousFill(PreviousFillNode node, C context) { - return visitFill(node, context); - } - - public R visitLinearFill(LinearFillNode node, C context) { - return visitFill(node, context); - } - - public R visitValueFill(ValueFillNode node, C context) { - return visitFill(node, context); - } - - public R visitSort( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitStreamSort( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitGroup(GroupNode node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitTopK( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode node, C context) { - return visitMultiChildProcess(node, context); - } - - public R visitTopKRanking( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode node, - C context) { - return visitSingleChildProcess(node, context); - } - - public R visitRowNumber(RowNumberNode node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitValuesNode(ValuesNode node, C context) { - return visitPlan(node, context); - } - - public R visitJoin( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode node, C context) { - return visitTwoChildProcess(node, context); - } - - public R visitSemiJoin(SemiJoinNode node, C context) { - return visitTwoChildProcess(node, context); - } - - public R visitGroupReference(GroupReference node, C context) { - return visitPlan(node, context); - } - - public R visitAggregation( - org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode node, - C context) { - return visitSingleChildProcess(node, context); - } - - public R visitTableExchange( + default R visitTableExchange( org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode node, C context) { return visitSingleChildProcess(node, context); } - public R visitAggregationTableScan( + default R visitAggregationTableScan( org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode node, C context) { return visitDeviceTableScan(node, context); } - public R visitTreeDeviceViewScan(TreeDeviceViewScanNode node, C context) { + default R visitTreeDeviceViewScan(TreeDeviceViewScanNode node, C context) { return visitDeviceTableScan(node, context); } - public R visitAggregationTreeDeviceViewScan(AggregationTreeDeviceViewScanNode node, C context) { + default R visitAggregationTreeDeviceViewScan(AggregationTreeDeviceViewScanNode node, C context) { return visitAggregationTableScan(node, context); } - public R visitAlignedAggregationTreeDeviceViewScan( + default R visitAlignedAggregationTreeDeviceViewScan( AlignedAggregationTreeDeviceViewScanNode node, C context) { return visitAggregationTreeDeviceViewScan(node, context); } - public R visitNonAlignedAggregationTreeDeviceViewScan( + default R visitNonAlignedAggregationTreeDeviceViewScan( NonAlignedAggregationTreeDeviceViewScanNode node, C context) { return visitAggregationTreeDeviceViewScan(node, context); } - public R visitTreeAlignedDeviceViewScan(TreeAlignedDeviceViewScanNode node, C context) { + default R visitTreeAlignedDeviceViewScan(TreeAlignedDeviceViewScanNode node, C context) { return visitTreeDeviceViewScan(node, context); } - public R visitTreeNonAlignedDeviceViewScan(TreeNonAlignedDeviceViewScanNode node, C context) { + default R visitTreeNonAlignedDeviceViewScan(TreeNonAlignedDeviceViewScanNode node, C context) { return visitTreeDeviceViewScan(node, context); } - - public R visitMarkDistinct(MarkDistinctNode node, C context) { - return visitSingleChildProcess(node, context); - } - - public R visitWindowFunction(WindowNode node, C context) { - return visitPlan(node, context); - } - - public R visitTableFunction(TableFunctionNode node, C context) { - return visitPlan(node, context); - } - - public R visitTableFunctionProcessor(TableFunctionProcessorNode node, C context) { - return visitPlan(node, context); - } - - public R visitPatternRecognition(PatternRecognitionNode node, C context) { - return visitPlan(node, context); - } - - public R visitUnion(UnionNode node, C context) { - return visitPlan(node, context); - } - - public R visitIntersect(IntersectNode node, C context) { - return visitPlan(node, context); - } - - public R visitExcept(ExceptNode node, C context) { - return visitPlan(node, context); - } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/SimplePlanVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/SimplePlanVisitor.java index ed5bdb37bcfb2..28c0070d62665 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/SimplePlanVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/SimplePlanVisitor.java @@ -19,7 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node; -public class SimplePlanVisitor extends PlanVisitor { +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; + +public class SimplePlanVisitor implements PlanVisitor { @Override public Void visitPlan(PlanNode node, C context) { for (PlanNode source : node.getChildren()) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/WritePlanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/WritePlanNode.java index 43cbb20a40a45..4a570d75522cb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/WritePlanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/WritePlanNode.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPartitionRelatedNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadSingleTsFileNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadSingleTsFileNode.java index c8170a4880a08..24dd28712312a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadSingleTsFileNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadSingleTsFileNode.java @@ -23,11 +23,11 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.utils.TimePartitionUtils; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.storageengine.dataregion.modification.ModificationFile; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadTsFileNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadTsFileNode.java index ede0745193a0d..26917e858d0a7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadTsFileNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadTsFileNode.java @@ -20,10 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.load; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PipeEnriched; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadTsFilePieceNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadTsFilePieceNode.java index 1488e354ef1bd..3f452ad44f1d8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadTsFilePieceNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/load/LoadTsFilePieceNode.java @@ -21,10 +21,10 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.storageengine.load.splitter.TsFileData; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/AbstractSchemaMergeNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/AbstractSchemaMergeNode.java index b53daca8f3d23..63d9109d8ec9c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/AbstractSchemaMergeNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/AbstractSchemaMergeNode.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.ProcessNode; import java.util.ArrayList; import java.util.Collections; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/CountSchemaMergeNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/CountSchemaMergeNode.java index 9458461023072..be6ebc01a41de 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/CountSchemaMergeNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/CountSchemaMergeNode.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import java.io.DataOutputStream; @@ -60,8 +61,8 @@ public static PlanNode deserialize(ByteBuffer byteBuffer) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitCountMerge(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitCountMerge(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/DeviceSchemaFetchScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/DeviceSchemaFetchScanNode.java index 357ca2b46d7d4..882c6ab244a9c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/DeviceSchemaFetchScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/DeviceSchemaFetchScanNode.java @@ -22,9 +22,10 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; import org.apache.iotdb.commons.path.PathPatternTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeUtil; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; @@ -95,7 +96,7 @@ public static DeviceSchemaFetchScanNode deserialize(ByteBuffer byteBuffer) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitDeviceSchemaFetchScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitDeviceSchemaFetchScan(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/DevicesCountNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/DevicesCountNode.java index 2bdce681e3faa..018cd4e0a4a9e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/DevicesCountNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/DevicesCountNode.java @@ -22,11 +22,11 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/DevicesSchemaScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/DevicesSchemaScanNode.java index d76e74d9d7adf..6774e3febaea6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/DevicesSchemaScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/DevicesSchemaScanNode.java @@ -22,12 +22,12 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.filter.SchemaFilter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/LevelTimeSeriesCountNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/LevelTimeSeriesCountNode.java index 175a57ce85a5c..8c27aeaa4a7c8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/LevelTimeSeriesCountNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/LevelTimeSeriesCountNode.java @@ -22,13 +22,13 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.filter.SchemaFilter; import org.apache.iotdb.commons.schema.template.Template; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/LogicalViewSchemaScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/LogicalViewSchemaScanNode.java index 78b8a26b664c3..a66e82dc97979 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/LogicalViewSchemaScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/LogicalViewSchemaScanNode.java @@ -22,12 +22,12 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.filter.SchemaFilter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodeManagementMemoryMergeNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodeManagementMemoryMergeNode.java index 636d07b16f69a..42be7dc9febe5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodeManagementMemoryMergeNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodeManagementMemoryMergeNode.java @@ -20,12 +20,13 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read; import org.apache.iotdb.common.rpc.thrift.TSchemaNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.ProcessNode; import org.apache.iotdb.commons.utils.ThriftCommonsSerDeUtils; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ProcessNode; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -87,8 +88,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitNodeManagementMemoryMerge(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitNodeManagementMemoryMerge(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodePathsConvertNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodePathsConvertNode.java index 4e5ae04a47776..315f71cfacb75 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodePathsConvertNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodePathsConvertNode.java @@ -19,11 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.ProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ProcessNode; import com.google.common.collect.ImmutableList; @@ -75,8 +76,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitNodePathConvert(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitNodePathConvert(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodePathsCountNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodePathsCountNode.java index a359d5e88a119..84a8024f05b36 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodePathsCountNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodePathsCountNode.java @@ -19,11 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.ProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ProcessNode; import com.google.common.collect.ImmutableList; @@ -75,8 +76,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitNodePathsCount(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitNodePathsCount(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodePathsSchemaScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodePathsSchemaScanNode.java index 04ce9356ea342..da9490a248b5d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodePathsSchemaScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/NodePathsSchemaScanNode.java @@ -22,11 +22,11 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import java.io.DataOutputStream; import java.io.IOException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/PathsUsingTemplateScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/PathsUsingTemplateScanNode.java index 83627346a26ef..38a1c651dc69d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/PathsUsingTemplateScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/PathsUsingTemplateScanNode.java @@ -22,11 +22,11 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaFetchMergeNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaFetchMergeNode.java index 000471f31e8e7..2b5f3e420b39b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaFetchMergeNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaFetchMergeNode.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -90,8 +91,8 @@ public static PlanNode deserialize(ByteBuffer byteBuffer) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSchemaFetchMerge(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitSchemaFetchMerge(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaFetchScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaFetchScanNode.java index d1eb46846825c..0fe944f78bfb9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaFetchScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaFetchScanNode.java @@ -22,9 +22,9 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SourceNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaQueryMergeNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaQueryMergeNode.java index 5249ff3adf9fa..fc655fe2c94eb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaQueryMergeNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaQueryMergeNode.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import java.io.DataOutputStream; @@ -72,8 +73,8 @@ public static SchemaQueryMergeNode deserialize(ByteBuffer byteBuffer) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSchemaQueryMerge(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitSchemaQueryMerge(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaQueryOrderByHeatNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaQueryOrderByHeatNode.java index 295ddc2d0a898..673f8ba303b7d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaQueryOrderByHeatNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaQueryOrderByHeatNode.java @@ -19,12 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import java.io.DataOutputStream; import java.io.IOException; @@ -74,8 +75,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSchemaQueryOrderByHeat(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitSchemaQueryOrderByHeat(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaQueryScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaQueryScanNode.java index 49e90e44490e4..1ef1ee9570772 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaQueryScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SchemaQueryScanNode.java @@ -22,12 +22,13 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; import org.apache.iotdb.commons.schema.SchemaConstant; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeUtil; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SourceNode; import java.util.Collections; import java.util.List; @@ -163,8 +164,8 @@ public String toString() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSchemaQueryScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitSchemaQueryScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SeriesSchemaFetchScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SeriesSchemaFetchScanNode.java index 931fe356b6f33..4509ebdc6f602 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SeriesSchemaFetchScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/SeriesSchemaFetchScanNode.java @@ -22,10 +22,11 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.template.Template; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeUtil; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; @@ -154,8 +155,8 @@ public static SeriesSchemaFetchScanNode deserialize(ByteBuffer byteBuffer) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSeriesSchemaFetchScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitSeriesSchemaFetchScan(this, context); } public boolean isWithTags() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TableDeviceSourceNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TableDeviceSourceNode.java index 4891aa88825f4..b1b211a763d4e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TableDeviceSourceNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TableDeviceSourceNode.java @@ -22,14 +22,14 @@ import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SourceNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableDeviceSchemaFetcher; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import java.util.Collections; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesCountNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesCountNode.java index 0e899fcd919ad..7478f61a7b317 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesCountNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesCountNode.java @@ -23,13 +23,13 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.filter.SchemaFilter; import org.apache.iotdb.commons.schema.template.Template; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesSchemaScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesSchemaScanNode.java index c91f01fd3ceb7..4640396a9685c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesSchemaScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/read/TimeSeriesSchemaScanNode.java @@ -22,13 +22,13 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.filter.SchemaFilter; import org.apache.iotdb.commons.schema.template.Template; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/ActivateTemplateNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/ActivateTemplateNode.java index 1c54064c31ba4..16473e7936ee5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/ActivateTemplateNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/ActivateTemplateNode.java @@ -22,10 +22,11 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.schemaengine.schemaregion.write.req.IActivateTemplateInClusterPlan; @@ -171,8 +172,8 @@ public List splitByPartition(IAnalysis analysis) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitActivateTemplate(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitActivateTemplate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/AlterEncodingCompressorNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/AlterEncodingCompressorNode.java index 2e4c711483eaa..ff514e99f6fc1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/AlterEncodingCompressorNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/AlterEncodingCompressorNode.java @@ -20,10 +20,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.utils.SerializeUtils; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegionPlan; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegionPlanType; @@ -101,8 +102,8 @@ public List getOutputColumnNames() { } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitAlterEncodingCompressor(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitAlterEncodingCompressor(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/AlterTimeSeriesNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/AlterTimeSeriesNode.java index 02783b76f0c6b..c87359e3589fc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/AlterTimeSeriesNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/AlterTimeSeriesNode.java @@ -22,10 +22,11 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.statement.metadata.AlterTimeSeriesStatement.AlterType; @@ -294,8 +295,8 @@ public static AlterTimeSeriesNode deserialize(ByteBuffer byteBuffer) { } @Override - public R accept(final PlanVisitor visitor, final C schemaRegion) { - return visitor.visitAlterTimeSeries(this, schemaRegion); + public R accept(final IPlanVisitor visitor, final C schemaRegion) { + return ((PlanVisitor) visitor).visitAlterTimeSeries(this, schemaRegion); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/BatchActivateTemplateNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/BatchActivateTemplateNode.java index 0d1d753085b9d..e242259a66999 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/BatchActivateTemplateNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/BatchActivateTemplateNode.java @@ -22,10 +22,11 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; @@ -171,8 +172,8 @@ public List splitByPartition(IAnalysis analysis) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitBatchActivateTemplate(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitBatchActivateTemplate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/ConstructSchemaBlackListNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/ConstructSchemaBlackListNode.java index 47438f89c0b9a..abeadce16b55a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/ConstructSchemaBlackListNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/ConstructSchemaBlackListNode.java @@ -20,9 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write; import org.apache.iotdb.commons.path.PathPatternTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import java.io.DataOutputStream; @@ -73,8 +74,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitConstructSchemaBlackList(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitConstructSchemaBlackList(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/CreateAlignedTimeSeriesNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/CreateAlignedTimeSeriesNode.java index 6be75113a54a8..d96c7eb058832 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/CreateAlignedTimeSeriesNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/CreateAlignedTimeSeriesNode.java @@ -22,11 +22,12 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeDevicePathCache; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.schemaengine.schemaregion.write.req.ICreateAlignedTimeSeriesPlan; @@ -193,8 +194,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C schemaRegion) { - return visitor.visitCreateAlignedTimeSeries(this, schemaRegion); + public R accept(IPlanVisitor visitor, C schemaRegion) { + return ((PlanVisitor) visitor).visitCreateAlignedTimeSeries(this, schemaRegion); } public static CreateAlignedTimeSeriesNode deserialize(ByteBuffer byteBuffer) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/CreateMultiTimeSeriesNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/CreateMultiTimeSeriesNode.java index 5481792dceab7..5d00f7cfa0f42 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/CreateMultiTimeSeriesNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/CreateMultiTimeSeriesNode.java @@ -23,11 +23,12 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; @@ -160,8 +161,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C schemaRegion) { - return visitor.visitCreateMultiTimeSeries(this, schemaRegion); + public R accept(IPlanVisitor visitor, C schemaRegion) { + return ((PlanVisitor) visitor).visitCreateMultiTimeSeries(this, schemaRegion); } public static CreateMultiTimeSeriesNode deserialize(ByteBuffer byteBuffer) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/CreateTimeSeriesNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/CreateTimeSeriesNode.java index 19e49ec4c0b81..187ba041116a2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/CreateTimeSeriesNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/CreateTimeSeriesNode.java @@ -22,10 +22,11 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.schemaengine.schemaregion.write.req.ICreateTimeSeriesPlan; @@ -349,8 +350,8 @@ protected void serializeAttributes(final DataOutputStream stream) throws IOExcep } @Override - public R accept(final PlanVisitor visitor, final C schemaRegion) { - return visitor.visitCreateTimeSeries(this, schemaRegion); + public R accept(final IPlanVisitor visitor, final C schemaRegion) { + return ((PlanVisitor) visitor).visitCreateTimeSeries(this, schemaRegion); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/DeactivateTemplateNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/DeactivateTemplateNode.java index 3c160e4754a94..04d5635a3ef69 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/DeactivateTemplateNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/DeactivateTemplateNode.java @@ -21,9 +21,10 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.write.req.IDeactivateTemplatePlan; @@ -76,8 +77,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitDeactivateTemplate(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitDeactivateTemplate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/DeleteTimeSeriesNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/DeleteTimeSeriesNode.java index 234400fdec4d6..643cef3e4265e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/DeleteTimeSeriesNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/DeleteTimeSeriesNode.java @@ -20,9 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write; import org.apache.iotdb.commons.path.PathPatternTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import java.io.DataOutputStream; @@ -73,8 +74,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitDeleteTimeseries(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitDeleteTimeseries(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/InternalBatchActivateTemplateNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/InternalBatchActivateTemplateNode.java index fd5bbbf14779e..172bb1fae18c1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/InternalBatchActivateTemplateNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/InternalBatchActivateTemplateNode.java @@ -22,10 +22,11 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; @@ -165,8 +166,8 @@ public List splitByPartition(IAnalysis analysis) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInternalBatchActivateTemplate(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInternalBatchActivateTemplate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/InternalCreateMultiTimeSeriesNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/InternalCreateMultiTimeSeriesNode.java index 50689b72e3451..8e01176c415f4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/InternalCreateMultiTimeSeriesNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/InternalCreateMultiTimeSeriesNode.java @@ -22,10 +22,11 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; @@ -168,8 +169,8 @@ public List splitByPartition(IAnalysis analysis) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInternalCreateMultiTimeSeries(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInternalCreateMultiTimeSeries(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/InternalCreateTimeSeriesNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/InternalCreateTimeSeriesNode.java index 76233e5934d10..0084b8cf5e12f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/InternalCreateTimeSeriesNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/InternalCreateTimeSeriesNode.java @@ -22,10 +22,11 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; @@ -106,8 +107,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInternalCreateTimeSeries(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInternalCreateTimeSeries(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/PreDeactivateTemplateNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/PreDeactivateTemplateNode.java index f5610cd632cff..c9e1dc873c3f8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/PreDeactivateTemplateNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/PreDeactivateTemplateNode.java @@ -21,9 +21,10 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.write.req.IPreDeactivateTemplatePlan; @@ -76,8 +77,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitPreDeactivateTemplate(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitPreDeactivateTemplate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/RollbackPreDeactivateTemplateNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/RollbackPreDeactivateTemplateNode.java index b1dbb3643233c..36fc443cdf4fe 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/RollbackPreDeactivateTemplateNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/RollbackPreDeactivateTemplateNode.java @@ -21,9 +21,10 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.write.req.IRollbackPreDeactivateTemplatePlan; @@ -78,8 +79,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitRollbackPreDeactivateTemplate(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitRollbackPreDeactivateTemplate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/RollbackSchemaBlackListNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/RollbackSchemaBlackListNode.java index 3ca6a75cf662b..625f094c83877 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/RollbackSchemaBlackListNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/RollbackSchemaBlackListNode.java @@ -20,9 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write; import org.apache.iotdb.commons.path.PathPatternTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import java.io.DataOutputStream; @@ -73,8 +74,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitRollbackSchemaBlackList(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitRollbackSchemaBlackList(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/AlterLogicalViewNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/AlterLogicalViewNode.java index ff3ddd3b8c396..056ed362b73d3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/AlterLogicalViewNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/AlterLogicalViewNode.java @@ -22,11 +22,12 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression; import org.apache.iotdb.commons.schema.view.viewExpression.leaf.TimeSeriesViewOperand; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.tsfile.exception.NotImplementedException; @@ -92,8 +93,8 @@ private void collectAllSourcePaths(ViewExpression viewExpression, Set R accept(final PlanVisitor visitor, final C context) { - return visitor.visitAlterLogicalView(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitAlterLogicalView(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/ConstructLogicalViewBlackListNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/ConstructLogicalViewBlackListNode.java index 3172e80547ccc..e831cd13430ca 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/ConstructLogicalViewBlackListNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/ConstructLogicalViewBlackListNode.java @@ -20,9 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.view; import org.apache.iotdb.commons.path.PathPatternTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import java.io.DataOutputStream; @@ -73,8 +74,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitConstructLogicalViewBlackList(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitConstructLogicalViewBlackList(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/CreateLogicalViewNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/CreateLogicalViewNode.java index ffdd63b29a408..e7da2cfda6b46 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/CreateLogicalViewNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/CreateLogicalViewNode.java @@ -23,12 +23,13 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.schemaengine.schemaregion.view.visitor.GetSourcePathsVisitor; @@ -117,8 +118,8 @@ public void setViewPathToSourceExpressionMap( } @Override - public R accept(PlanVisitor visitor, C schemaRegion) { - return visitor.visitCreateLogicalView(this, schemaRegion); + public R accept(IPlanVisitor visitor, C schemaRegion) { + return ((PlanVisitor) visitor).visitCreateLogicalView(this, schemaRegion); } // endregion diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/DeleteLogicalViewNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/DeleteLogicalViewNode.java index 1f955887cfb24..c18ea5ed1be0f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/DeleteLogicalViewNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/DeleteLogicalViewNode.java @@ -20,9 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.view; import org.apache.iotdb.commons.path.PathPatternTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import java.io.DataOutputStream; @@ -72,8 +73,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitDeleteLogicalView(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitDeleteLogicalView(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/RollbackLogicalViewBlackListNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/RollbackLogicalViewBlackListNode.java index b5bb251910f36..dbee3f2f9affd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/RollbackLogicalViewBlackListNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/metadata/write/view/RollbackLogicalViewBlackListNode.java @@ -20,9 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.view; import org.apache.iotdb.commons.path.PathPatternTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import java.io.DataOutputStream; @@ -72,8 +73,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitRollbackLogicalViewBlackList(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitRollbackLogicalViewBlackList(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedDeleteDataNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedDeleteDataNode.java index 11d70e0daa755..71bde797d6dab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedDeleteDataNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedDeleteDataNode.java @@ -21,12 +21,13 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.consensus.index.ProgressIndex; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.consensus.statemachine.dataregion.DataExecutionVisitor; import org.apache.iotdb.db.queryengine.execution.executor.RegionWriteExecutor; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.AbstractDeleteDataNode; @@ -139,8 +140,8 @@ public List getOutputColumnNames() { } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitPipeEnrichedDeleteDataNode(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitPipeEnrichedDeleteDataNode(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedInsertNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedInsertNode.java index 2e517700217b7..f08eef7e9c5d7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedInsertNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedInsertNode.java @@ -22,13 +22,14 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.consensus.index.ProgressIndex; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.consensus.statemachine.dataregion.DataExecutionVisitor; import org.apache.iotdb.db.exception.DataTypeInconsistentException; import org.apache.iotdb.db.queryengine.execution.executor.RegionWriteExecutor; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertNode; @@ -132,8 +133,8 @@ public List getOutputColumnNames() { } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitPipeEnrichedInsertNode(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitPipeEnrichedInsertNode(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedNonWritePlanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedNonWritePlanNode.java index 5d4c5eef5cd7e..f82e6c4a8da4f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedNonWritePlanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedNonWritePlanNode.java @@ -19,11 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.consensus.statemachine.schemaregion.SchemaExecutionVisitor; import org.apache.iotdb.db.queryengine.execution.executor.RegionWriteExecutor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.ConstructSchemaBlackListNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.DeactivateTemplateNode; @@ -133,8 +134,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitPipeEnrichedNonWritePlanNode(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitPipeEnrichedNonWritePlanNode(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedWritePlanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedWritePlanNode.java index e8ba967b26ea4..73e8ee364866c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedWritePlanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeEnrichedWritePlanNode.java @@ -20,12 +20,13 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.consensus.statemachine.schemaregion.SchemaExecutionVisitor; import org.apache.iotdb.db.queryengine.execution.executor.RegionWriteExecutor; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.ActivateTemplateNode; @@ -148,8 +149,8 @@ public List getOutputColumnNames() { } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitPipeEnrichedWritePlanNode(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitPipeEnrichedWritePlanNode(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeOperateSchemaQueueNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeOperateSchemaQueueNode.java index 5674f264e229e..145128350683a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeOperateSchemaQueueNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/pipe/PipeOperateSchemaQueueNode.java @@ -19,10 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.pipe.source.schemaregion.SchemaRegionListeningQueue; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegion; @@ -79,8 +80,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitPipeOperateSchemaQueueNode(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitPipeOperateSchemaQueueNode(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AI/InferenceNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AI/InferenceNode.java index a01acf86db57f..be5544e5877d0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AI/InferenceNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AI/InferenceNode.java @@ -19,11 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AI; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.model.ModelInferenceDescriptor; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -79,8 +80,8 @@ public boolean isGenerateTimeColumn() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInference(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInference(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ActiveRegionScanMergeNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ActiveRegionScanMergeNode.java index 745b847a10644..c4da3a4e240c8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ActiveRegionScanMergeNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ActiveRegionScanMergeNode.java @@ -19,11 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -119,8 +121,8 @@ public String toString() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitRegionMerge(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitRegionMerge(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AggregationMergeSortNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AggregationMergeSortNode.java index a5d73bd387513..e9adb60c89715 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AggregationMergeSortNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AggregationMergeSortNode.java @@ -19,10 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.OrderByParameter; @@ -109,8 +111,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitAggregationMergeSort(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitAggregationMergeSort(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AggregationNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AggregationNode.java index c0d3afa11a33d..750c9109bb5ba 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AggregationNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AggregationNode.java @@ -19,11 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesAggregationSourceNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; @@ -215,8 +217,8 @@ public static List findAggregationSourceNode(PlanNo } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitAggregation(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitAggregation(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/CollectNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/CollectNode.java index 19efc365e8329..03ef02f28b349 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/CollectNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/CollectNode.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -49,8 +51,8 @@ public CollectNode(PlanNodeId id, List children, List outputCo } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitCollect(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitCollect(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ColumnInjectNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ColumnInjectNode.java index 6b3f2c1933ba9..cfb936b7555dc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ColumnInjectNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ColumnInjectNode.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.utils.columngenerator.parameter.ColumnGeneratorParameter; @@ -58,8 +60,8 @@ public ColumnInjectNode( } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitColumnInject(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitColumnInject(this, context); } public List getGeneratedColumnTypes() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/DeviceMergeNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/DeviceMergeNode.java index 799708d859bdb..8b13c4fccf1f8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/DeviceMergeNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/DeviceMergeNode.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.OrderByParameter; @@ -85,8 +87,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitDeviceMerge(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitDeviceMerge(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/DeviceViewIntoNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/DeviceViewIntoNode.java index db0914d487ffb..dd0ebac9f06be 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/DeviceViewIntoNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/DeviceViewIntoNode.java @@ -19,11 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.DeviceViewIntoPathDescriptor; @@ -91,8 +93,8 @@ public static DeviceViewIntoNode deserialize(ByteBuffer byteBuffer) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitDeviceViewInto(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitDeviceViewInto(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/DeviceViewNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/DeviceViewNode.java index cb37b596bbb1f..2de070f8aa7d1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/DeviceViewNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/DeviceViewNode.java @@ -19,10 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.OrderByParameter; @@ -128,8 +130,8 @@ public void setOutputColumnNames(List outputColumnNames) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitDeviceView(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitDeviceView(this, context); } @Override @@ -213,8 +215,7 @@ public static DeviceViewNode deserialize(ByteBuffer byteBuffer) { } @Override - public void serializeUseTemplate(DataOutputStream stream, TypeProvider typeProvider) - throws IOException { + public void serializeUseTemplate(DataOutputStream stream) throws IOException { PlanNodeType.DEVICE_VIEW.serialize(stream); id.serialize(stream); mergeOrderParameter.serializeAttributes(stream); @@ -225,7 +226,7 @@ public void serializeUseTemplate(DataOutputStream stream, TypeProvider typeProvi ReadWriteIOUtils.write(getChildren().size(), stream); for (PlanNode planNode : getChildren()) { - planNode.serializeUseTemplate(stream, typeProvider); + planNode.serializeUseTemplate(stream); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ExchangeNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ExchangeNode.java index cbcb329b94e1e..084141e90a728 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ExchangeNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ExchangeNode.java @@ -20,12 +20,14 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; import org.apache.iotdb.common.rpc.thrift.TEndPoint; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -64,8 +66,8 @@ public int allowedChildCount() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitExchange(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitExchange(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/FillNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/FillNode.java index 2e5cc0239dcf5..e558ef146aa29 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/FillNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/FillNode.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.FillDescriptor; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; @@ -71,8 +73,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitFill(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitFill(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/FilterNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/FilterNode.java index 8b3ed9ee5557f..81d3153bcbb72 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/FilterNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/FilterNode.java @@ -19,11 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; @@ -69,8 +70,8 @@ public FilterNode( } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitFilter(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitFilter(this, context); } @Override @@ -122,8 +123,7 @@ public static FilterNode deserialize(ByteBuffer byteBuffer) { } @Override - public void serializeUseTemplate(DataOutputStream stream, TypeProvider typeProvider) - throws IOException { + public void serializeUseTemplate(DataOutputStream stream) throws IOException { PlanNodeType.FILTER.serialize(stream); id.serialize(stream); ReadWriteIOUtils.write(fromWhere, stream); @@ -139,7 +139,7 @@ public void serializeUseTemplate(DataOutputStream stream, TypeProvider typeProvi } ReadWriteIOUtils.write(getChildren().size(), stream); for (PlanNode planNode : getChildren()) { - planNode.serializeUseTemplate(stream, typeProvider); + planNode.serializeUseTemplate(stream); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/GroupByLevelNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/GroupByLevelNode.java index ddfaed455a74d..732269817e5b0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/GroupByLevelNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/GroupByLevelNode.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.CrossSeriesAggregationDescriptor; @@ -125,8 +127,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitGroupByLevel(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitGroupByLevel(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/GroupByTagNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/GroupByTagNode.java index 50b64e029c0bf..d96100bfac81a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/GroupByTagNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/GroupByTagNode.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.CrossSeriesAggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; @@ -119,8 +121,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitGroupByTag(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitGroupByTag(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/HorizontallyConcatNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/HorizontallyConcatNode.java index 71203c1971270..684ae2507b9d9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/HorizontallyConcatNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/HorizontallyConcatNode.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import java.io.DataOutputStream; @@ -73,8 +75,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitHorizontallyConcat(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitHorizontallyConcat(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/IntoNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/IntoNode.java index d6f86d528c889..00e91b3803d7e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/IntoNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/IntoNode.java @@ -19,11 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.IntoPathDescriptor; @@ -88,8 +90,8 @@ public static IntoNode deserialize(ByteBuffer byteBuffer) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInto(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInto(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/LimitNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/LimitNode.java index dd0ba198d5b48..ea8869af070c4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/LimitNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/LimitNode.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -67,8 +69,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitLimit(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitLimit(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/MergeSortNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/MergeSortNode.java index bcc54344a3519..25209598b1e3b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/MergeSortNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/MergeSortNode.java @@ -18,9 +18,11 @@ */ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.OrderByParameter; @@ -85,8 +87,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitMergeSort(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitMergeSort(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/OffsetNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/OffsetNode.java index e88608578dee5..705db4e645934 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/OffsetNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/OffsetNode.java @@ -18,9 +18,11 @@ */ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -65,8 +67,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitOffset(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitOffset(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ProjectNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ProjectNode.java index 2f13ea6d6de32..07fda3d7e34b6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ProjectNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ProjectNode.java @@ -19,10 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -68,8 +70,8 @@ public void setOutputColumnNames(List outputColumnNames) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitProject(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitProject(this, context); } @Override @@ -102,13 +104,12 @@ public static ProjectNode deserialize(ByteBuffer byteBuffer) { } @Override - public void serializeUseTemplate(DataOutputStream stream, TypeProvider typeProvider) - throws IOException { + public void serializeUseTemplate(DataOutputStream stream) throws IOException { PlanNodeType.PROJECT.serialize(stream); id.serialize(stream); ReadWriteIOUtils.write(getChildren().size(), stream); for (PlanNode planNode : getChildren()) { - planNode.serializeUseTemplate(stream, typeProvider); + planNode.serializeUseTemplate(stream); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/RawDataAggregationNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/RawDataAggregationNode.java index 6f5dbac423d7a..34885a2d7d832 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/RawDataAggregationNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/RawDataAggregationNode.java @@ -19,11 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByParameter; @@ -209,8 +211,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitRawDataAggregation(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitRawDataAggregation(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SingleDeviceViewNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SingleDeviceViewNode.java index f43679f68bfc3..e2c146495807a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SingleDeviceViewNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SingleDeviceViewNode.java @@ -18,10 +18,12 @@ */ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.tsfile.file.metadata.IDeviceID; @@ -107,8 +109,8 @@ public List getDeviceToMeasurementIndexes() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSingleDeviceView(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitSingleDeviceView(this, context); } @Override @@ -174,15 +176,14 @@ public static SingleDeviceViewNode deserialize(ByteBuffer byteBuffer) { } @Override - public void serializeUseTemplate(DataOutputStream stream, TypeProvider typeProvider) - throws IOException { + public void serializeUseTemplate(DataOutputStream stream) throws IOException { PlanNodeType.SINGLE_DEVICE_VIEW.serialize(stream); id.serialize(stream); device.serialize(stream); ReadWriteIOUtils.write(cacheOutputColumnNames, stream); ReadWriteIOUtils.write(getChildren().size(), stream); for (PlanNode planNode : getChildren()) { - planNode.serializeUseTemplate(stream, typeProvider); + planNode.serializeUseTemplate(stream); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SlidingWindowAggregationNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SlidingWindowAggregationNode.java index cffd814eedc47..da395630c5378 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SlidingWindowAggregationNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SlidingWindowAggregationNode.java @@ -19,10 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; @@ -130,8 +132,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSlidingWindowAggregation(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitSlidingWindowAggregation(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SortNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SortNode.java index 327251b7247cd..79f277ee9c19a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SortNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SortNode.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.OrderByParameter; @@ -66,8 +68,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSort(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitSort(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/TopKNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/TopKNode.java index 27b7d34cea32b..6f9ced9891a95 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/TopKNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/TopKNode.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.OrderByParameter; @@ -99,8 +101,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitTopK(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitTopK(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/TransformNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/TransformNode.java index 2ca198dd2b8e2..c39bc8f6eedab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/TransformNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/TransformNode.java @@ -19,10 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; @@ -77,8 +79,8 @@ public final List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitTransform(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitTransform(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/join/FullOuterTimeJoinNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/join/FullOuterTimeJoinNode.java index f692e0867ff12..c7353644abab9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/join/FullOuterTimeJoinNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/join/FullOuterTimeJoinNode.java @@ -19,11 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -96,8 +97,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitFullOuterTimeJoin(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitFullOuterTimeJoin(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/join/InnerTimeJoinNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/join/InnerTimeJoinNode.java index ef98496b89ce3..2e5fdf8f9b67a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/join/InnerTimeJoinNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/join/InnerTimeJoinNode.java @@ -19,11 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -131,8 +132,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInnerTimeJoin(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInnerTimeJoin(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/join/LeftOuterTimeJoinNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/join/LeftOuterTimeJoinNode.java index 766a0f7fd81e2..91bae39152f29 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/join/LeftOuterTimeJoinNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/join/LeftOuterTimeJoinNode.java @@ -19,11 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -87,8 +88,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitLeftOuterTimeJoin(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitLeftOuterTimeJoin(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryCollectNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryCollectNode.java index ef40d6cfd17c9..774110d441064 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryCollectNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryCollectNode.java @@ -18,11 +18,12 @@ */ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.last; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import java.io.DataOutputStream; import java.io.IOException; @@ -91,8 +92,8 @@ public int hashCode() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitLastQueryCollect(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitLastQueryCollect(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryMergeNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryMergeNode.java index 7a7cfabff6aac..ffe617085e264 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryMergeNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryMergeNode.java @@ -18,11 +18,12 @@ */ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.last; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -108,8 +109,8 @@ public int hashCode() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitLastQueryMerge(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitLastQueryMerge(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryNode.java index e6a71dc197bde..800d0ae809861 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryNode.java @@ -20,13 +20,14 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.LastQueryScanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SourceNode; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.tsfile.enums.TSDataType; @@ -197,8 +198,8 @@ public int hashCode() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitLastQuery(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitLastQuery(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryTransformNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryTransformNode.java index 53f85d520a1c1..03f02f9510b7f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryTransformNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/last/LastQueryTransformNode.java @@ -19,11 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.last; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -90,8 +91,8 @@ public static LastQueryTransformNode deserialize(ByteBuffer byteBuffer) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitLastQueryTransform(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitLastQueryTransform(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/IdentitySinkNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/IdentitySinkNode.java index 46e7ae5aa6bed..6ce7fb1e2a7b5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/IdentitySinkNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/IdentitySinkNode.java @@ -19,10 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -71,8 +72,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitIdentitySink(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitIdentitySink(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/MultiChildrenSinkNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/MultiChildrenSinkNode.java index b6d93596e8005..04edfde42075b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/MultiChildrenSinkNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/MultiChildrenSinkNode.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import java.util.ArrayList; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/ShuffleSinkNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/ShuffleSinkNode.java index ec32f13b37837..8348d2d4644ef 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/ShuffleSinkNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/ShuffleSinkNode.java @@ -19,10 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -70,8 +71,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitShuffleSink(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitShuffleSink(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/SinkNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/SinkNode.java index a277daca7557c..8f1a6dc0b6461 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/SinkNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/SinkNode.java @@ -18,8 +18,8 @@ */ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; public abstract class SinkNode extends PlanNode implements AutoCloseable { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedSeriesAggregationScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedSeriesAggregationScanNode.java index d81ca0c92bd57..0ed7ae9d99243 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedSeriesAggregationScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedSeriesAggregationScanNode.java @@ -23,12 +23,13 @@ import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeUtil; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationNode; @@ -193,8 +194,8 @@ public PlanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitAlignedSeriesAggregationScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitAlignedSeriesAggregationScan(this, context); } @Override @@ -278,8 +279,7 @@ public static AlignedSeriesAggregationScanNode deserialize(ByteBuffer byteBuffer } @Override - public void serializeUseTemplate(DataOutputStream stream, TypeProvider typeProvider) - throws IOException { + public void serializeUseTemplate(DataOutputStream stream) throws IOException { PlanNodeType.ALIGNED_SERIES_AGGREGATE_SCAN.serialize(stream); id.serialize(stream); ReadWriteIOUtils.write(alignedPath.getNodes().length, stream); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedSeriesScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedSeriesScanNode.java index 2799452eabdfe..bc1fd4a3ca197 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedSeriesScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/AlignedSeriesScanNode.java @@ -23,12 +23,13 @@ import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeUtil; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; @@ -139,8 +140,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitAlignedSeriesScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitAlignedSeriesScan(this, context); } @Override @@ -199,8 +200,7 @@ public static AlignedSeriesScanNode deserialize(ByteBuffer byteBuffer) { } @Override - public void serializeUseTemplate(DataOutputStream stream, TypeProvider typeProvider) - throws IOException { + public void serializeUseTemplate(DataOutputStream stream) throws IOException { PlanNodeType.ALIGNED_SERIES_SCAN.serialize(stream); id.serialize(stream); ReadWriteIOUtils.write(alignedPath.getNodes().length, stream); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/DeviceRegionScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/DeviceRegionScanNode.java index 5d876fcfce2f9..b45632e4aef92 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/DeviceRegionScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/DeviceRegionScanNode.java @@ -22,12 +22,13 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.db.queryengine.common.DeviceContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeUtil; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; @@ -91,8 +92,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitDeviceRegionScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitDeviceRegionScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/LastQueryScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/LastQueryScanNode.java index 150509120eb10..052f987d1cab6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/LastQueryScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/LastQueryScanNode.java @@ -22,11 +22,12 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeUtil; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; @@ -245,8 +246,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitLastQueryScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitLastQueryScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/LastSeriesSourceNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/LastSeriesSourceNode.java index fc54cd2f09ace..764cdb98f8429 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/LastSeriesSourceNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/LastSeriesSourceNode.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.source; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/RegionScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/RegionScanNode.java index 9a48e16ff660d..3ddc7b848bdc3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/RegionScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/RegionScanNode.java @@ -21,7 +21,9 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import java.util.Objects; @@ -85,8 +87,8 @@ public boolean equals(Object o) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitRegionScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitRegionScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesAggregationScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesAggregationScanNode.java index 54a186b98ce57..f72a5a2dcf3f3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesAggregationScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesAggregationScanNode.java @@ -22,11 +22,12 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeUtil; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationNode; @@ -183,8 +184,8 @@ public void setRegionReplicaSet(TRegionReplicaSet regionReplicaSet) { public void close() throws Exception {} @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSeriesAggregationScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitSeriesAggregationScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesAggregationSourceNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesAggregationSourceNode.java index aaf2f989b5b97..1551fe87227ee 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesAggregationSourceNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesAggregationSourceNode.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.source; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; @@ -113,8 +114,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSeriesAggregationSourceNode(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitSeriesAggregationSourceNode(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesScanNode.java index 587d1ac248c42..31fa9d217d89f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesScanNode.java @@ -22,11 +22,12 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeUtil; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; @@ -118,8 +119,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSeriesScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitSeriesScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesScanSourceNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesScanSourceNode.java index e7498db297fef..f08f069cbaaac 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesScanSourceNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesScanSourceNode.java @@ -20,9 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.source; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; @@ -159,8 +160,8 @@ public void addChild(PlanNode child) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSeriesScanSource(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitSeriesScanSource(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesSourceNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesSourceNode.java index c2e052e76b7d3..e3df971024ea2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesSourceNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SeriesSourceNode.java @@ -20,8 +20,9 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.source; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.tsfile.utils.Accountable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/ShowDiskUsageNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/ShowDiskUsageNode.java index 18a0e3687e065..50a8146c6ebbd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/ShowDiskUsageNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/ShowDiskUsageNode.java @@ -22,11 +22,12 @@ import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import com.google.common.collect.ImmutableList; @@ -139,8 +140,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitShowDiskUsage(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitShowDiskUsage(this, context); } // We only use DataNodeLocation when do distributionPlan, so DataNodeLocation is no need to diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/ShowQueriesNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/ShowQueriesNode.java index 1eaf122c773fd..f1740803f472f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/ShowQueriesNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/ShowQueriesNode.java @@ -19,10 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.source; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeader; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import com.google.common.collect.ImmutableList; @@ -86,8 +87,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitShowQueries(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitShowQueries(this, context); } // We only use DataNodeLocation when do distributionPlan, so DataNodeLocation is no need to diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/TimeseriesRegionScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/TimeseriesRegionScanNode.java index 5ab4fbc82d804..d2c96debe1419 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/TimeseriesRegionScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/TimeseriesRegionScanNode.java @@ -24,13 +24,14 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.queryengine.common.TimeseriesContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import com.google.common.collect.ImmutableList; @@ -112,8 +113,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitTimeSeriesRegionScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitTimeSeriesRegionScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/VirtualSourceNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/VirtualSourceNode.java index 417876b700cb9..8639c2565f4e2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/VirtualSourceNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/VirtualSourceNode.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.source; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; public abstract class VirtualSourceNode extends PlanNode { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/AbstractDeleteDataNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/AbstractDeleteDataNode.java index ff08fbd8dbd44..ffd614de25481 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/AbstractDeleteDataNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/AbstractDeleteDataNode.java @@ -21,8 +21,8 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.consensus.index.ProgressIndex; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.WALEntryValue; import java.nio.ByteBuffer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/ContinuousSameSearchIndexSeparatorNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/ContinuousSameSearchIndexSeparatorNode.java index f34c4ab262e4c..791cff616f7d6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/ContinuousSameSearchIndexSeparatorNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/ContinuousSameSearchIndexSeparatorNode.java @@ -21,10 +21,10 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.consensus.index.ProgressIndex; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.IWALByteBufferView; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.WALEntryValue; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/DeleteDataNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/DeleteDataNode.java index cfba72d66db62..948394073c407 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/DeleteDataNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/DeleteDataNode.java @@ -28,13 +28,14 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.common.schematree.DeviceSchemaInfo; import org.apache.iotdb.db.queryengine.common.schematree.ISchemaTree; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.IWALByteBufferView; @@ -261,8 +262,8 @@ protected void serializeAttributes(DataOutputStream stream) throws IOException { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitDeleteData(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitDeleteData(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertMultiTabletsNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertMultiTabletsNode.java index b41d178b396c6..1150778469f64 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertMultiTabletsNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertMultiTabletsNode.java @@ -21,12 +21,13 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.consensus.index.ProgressIndex; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.utils.StatusUtils; import org.apache.iotdb.db.exception.DataTypeInconsistentException; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.storageengine.dataregion.memtable.AbstractMemTable; @@ -281,8 +282,8 @@ public int hashCode() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInsertMultiTablets(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInsertMultiTablets(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertNode.java index 88a6faa004745..296e74995ffc0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertNode.java @@ -23,6 +23,8 @@ import org.apache.iotdb.commons.consensus.index.ProgressIndex; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.consensus.ConsensusFactory; import org.apache.iotdb.db.conf.IoTDBConfig; @@ -30,8 +32,6 @@ import org.apache.iotdb.db.exception.DataTypeInconsistentException; import org.apache.iotdb.db.pipe.resource.memory.InsertNodeMemoryEstimator; import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeDevicePathCache; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.storageengine.dataregion.memtable.AbstractMemTable; import org.apache.iotdb.db.storageengine.dataregion.memtable.DeviceIDFactory; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.IWALByteBufferView; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowNode.java index a2bd6cb1a00fc..290ec8a4a71ff 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowNode.java @@ -22,13 +22,14 @@ import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.commons.utils.TimePartitionUtils; import org.apache.iotdb.db.exception.DataTypeInconsistentException; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TreeDeviceSchemaCacheManager; @@ -898,8 +899,8 @@ public int hashCode() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInsertRow(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInsertRow(this, context); } public TimeValuePair composeTimeValuePair(int columnIndex) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowsNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowsNode.java index 7392b7612705e..28f914e16065b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowsNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowsNode.java @@ -23,13 +23,14 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.consensus.index.ProgressIndex; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.utils.StatusUtils; import org.apache.iotdb.commons.utils.TimePartitionUtils; import org.apache.iotdb.db.exception.DataTypeInconsistentException; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.storageengine.dataregion.memtable.AbstractMemTable; @@ -297,8 +298,8 @@ public List splitByPartition(IAnalysis analysis) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInsertRows(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInsertRows(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowsOfOneDeviceNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowsOfOneDeviceNode.java index f1e28d32b104d..15538e127d484 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowsOfOneDeviceNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertRowsOfOneDeviceNode.java @@ -24,14 +24,15 @@ import org.apache.iotdb.commons.consensus.index.ProgressIndex; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.utils.StatusUtils; import org.apache.iotdb.commons.utils.TimePartitionUtils; import org.apache.iotdb.db.exception.DataTypeInconsistentException; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeDevicePathCache; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.storageengine.dataregion.memtable.AbstractMemTable; @@ -332,8 +333,8 @@ public int hashCode() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInsertRowsOfOneDevice(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInsertRowsOfOneDevice(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertTabletNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertTabletNode.java index 39683e5d9f94e..490f16ca5f01b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertTabletNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertTabletNode.java @@ -24,15 +24,17 @@ import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.utils.CommonDateTimeUtils; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.commons.utils.TimePartitionUtils; import org.apache.iotdb.db.exception.DataTypeInconsistentException; import org.apache.iotdb.db.exception.query.OutOfTTLException; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TreeDeviceSchemaCacheManager; @@ -42,7 +44,6 @@ import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.IWALByteBufferView; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.WALEntryValue; import org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALWriteUtils; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.iotdb.db.utils.QueryDataSetUtils; import org.apache.iotdb.rpc.RpcUtils; import org.apache.iotdb.rpc.TSStatusCode; @@ -1168,8 +1169,8 @@ private boolean equals(Object[] columns) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInsertTablet(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInsertTablet(this, context); } public TimeValuePair composeLastTimeValuePair( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/ObjectNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/ObjectNode.java index 5becf59799e08..b791822fb9036 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/ObjectNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/ObjectNode.java @@ -19,17 +19,18 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.write; +import org.apache.iotdb.calc.utils.IObjectPath; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.consensus.index.ProgressIndex; import org.apache.iotdb.commons.exception.ObjectFileNotExist; import org.apache.iotdb.commons.exception.runtime.SerializationRunTimeException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; -import org.apache.iotdb.db.storageengine.dataregion.IObjectPath; import org.apache.iotdb.db.storageengine.dataregion.memtable.TsFileProcessor; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.IWALByteBufferView; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.WALEntryType; @@ -325,7 +326,7 @@ public boolean isGeneratedByRemoteConsensusLeader() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitWriteObjectFile(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitWriteObjectFile(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalDeleteDataNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalDeleteDataNode.java index 632d7c9ee1e0a..57bd9071d3bd7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalDeleteDataNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalDeleteDataNode.java @@ -23,10 +23,11 @@ import org.apache.iotdb.commons.consensus.index.ProgressIndex; import org.apache.iotdb.commons.consensus.index.ProgressIndexType; import org.apache.iotdb.commons.exception.runtime.SerializationRunTimeException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Delete; @@ -254,8 +255,8 @@ protected void serializeAttributes(DataOutputStream stream) throws IOException { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitDeleteData(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitDeleteData(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertRowNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertRowNode.java index 08c783287328c..e622dba30b9b3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertRowNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertRowNode.java @@ -21,10 +21,11 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.exception.DataTypeInconsistentException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceSchemaCache; import org.apache.iotdb.db.storageengine.dataregion.memtable.AbstractMemTable; @@ -104,8 +105,8 @@ public IDeviceID getDeviceID() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitRelationalInsertRow(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitRelationalInsertRow(this, context); } public static RelationalInsertRowNode deserialize(ByteBuffer byteBuffer) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertRowsNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertRowsNode.java index 594ccf50471f9..83498ceefc9bc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertRowsNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertRowsNode.java @@ -21,11 +21,12 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.utils.TimePartitionUtils; import org.apache.iotdb.db.exception.DataTypeInconsistentException; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.storageengine.dataregion.memtable.AbstractMemTable; @@ -75,8 +76,8 @@ public IDeviceID getDeviceID(int rowIdx) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitRelationalInsertRows(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitRelationalInsertRows(this, context); } public static RelationalInsertRowsNode deserialize(ByteBuffer byteBuffer) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertTabletNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertTabletNode.java index 257f691e4a785..b9f7edbe87c53 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertTabletNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalInsertTabletNode.java @@ -23,13 +23,14 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.exception.DataTypeInconsistentException; import org.apache.iotdb.db.exception.query.OutOfTTLException; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceSchemaCache; @@ -171,8 +172,8 @@ public IDeviceID getDeviceID(int rowIdx) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitRelationalInsertTablet(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitRelationalInsertTablet(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/SearchNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/SearchNode.java index d506d1414e15e..5a7e5d9cf78ea 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/SearchNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/SearchNode.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.write; import org.apache.iotdb.commons.consensus.index.ComparableConsensusRequest; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.consensus.iot.log.ConsensusReqReader; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/AggregationDescriptor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/AggregationDescriptor.java index ac30dcf505afd..e6589fd29095a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/AggregationDescriptor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/AggregationDescriptor.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.parameter; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -37,13 +37,10 @@ import java.util.Objects; import java.util.stream.Collectors; -import static org.apache.iotdb.commons.conf.IoTDBConstant.LAST_VALUE; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.FIRST_VALUE; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.STDDEV; import static org.apache.iotdb.db.queryengine.execution.operator.AggregationUtil.addPartialSuffix; import static org.apache.iotdb.db.queryengine.execution.operator.AggregationUtil.isBuiltinAggregationName; -import static org.apache.iotdb.db.utils.constant.SqlConstant.AVG; -import static org.apache.iotdb.db.utils.constant.SqlConstant.FIRST_VALUE; -import static org.apache.iotdb.db.utils.constant.SqlConstant.STDDEV; -import static org.apache.iotdb.db.utils.constant.SqlConstant.TIME_DURATION; public class AggregationDescriptor { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/CrossSeriesAggregationDescriptor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/CrossSeriesAggregationDescriptor.java index d986baf2faa3c..424c7e763dee0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/CrossSeriesAggregationDescriptor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/CrossSeriesAggregationDescriptor.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.parameter; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/DeviceViewIntoPathDescriptor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/DeviceViewIntoPathDescriptor.java index a34bf2e1b79d4..5fa1b3fac7193 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/DeviceViewIntoPathDescriptor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/DeviceViewIntoPathDescriptor.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.parameter; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.analyze.SelectIntoUtils; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/FillDescriptor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/FillDescriptor.java index 76b111f448150..f87b805ab108f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/FillDescriptor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/FillDescriptor.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.parameter; -import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.plan.statement.literal.Literal; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/GroupByParameter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/GroupByParameter.java index 9499f2cfab28f..10e7fc48d3fe6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/GroupByParameter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/GroupByParameter.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.parameter; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.queryengine.execution.operator.window.WindowType; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/GroupByTimeParameter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/GroupByTimeParameter.java index 9de54f85c0a16..4a89cb7d06f04 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/GroupByTimeParameter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/GroupByTimeParameter.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.parameter; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.db.queryengine.plan.statement.component.GroupByTimeComponent; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.tsfile.utils.ReadWriteIOUtils; import org.apache.tsfile.utils.TimeDuration; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/IntoPathDescriptor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/IntoPathDescriptor.java index 5dfc1e5042807..881bb27efee90 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/IntoPathDescriptor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/IntoPathDescriptor.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.parameter; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.analyze.SelectIntoUtils; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/OutputColumn.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/OutputColumn.java index c84a8241fd238..e17a405b7f12f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/OutputColumn.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/OutputColumn.java @@ -18,6 +18,8 @@ */ package org.apache.iotdb.db.queryengine.plan.planner.plan.parameter; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationAnalyzer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationAnalyzer.java index 93f7847c5faaf..9e28854ca2b71 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationAnalyzer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationAnalyzer.java @@ -19,42 +19,43 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentTime; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExistsPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FieldReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Trim; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.queryengine.plan.relational.planner.ScopeAware; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentTime; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExistsPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FieldReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Row; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Trim; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; import com.google.common.collect.ImmutableList; @@ -165,15 +166,15 @@ private void analyze(Expression expression) { } /** visitor returns true if all expressions are constant with respect to the group. */ - private class Visitor extends AstVisitor { + private class Visitor implements AstVisitor { @Override - protected Boolean visitExpression(Expression node, Void context) { + public Boolean visitExpression(Expression node, Void context) { throw new UnsupportedOperationException( "aggregation analysis not yet implemented for: " + node.getClass().getName()); } @Override - protected Boolean visitSubqueryExpression(SubqueryExpression node, Void context) { + public Boolean visitSubqueryExpression(SubqueryExpression node, Void context) { /* * Column reference can resolve to (a) some subquery's scope, (b) a projection (ORDER BY scope), * (c) source scope or (d) outer query scope (effectively a constant). @@ -193,98 +194,98 @@ protected Boolean visitSubqueryExpression(SubqueryExpression node, Void context) } @Override - protected Boolean visitExists(ExistsPredicate node, Void context) { + public Boolean visitExists(ExistsPredicate node, Void context) { checkState(node.getSubquery() instanceof SubqueryExpression); return process(node.getSubquery(), context); } @Override - protected Boolean visitCast(Cast node, Void context) { + public Boolean visitCast(Cast node, Void context) { return process(node.getExpression(), context); } @Override - protected Boolean visitCoalesceExpression(CoalesceExpression node, Void context) { + public Boolean visitCoalesceExpression(CoalesceExpression node, Void context) { return node.getOperands().stream().allMatch(expression -> process(expression, context)); } @Override - protected Boolean visitNullIfExpression(NullIfExpression node, Void context) { + public Boolean visitNullIfExpression(NullIfExpression node, Void context) { return process(node.getFirst(), context) && process(node.getSecond(), context); } @Override - protected Boolean visitExtract(Extract node, Void context) { + public Boolean visitExtract(Extract node, Void context) { return process(node.getExpression(), context); } @Override - protected Boolean visitBetweenPredicate(BetweenPredicate node, Void context) { + public Boolean visitBetweenPredicate(BetweenPredicate node, Void context) { return process(node.getMin(), context) && process(node.getValue(), context) && process(node.getMax(), context); } @Override - protected Boolean visitCurrentTime(CurrentTime node, Void context) { + public Boolean visitCurrentTime(CurrentTime node, Void context) { return true; } @Override - protected Boolean visitArithmeticBinary(ArithmeticBinaryExpression node, Void context) { + public Boolean visitArithmeticBinary(ArithmeticBinaryExpression node, Void context) { return process(node.getLeft(), context) && process(node.getRight(), context); } @Override - protected Boolean visitComparisonExpression(ComparisonExpression node, Void context) { + public Boolean visitComparisonExpression(ComparisonExpression node, Void context) { return process(node.getLeft(), context) && process(node.getRight(), context); } @Override - protected Boolean visitLiteral(Literal node, Void context) { + public Boolean visitLiteral(Literal node, Void context) { return true; } @Override - protected Boolean visitIsNotNullPredicate(IsNotNullPredicate node, Void context) { + public Boolean visitIsNotNullPredicate(IsNotNullPredicate node, Void context) { return process(node.getValue(), context); } @Override - protected Boolean visitIsNullPredicate(IsNullPredicate node, Void context) { + public Boolean visitIsNullPredicate(IsNullPredicate node, Void context) { return process(node.getValue(), context); } @Override - protected Boolean visitLikePredicate(LikePredicate node, Void context) { + public Boolean visitLikePredicate(LikePredicate node, Void context) { return process(node.getValue(), context) && process(node.getPattern(), context); } @Override - protected Boolean visitInListExpression(InListExpression node, Void context) { + public Boolean visitInListExpression(InListExpression node, Void context) { return node.getValues().stream().allMatch(expression -> process(expression, context)); } @Override - protected Boolean visitInPredicate(InPredicate node, Void context) { + public Boolean visitInPredicate(InPredicate node, Void context) { return process(node.getValue(), context) && process(node.getValueList(), context); } @Override - protected Boolean visitQuantifiedComparisonExpression( + public Boolean visitQuantifiedComparisonExpression( QuantifiedComparisonExpression node, Void context) { return process(node.getValue(), context) && process(node.getSubquery(), context); } @Override - protected Boolean visitTrim(Trim node, Void context) { + public Boolean visitTrim(Trim node, Void context) { return process(node.getTrimSource(), context) && (!node.getTrimCharacter().isPresent() || process(node.getTrimCharacter().get(), context)); } @Override - protected Boolean visitFunctionCall(FunctionCall node, Void context) { + public Boolean visitFunctionCall(FunctionCall node, Void context) { if (isAggregationFunction(node.getName().toString())) { List aggregateFunctions = extractAggregateFunctions(node.getArguments()); @@ -302,7 +303,7 @@ protected Boolean visitFunctionCall(FunctionCall node, Void context) { } @Override - protected Boolean visitIdentifier(Identifier node, Void context) { + public Boolean visitIdentifier(Identifier node, Void context) { // if (analysis.getLambdaArgumentReferences().containsKey(NodeRef.of(node))) { // return true; // } @@ -316,7 +317,7 @@ protected Boolean visitIdentifier(Identifier node, Void context) { } @Override - protected Boolean visitDereferenceExpression(DereferenceExpression node, Void context) { + public Boolean visitDereferenceExpression(DereferenceExpression node, Void context) { if (!hasReferencesToScope(node, analysis, sourceScope)) { // reference to outer scope is group-invariant @@ -344,7 +345,7 @@ private boolean isGroupingKey(Expression node) { } @Override - protected Boolean visitFieldReference(FieldReference node, Void context) { + public Boolean visitFieldReference(FieldReference node, Void context) { if (orderByScope.isPresent()) { return true; } @@ -371,22 +372,22 @@ protected Boolean visitFieldReference(FieldReference node, Void context) { } @Override - protected Boolean visitArithmeticUnary(ArithmeticUnaryExpression node, Void context) { + public Boolean visitArithmeticUnary(ArithmeticUnaryExpression node, Void context) { return process(node.getValue(), context); } @Override - protected Boolean visitNotExpression(NotExpression node, Void context) { + public Boolean visitNotExpression(NotExpression node, Void context) { return process(node.getValue(), context); } @Override - protected Boolean visitLogicalExpression(LogicalExpression node, Void context) { + public Boolean visitLogicalExpression(LogicalExpression node, Void context) { return node.getTerms().stream().allMatch(item -> process(item, context)); } @Override - protected Boolean visitIfExpression(IfExpression node, Void context) { + public Boolean visitIfExpression(IfExpression node, Void context) { ImmutableList.Builder expressions = ImmutableList.builder().add(node.getCondition()).add(node.getTrueValue()); @@ -398,7 +399,7 @@ protected Boolean visitIfExpression(IfExpression node, Void context) { } @Override - protected Boolean visitSimpleCaseExpression(SimpleCaseExpression node, Void context) { + public Boolean visitSimpleCaseExpression(SimpleCaseExpression node, Void context) { if (!process(node.getOperand(), context)) { return false; } @@ -414,7 +415,7 @@ protected Boolean visitSimpleCaseExpression(SimpleCaseExpression node, Void cont } @Override - protected Boolean visitSearchedCaseExpression(SearchedCaseExpression node, Void context) { + public Boolean visitSearchedCaseExpression(SearchedCaseExpression node, Void context) { for (WhenClause whenClause : node.getWhenClauses()) { if (!process(whenClause.getOperand(), context) || !process(whenClause.getResult(), context)) { @@ -426,12 +427,12 @@ protected Boolean visitSearchedCaseExpression(SearchedCaseExpression node, Void } @Override - protected Boolean visitRow(Row node, Void context) { + public Boolean visitRow(Row node, Void context) { return node.getItems().stream().allMatch(item -> process(item, context)); } @Override - protected Boolean visitParameter(Parameter node, Void context) { + public Boolean visitParameter(Parameter node, Void context) { // if (analysis.isDescribe()) { // return true; // } @@ -452,7 +453,7 @@ public Boolean process(Node node, @Nullable Void context) { return true; } - return super.process(node, context); + return AstVisitor.super.process(node, context); } private boolean hasOrderByReferencesToOutputColumns(Node node) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java index 5149945374319..0652cc276c39c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analysis.java @@ -23,6 +23,42 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.SchemaPartition; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.security.Identity; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AllColumns; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExistsPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FieldReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Fill; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Offset; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuerySpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RangeQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Relation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubsetDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableFunctionInvocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.With; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.commons.schema.table.InformationSchema; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; @@ -33,44 +69,9 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.TimePredicate; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.PatternRecognitionAnalysis.PatternFunctionAnalysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.tablefunction.TableFunctionInvocationAnalysis; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; -import org.apache.iotdb.db.queryengine.plan.relational.security.Identity; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AllColumns; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExistsPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FieldReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Fill; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Offset; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OrderBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuerySpecification; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RangeQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Relation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubsetDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableFunctionInvocation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.With; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; -import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analyzer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analyzer.java index cab532fd2d386..d497c4fb770de 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analyzer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Analyzer.java @@ -19,15 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; import org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PipeEnriched; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WrappedInsertStatement; import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewrite; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/CanonicalizationAware.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/CanonicalizationAware.java index 655909c046088..e79608212de37 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/CanonicalizationAware.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/CanonicalizationAware.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; import java.util.OptionalInt; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalysis.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalysis.java index e86090e2c06b9..2efbd39ce500a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalysis.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalysis.java @@ -19,12 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExistsPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExistsPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalyzer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalyzer.java index ee983c843c325..d7ba986ac7146 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalyzer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalyzer.java @@ -19,10 +19,74 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionId; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionKind; +import org.apache.iotdb.commons.queryengine.plan.relational.function.OperatorType; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.FunctionNullability; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Columns; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentDatabase; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentTime; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentUser; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DecimalLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExistsPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FieldReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ProcessingMode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RangeQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubsetDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Trim; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeNotFoundException; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis.Range; @@ -33,74 +97,11 @@ import org.apache.iotdb.db.queryengine.plan.relational.analyzer.PatternRecognitionAnalysis.NavigationMode; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.PatternRecognitionAnalysis.PatternFunctionAnalysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.PatternRecognitionAnalysis.ScalarInputDescriptor; -import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionId; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionKind; -import org.apache.iotdb.db.queryengine.plan.relational.function.OperatorType; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.FunctionNullability; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.OperatorNotFoundException; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Columns; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentDatabase; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentTime; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentUser; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DecimalLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExistsPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FieldReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OrderBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ProcessingMode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RangeQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Row; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StackableAstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubsetDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Trim; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeNotFoundException; import com.google.common.collect.HashMultimap; import com.google.common.collect.ImmutableList; @@ -141,25 +142,25 @@ import static java.util.Collections.unmodifiableSet; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isCharType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isNumericType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isTwoTypeComparable; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.FIRST_AGGREGATION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.FIRST_BY_AGGREGATION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.LAST_AGGREGATION; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.LAST_BY_AGGREGATION; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression.isQualifiedAllFieldsReference; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound.Type.CURRENT_ROW; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound.Type.FOLLOWING; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound.Type.PRECEDING; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound.Type.UNBOUNDED_FOLLOWING; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound.Type.UNBOUNDED_PRECEDING; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame.Type.GROUPS; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame.Type.RANGE; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame.Type.ROWS; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureTranslator.toTypeSignature; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.ExpressionTreeUtils.extractExpressions; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isCharType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isNumericType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isTwoTypeComparable; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression.isQualifiedAllFieldsReference; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound.Type.CURRENT_ROW; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound.Type.FOLLOWING; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound.Type.PRECEDING; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound.Type.UNBOUNDED_FOLLOWING; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound.Type.UNBOUNDED_PRECEDING; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame.Type.GROUPS; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame.Type.RANGE; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame.Type.ROWS; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toTypeSignature; import static org.apache.iotdb.db.queryengine.plan.relational.utils.NodeUtils.getSortItemsFromOrderBy; -import static org.apache.iotdb.db.utils.constant.SqlConstant.FIRST_AGGREGATION; -import static org.apache.iotdb.db.utils.constant.SqlConstant.FIRST_BY_AGGREGATION; -import static org.apache.iotdb.db.utils.constant.SqlConstant.LAST_AGGREGATION; -import static org.apache.iotdb.db.utils.constant.SqlConstant.LAST_BY_AGGREGATION; import static org.apache.tsfile.read.common.type.BlobType.BLOB; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; @@ -480,7 +481,7 @@ public Type process(Node node, @Nullable StackableAstVisitorContext con } @Override - protected Type visitRow(Row node, StackableAstVisitorContext context) { + public Type visitRow(Row node, StackableAstVisitorContext context) { List types = node.getItems().stream().map(child -> process(child, context)).collect(toImmutableList()); @@ -489,7 +490,7 @@ protected Type visitRow(Row node, StackableAstVisitorContext context) { } @Override - protected Type visitCurrentTime(CurrentTime node, StackableAstVisitorContext context) { + public Type visitCurrentTime(CurrentTime node, StackableAstVisitorContext context) { if (requireNonNull(node.getFunction()) == CurrentTime.Function.TIMESTAMP) { return setExpressionType(node, INT64); } @@ -497,7 +498,7 @@ protected Type visitCurrentTime(CurrentTime node, StackableAstVisitorContext context) { // if (context.getContext().isInLambda()) { // Optional resolvedField = @@ -514,7 +515,7 @@ protected Type visitSymbolReference( } @Override - protected Type visitIdentifier(Identifier node, StackableAstVisitorContext context) { + public Type visitIdentifier(Identifier node, StackableAstVisitorContext context) { ResolvedField resolvedField = context.getContext().getScope().resolveField(node, QualifiedName.of(node.getValue())); @@ -575,7 +576,7 @@ private Type handleResolvedField( } @Override - protected Type visitDereferenceExpression( + public Type visitDereferenceExpression( DereferenceExpression node, StackableAstVisitorContext context) { if (isQualifiedAllFieldsReference(node)) { throw new SemanticException(".* not allowed in this context"); @@ -639,7 +640,7 @@ protected Type visitDereferenceExpression( return handleResolvedField(node, resolvedField.get(), context); } if (!scope.isColumnReference(qualifiedName)) { - TableMetadataImpl.throwColumnNotExistsException(qualifiedName); + CommonMetadataUtils.throwColumnNotExistsException(qualifiedName); } } @@ -669,14 +670,14 @@ protected Type visitDereferenceExpression( } if (rowFieldType == null) { - TableMetadataImpl.throwColumnNotExistsException(qualifiedName); + CommonMetadataUtils.throwColumnNotExistsException(qualifiedName); } return setExpressionType(node, rowFieldType); } @Override - protected Type visitNotExpression( + public Type visitNotExpression( NotExpression node, StackableAstVisitorContext context) { coerceType(context, node.getValue(), BOOLEAN, "Value of logical NOT expression"); @@ -684,7 +685,7 @@ protected Type visitNotExpression( } @Override - protected Type visitLogicalExpression( + public Type visitLogicalExpression( LogicalExpression node, StackableAstVisitorContext context) { for (Expression term : node.getTerms()) { coerceType(context, term, BOOLEAN, "Logical expression term"); @@ -694,7 +695,7 @@ protected Type visitLogicalExpression( } @Override - protected Type visitComparisonExpression( + public Type visitComparisonExpression( ComparisonExpression node, StackableAstVisitorContext context) { OperatorType operatorType = null; switch (node.getOperator()) { @@ -719,7 +720,7 @@ protected Type visitComparisonExpression( } @Override - protected Type visitIsNullPredicate( + public Type visitIsNullPredicate( IsNullPredicate node, StackableAstVisitorContext context) { process(node.getValue(), context); @@ -727,7 +728,7 @@ protected Type visitIsNullPredicate( } @Override - protected Type visitIsNotNullPredicate( + public Type visitIsNotNullPredicate( IsNotNullPredicate node, StackableAstVisitorContext context) { process(node.getValue(), context); @@ -735,7 +736,7 @@ protected Type visitIsNotNullPredicate( } @Override - protected Type visitNullIfExpression( + public Type visitNullIfExpression( NullIfExpression node, StackableAstVisitorContext context) { Type firstType = process(node.getFirst(), context); Type secondType = process(node.getSecond(), context); @@ -749,8 +750,7 @@ protected Type visitNullIfExpression( } @Override - protected Type visitIfExpression( - IfExpression node, StackableAstVisitorContext context) { + public Type visitIfExpression(IfExpression node, StackableAstVisitorContext context) { coerceType(context, node.getCondition(), BOOLEAN, "IF condition"); Type type; @@ -770,7 +770,7 @@ protected Type visitIfExpression( } @Override - protected Type visitSearchedCaseExpression( + public Type visitSearchedCaseExpression( SearchedCaseExpression node, StackableAstVisitorContext context) { for (WhenClause whenClause : node.getWhenClauses()) { coerceType(context, whenClause.getOperand(), BOOLEAN, "CASE WHEN clause"); @@ -792,7 +792,7 @@ protected Type visitSearchedCaseExpression( } @Override - protected Type visitSimpleCaseExpression( + public Type visitSimpleCaseExpression( SimpleCaseExpression node, StackableAstVisitorContext context) { coerceCaseOperandToToSingleType(node, context); @@ -855,7 +855,7 @@ private List getCaseResultExpressions( } @Override - protected Type visitCoalesceExpression( + public Type visitCoalesceExpression( CoalesceExpression node, StackableAstVisitorContext context) { Type type = coerceToSingleType(context, "All COALESCE operands", node.getOperands()); @@ -863,7 +863,7 @@ protected Type visitCoalesceExpression( } @Override - protected Type visitArithmeticUnary( + public Type visitArithmeticUnary( ArithmeticUnaryExpression node, StackableAstVisitorContext context) { switch (node.getSign()) { case PLUS: @@ -886,7 +886,7 @@ protected Type visitArithmeticUnary( } @Override - protected Type visitArithmeticBinary( + public Type visitArithmeticBinary( ArithmeticBinaryExpression node, StackableAstVisitorContext context) { return getOperator( context, @@ -897,7 +897,7 @@ protected Type visitArithmeticBinary( } @Override - protected Type visitLikePredicate( + public Type visitLikePredicate( LikePredicate node, StackableAstVisitorContext context) { Type valueType = process(node.getValue(), context); if (!isCharType(valueType)) { @@ -929,19 +929,19 @@ protected Type visitLikePredicate( } @Override - protected Type visitStringLiteral( + public Type visitStringLiteral( StringLiteral node, StackableAstVisitorContext context) { return setExpressionType(node, STRING); } @Override - protected Type visitBinaryLiteral( + public Type visitBinaryLiteral( BinaryLiteral node, StackableAstVisitorContext context) { return setExpressionType(node, BLOB); } @Override - protected Type visitLongLiteral(LongLiteral node, StackableAstVisitorContext context) { + public Type visitLongLiteral(LongLiteral node, StackableAstVisitorContext context) { if (node.getParsedValue() >= Integer.MIN_VALUE && node.getParsedValue() <= Integer.MAX_VALUE) { return setExpressionType(node, INT32); @@ -951,43 +951,41 @@ protected Type visitLongLiteral(LongLiteral node, StackableAstVisitorContext context) { return setExpressionType(node, DOUBLE); } @Override - protected Type visitFloatLiteral( - FloatLiteral node, StackableAstVisitorContext context) { + public Type visitFloatLiteral(FloatLiteral node, StackableAstVisitorContext context) { return setExpressionType(node, FLOAT); } @Override - protected Type visitDecimalLiteral( + public Type visitDecimalLiteral( DecimalLiteral node, StackableAstVisitorContext context) { throw new SemanticException("DecimalLiteral is not supported yet."); } @Override - protected Type visitBooleanLiteral( + public Type visitBooleanLiteral( BooleanLiteral node, StackableAstVisitorContext context) { return setExpressionType(node, BOOLEAN); } @Override - protected Type visitGenericLiteral( + public Type visitGenericLiteral( GenericLiteral node, StackableAstVisitorContext context) { throw new SemanticException("GenericLiteral is not supported yet."); } @Override - protected Type visitNullLiteral(NullLiteral node, StackableAstVisitorContext context) { + public Type visitNullLiteral(NullLiteral node, StackableAstVisitorContext context) { return setExpressionType(node, UNKNOWN); } @Override - protected Type visitFunctionCall( - FunctionCall node, StackableAstVisitorContext context) { + public Type visitFunctionCall(FunctionCall node, StackableAstVisitorContext context) { String functionName = node.getName().getSuffix(); boolean isAggregation = metadata.isAggregationFunction(session, functionName, accessControl); boolean isRowPatternCount = @@ -1616,18 +1614,18 @@ private void checkNoNestedNavigations(FunctionCall node) { } @Override - protected Type visitCurrentDatabase( + public Type visitCurrentDatabase( CurrentDatabase node, StackableAstVisitorContext context) { return setExpressionType(node, STRING); } @Override - protected Type visitCurrentUser(CurrentUser node, StackableAstVisitorContext context) { + public Type visitCurrentUser(CurrentUser node, StackableAstVisitorContext context) { return setExpressionType(node, STRING); } @Override - protected Type visitTrim(Trim node, StackableAstVisitorContext context) { + public Type visitTrim(Trim node, StackableAstVisitorContext context) { ImmutableList.Builder argumentTypes = ImmutableList.builder(); argumentTypes.add(process(node.getTrimSource(), context)); @@ -1642,7 +1640,7 @@ protected Type visitTrim(Trim node, StackableAstVisitorContext context) } @Override - protected Type visitParameter(Parameter node, StackableAstVisitorContext context) { + public Type visitParameter(Parameter node, StackableAstVisitorContext context) { if (parameters.isEmpty()) { throw new SemanticException("Query takes no parameters"); @@ -1663,7 +1661,7 @@ protected Type visitParameter(Parameter node, StackableAstVisitorContext context) { + public Type visitExtract(Extract node, StackableAstVisitorContext context) { if (node.getExpression() instanceof LongLiteral) { // Don't visit child here to avoid setting its Type to INT32 setExpressionType(node.getExpression(), INT64); @@ -1679,7 +1677,7 @@ protected Type visitExtract(Extract node, StackableAstVisitorContext co } @Override - protected Type visitBetweenPredicate( + public Type visitBetweenPredicate( BetweenPredicate node, StackableAstVisitorContext context) { Type valueType = process(node.getValue(), context); Type minType = process(node.getMin(), context); @@ -1722,7 +1720,7 @@ public Type visitCast(Cast node, StackableAstVisitorContext context) { } @Override - protected Type visitInPredicate(InPredicate node, StackableAstVisitorContext context) { + public Type visitInPredicate(InPredicate node, StackableAstVisitorContext context) { Expression value = node.getValue(); // Attention: remove this check after supporting RowType if (value instanceof Row) { @@ -1774,7 +1772,7 @@ protected Type visitInPredicate(InPredicate node, StackableAstVisitorContext context) { Type type = analyzeSubquery(node, context); @@ -2036,7 +2034,7 @@ private void analyzeFrameRangeOffset( } @Override - protected Type visitExists(ExistsPredicate node, StackableAstVisitorContext context) { + public Type visitExists(ExistsPredicate node, StackableAstVisitorContext context) { StatementAnalyzer analyzer = statementAnalyzerFactory.apply(node, context.getContext().getCorrelationSupport()); Scope subqueryScope = Scope.builder().withParent(context.getContext().getScope()).build(); @@ -2066,7 +2064,7 @@ protected Type visitExists(ExistsPredicate node, StackableAstVisitorContext context) { quantifiedComparisons.add(NodeRef.of(node)); @@ -2112,19 +2110,19 @@ public Type visitFieldReference( } @Override - protected Type visitExpression(Expression node, StackableAstVisitorContext context) { + public Type visitExpression(Expression node, StackableAstVisitorContext context) { throw new SemanticException( String.format("not yet implemented: %s", node.getClass().getName())); } @Override - protected Type visitNode(Node node, StackableAstVisitorContext context) { + public Type visitNode(Node node, StackableAstVisitorContext context) { throw new SemanticException( String.format("not yet implemented: %s", node.getClass().getName())); } @Override - protected Type visitColumns(Columns node, StackableAstVisitorContext context) { + public Type visitColumns(Columns node, StackableAstVisitorContext context) { throw new SemanticException("Columns only support to be used in SELECT and WHERE clause"); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionTreeUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionTreeUtils.java index ce4f8253863f3..2abf38d60aec3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionTreeUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionTreeUtils.java @@ -19,15 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DefaultExpressionTraversalVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.udf.TableUDFUtils; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Field.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Field.java index 1c2ef2774b3ad..a8417ba73a9c0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Field.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Field.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PatternRecognitionAnalysis.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PatternRecognitionAnalysis.java index 3ee1949c8d232..c9dec8cb9cb19 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PatternRecognitionAnalysis.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PatternRecognitionAnalysis.java @@ -19,10 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RangeQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RangeQuantifier; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PatternRecognitionAnalyzer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PatternRecognitionAnalyzer.java index 2e71103eb951b..eee02db217c00 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PatternRecognitionAnalyzer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PatternRecognitionAnalyzer.java @@ -19,21 +19,22 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExcludedPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.MeasureDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RangeQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubsetDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.VariableDefinition; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis.Range; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExcludedPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.MeasureDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RangeQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubsetDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.VariableDefinition; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -48,8 +49,8 @@ import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableSet.toImmutableSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ProcessingMode.Mode.FINAL; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.ExpressionTreeUtils.extractExpressions; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ProcessingMode.Mode.FINAL; import static org.apache.iotdb.db.queryengine.plan.relational.sql.util.AstUtil.preOrder; public class PatternRecognitionAnalyzer { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/RelationId.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/RelationId.java index 6afa4686cc740..f6b6778865271 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/RelationId.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/RelationId.java @@ -19,7 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; import java.util.Objects; import java.util.Optional; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/RelationType.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/RelationType.java index 69658c39dd313..5fce0ad2af1cb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/RelationType.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/RelationType.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Scope.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Scope.java index d06529c00506f..19ff9fa8f369e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Scope.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/Scope.java @@ -20,13 +20,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; import org.apache.iotdb.commons.exception.IoTDBException; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AllColumns; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WithQuery; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AllColumns; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WithQuery; import org.apache.iotdb.rpc.TSStatusCode; import com.google.common.collect.ImmutableMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ScopeReferenceExtractor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ScopeReferenceExtractor.java index 215022a0bac34..806b08e792ee4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ScopeReferenceExtractor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ScopeReferenceExtractor.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; import java.util.Map; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java index dade85d20b1be..2c838406f47de 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java @@ -19,15 +19,109 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils; import org.apache.iotdb.commons.exception.IoTDBException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.function.TableBuiltinTableFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AliasedRelation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AllColumns; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AllRows; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Columns; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Except; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExistsPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FieldReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Fill; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupingElement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupingSets; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Intersect; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinCriteria; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinOn; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinUsing; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Limit; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.MeasureDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NaturalJoin; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Offset; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuerySpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Relation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Select; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SelectItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SetOperation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleGroupBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SingleColumn; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubsetDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableFunctionArgument; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableFunctionInvocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableFunctionTableArgument; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableSubquery; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TimeDurationLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Trim; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Union; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Values; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.VariableDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Window; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.With; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WithQuery; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeManager; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; +import org.apache.iotdb.commons.queryengine.utils.cte.CteDataStore; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.MPPQueryContext.ExplainType; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.warnings.IoTDBWarning; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; import org.apache.iotdb.db.queryengine.plan.analyze.AnalyzeUtils; @@ -40,34 +134,19 @@ import org.apache.iotdb.db.queryengine.plan.relational.analyzer.tablefunction.ArgumentsAnalysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.tablefunction.TableArgumentAnalysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.tablefunction.TableFunctionInvocationAnalysis; -import org.apache.iotdb.db.queryengine.plan.relational.function.TableBuiltinTableFunction; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; import org.apache.iotdb.db.queryengine.plan.relational.planner.ScopeAware; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.TranslationMap; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AbstractQueryDeviceWithCache; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AbstractTraverseDevice; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AddColumn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AliasedRelation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AllColumns; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AllRows; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AlterDB; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AlterPipe; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AsofJoinOn; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Columns; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CopyTo; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CountDevice; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateDB; @@ -80,7 +159,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateView; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Delete; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DeleteDevice; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DescribeTable; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropColumn; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropDB; @@ -91,64 +169,18 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropSubscription; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropTable; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropTopic; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Except; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExistsPredicate; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Explain; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExplainAnalyze; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FetchDevice; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FieldReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Fill; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GroupBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GroupingElement; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GroupingSets; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Insert; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRow; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRows; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertTablet; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Intersect; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinCriteria; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinOn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinUsing; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Limit; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.MeasureDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NaturalJoin; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Offset; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OrderBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PipeEnriched; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Property; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuerySpecification; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Relation; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RenameColumn; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RenameTable; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Row; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Select; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SelectItem; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetOperation; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetProperties; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDB; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDevice; @@ -159,47 +191,16 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowSubscriptions; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowTables; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowTopics; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleGroupBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SingleColumn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StartPipe; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StopPipe; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubsetDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableFunctionArgument; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableFunctionInvocation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableFunctionTableArgument; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableSubquery; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TimeDurationLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Trim; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Union; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Update; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.UpdateAssignment; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Use; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Values; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.VariableDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Window; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.With; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WithQuery; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WrappedInsertStatement; import org.apache.iotdb.db.queryengine.plan.relational.type.CompatibleResolver; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager; -import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertBaseStatement; import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; import org.apache.iotdb.db.schemaengine.table.DataNodeTreeViewSchemaUtils; -import org.apache.iotdb.db.utils.cte.CteDataStore; import org.apache.iotdb.rpc.RpcUtils; import org.apache.iotdb.rpc.TSStatusCode; import org.apache.iotdb.udf.api.exception.UDFException; @@ -270,6 +271,14 @@ import static java.util.Collections.emptyList; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isTimestampType; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.ForecastTableFunction.TIMECOL_PARAMETER_NAME; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression.getQualifiedName; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join.Type.FULL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join.Type.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join.Type.LEFT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join.Type.RIGHT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch.ONE; import static org.apache.iotdb.commons.schema.table.TsTable.TABLE_ALLOWED_PROPERTIES; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction.DATE_BIN; import static org.apache.iotdb.db.queryengine.execution.warnings.StandardWarningCode.REDUNDANT_ORDER_BY; @@ -281,16 +290,8 @@ import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.ExpressionTreeUtils.extractWindowExpressions; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.ExpressionTreeUtils.extractWindowFunctions; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.Scope.BasisType.TABLE; -import static org.apache.iotdb.db.queryengine.plan.relational.function.tvf.ForecastTableFunction.TIMECOL_PARAMETER_NAME; import static org.apache.iotdb.db.queryengine.plan.relational.metadata.MetadataUtil.createQualifiedObjectName; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isTimestampType; import static org.apache.iotdb.db.queryengine.plan.relational.planner.IrExpressionInterpreter.evaluateConstantExpression; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression.getQualifiedName; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.FULL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.INNER; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.LEFT; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.RIGHT; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch.ONE; import static org.apache.iotdb.db.queryengine.plan.relational.sql.util.AstUtil.preOrder; import static org.apache.iotdb.db.queryengine.plan.relational.utils.NodeUtils.getSortItemsFromOrderBy; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; @@ -366,7 +367,7 @@ private enum UpdateKind { * Visitor context represents local query scope (if exists). The invariant is that the local query * scopes hierarchy should always have outer query scope (if provided) as ancestor. */ - private final class Visitor extends AstVisitor> { + private final class Visitor implements AstVisitor> { private final boolean isTopLevel; private final Optional outerQueryScope; @@ -386,7 +387,7 @@ private Visitor( @Override public Scope process(Node node, final Optional scope) { - final Scope returnScope = super.process(node, scope); + final Scope returnScope = AstVisitor.super.process(node, scope); if (node instanceof PipeEnriched) { node = ((PipeEnriched) node).getInnerStatement(); } @@ -414,100 +415,100 @@ private Scope process(Node node, Scope scope) { } @Override - protected Scope visitNode(Node node, Optional context) { + public Scope visitNode(Node node, Optional context) { throw new IllegalStateException("Unsupported node type: " + node.getClass().getName()); } @Override - protected Scope visitCreateDB(CreateDB node, Optional context) { + public Scope visitCreateDB(CreateDB node, Optional context) { throw new SemanticException("Create Database statement is not supported yet."); } @Override - protected Scope visitAlterDB(AlterDB node, Optional context) { + public Scope visitAlterDB(AlterDB node, Optional context) { throw new SemanticException("Alter Database statement is not supported yet."); } @Override - protected Scope visitDropDB(DropDB node, Optional context) { + public Scope visitDropDB(DropDB node, Optional context) { throw new SemanticException("Drop Database statement is not supported yet."); } @Override - protected Scope visitShowDB(ShowDB node, Optional context) { + public Scope visitShowDB(ShowDB node, Optional context) { throw new SemanticException("Show Database statement is not supported yet."); } @Override - protected Scope visitCreateTable(final CreateTable node, final Optional context) { + public Scope visitCreateTable(final CreateTable node, final Optional context) { validateProperties(node.getProperties(), context); return createAndAssignScope(node, context); } @Override - protected Scope visitCreateView(final CreateView node, final Optional context) { + public Scope visitCreateView(final CreateView node, final Optional context) { validateProperties(node.getProperties(), context); return createAndAssignScope(node, context); } @Override - protected Scope visitDropTable(final DropTable node, final Optional context) { + public Scope visitDropTable(final DropTable node, final Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitShowTables(ShowTables node, Optional context) { + public Scope visitShowTables(ShowTables node, Optional context) { throw new SemanticException("Show Tables statement is not supported yet."); } @Override - protected Scope visitRenameTable(RenameTable node, Optional context) { + public Scope visitRenameTable(RenameTable node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitDescribeTable(DescribeTable node, Optional context) { + public Scope visitDescribeTable(DescribeTable node, Optional context) { throw new SemanticException("Describe Table statement is not supported yet."); } @Override - protected Scope visitSetProperties(final SetProperties node, final Optional context) { + public Scope visitSetProperties(final SetProperties node, final Optional context) { validateProperties(node.getProperties(), context); return createAndAssignScope(node, context); } @Override - protected Scope visitRenameColumn(RenameColumn node, Optional context) { + public Scope visitRenameColumn(RenameColumn node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitDropColumn(DropColumn node, Optional context) { + public Scope visitDropColumn(DropColumn node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitAddColumn(AddColumn node, Optional context) { + public Scope visitAddColumn(AddColumn node, Optional context) { throw new SemanticException("Add Column statement is not supported yet."); } @Override - protected Scope visitCreateIndex(CreateIndex node, Optional context) { + public Scope visitCreateIndex(CreateIndex node, Optional context) { throw new SemanticException("Create Index statement is not supported yet."); } @Override - protected Scope visitDropIndex(DropIndex node, Optional context) { + public Scope visitDropIndex(DropIndex node, Optional context) { throw new SemanticException("Drop Index statement is not supported yet."); } @Override - protected Scope visitShowIndex(ShowIndex node, Optional context) { + public Scope visitShowIndex(ShowIndex node, Optional context) { throw new SemanticException("Show Index statement is not supported yet."); } @Override - protected Scope visitUpdate(final Update node, final Optional context) { + public Scope visitUpdate(final Update node, final Optional context) { queryContext.setQueryType(QueryType.WRITE); node.parseTable(sessionContext); accessControl.checkCanInsertIntoTable( @@ -589,7 +590,7 @@ protected Scope visitUpdate(final Update node, final Optional context) { } @Override - protected Scope visitDeleteDevice(final DeleteDevice node, final Optional context) { + public Scope visitDeleteDevice(final DeleteDevice node, final Optional context) { // Actually write, but will return the result queryContext.setQueryType(QueryType.READ); node.parseTable(sessionContext); @@ -616,17 +617,17 @@ protected Scope visitDeleteDevice(final DeleteDevice node, final Optional } @Override - protected Scope visitDropFunction(DropFunction node, Optional context) { + public Scope visitDropFunction(DropFunction node, Optional context) { throw new SemanticException("Drop Function statement is not supported yet."); } @Override - protected Scope visitShowFunctions(ShowFunctions node, Optional context) { + public Scope visitShowFunctions(ShowFunctions node, Optional context) { throw new SemanticException("Show Function statement is not supported yet."); } @Override - protected Scope visitUse(Use node, Optional scope) { + public Scope visitUse(Use node, Optional scope) { throw new SemanticException("USE statement is not supported yet."); } @@ -657,7 +658,7 @@ private boolean typesMatchForInsert(List tableTypes, List queryTypes } @Override - protected Scope visitInsert(Insert insert, Optional scope) { + public Scope visitInsert(Insert insert, Optional scope) { queryContext.setQueryType(QueryType.READ_WRITE); // analyze the query that creates the data Scope queryScope = analyze(insert.getQuery(), Optional.empty(), false); @@ -666,7 +667,7 @@ protected Scope visitInsert(Insert insert, Optional scope) { QualifiedObjectName targetTable = createQualifiedObjectName(sessionContext, insert.getTarget()); if (!metadata.tableExists(targetTable)) { - TableMetadataImpl.throwTableNotExistsException( + CommonMetadataUtils.throwTableNotExistsException( targetTable.getDatabaseName(), targetTable.getObjectName()); } // verify access privileges @@ -676,7 +677,7 @@ protected Scope visitInsert(Insert insert, Optional scope) { // verify the insert destination columns match the query Optional tableSchema = metadata.getTableSchema(sessionContext, targetTable); if (!tableSchema.isPresent()) { - TableMetadataImpl.throwTableNotExistsException( + CommonMetadataUtils.throwTableNotExistsException( targetTable.getDatabaseName(), targetTable.getObjectName()); } List columns = @@ -761,16 +762,16 @@ protected Scope visitInsert(Insert insert, Optional scope) { } @Override - protected Scope visitInsertRow(InsertRow node, Optional context) { + public Scope visitInsertRow(InsertRow node, Optional context) { return visitInsert(node, context); } - protected Scope visitInsertTablet(InsertTablet insert, Optional scope) { + public Scope visitInsertTablet(InsertTablet insert, Optional scope) { return visitInsert(insert, scope); } @Override - protected Scope visitInsertRows(InsertRows node, Optional context) { + public Scope visitInsertRows(InsertRows node, Optional context) { return visitInsert(node, context); } @@ -798,7 +799,7 @@ private Scope visitInsert(WrappedInsertStatement insert, Optional scope) } @Override - protected Scope visitDelete(Delete node, Optional scope) { + public Scope visitDelete(Delete node, Optional scope) { final Scope ret = Scope.create(); accessControl.checkCanDeleteFromTable( sessionContext.getUserName(), @@ -813,7 +814,7 @@ protected Scope visitDelete(Delete node, Optional scope) { } @Override - protected Scope visitPipeEnriched(PipeEnriched node, Optional scope) { + public Scope visitPipeEnriched(PipeEnriched node, Optional scope) { // The LoadTsFile statement is a special case, it needs isGeneratedByPipe information // in the analyzer to execute the tsfile-tablet conversion in some cases. if (node.getInnerStatement() instanceof LoadTsFile) { @@ -827,7 +828,7 @@ protected Scope visitPipeEnriched(PipeEnriched node, Optional scope) { } @Override - protected Scope visitLoadTsFile(final LoadTsFile node, final Optional scope) { + public Scope visitLoadTsFile(final LoadTsFile node, final Optional scope) { queryContext.setQueryType(QueryType.OTHER); try (final LoadTsFileAnalyzer loadTsFileAnalyzer = @@ -846,14 +847,14 @@ protected Scope visitLoadTsFile(final LoadTsFile node, final Optional sco } @Override - protected Scope visitExplain(Explain node, Optional context) { + public Scope visitExplain(Explain node, Optional context) { queryContext.setExplainType(ExplainType.EXPLAIN); analysis.setFinishQueryAfterAnalyze(); return visitQuery((Query) node.getStatement(), context); } @Override - protected Scope visitCopyTo(CopyTo node, Optional context) { + public Scope visitCopyTo(CopyTo node, Optional context) { accessControl.checkUserGlobalSysPrivilege(queryContext); Scope innerQueryScope = visitQuery((Query) node.getQueryStatement(), context); analysis.setScope(node, innerQueryScope); @@ -861,14 +862,14 @@ protected Scope visitCopyTo(CopyTo node, Optional context) { } @Override - protected Scope visitExplainAnalyze(ExplainAnalyze node, Optional context) { + public Scope visitExplainAnalyze(ExplainAnalyze node, Optional context) { queryContext.setExplainType(ExplainType.EXPLAIN_ANALYZE); queryContext.setVerbose(node.isVerbose()); return visitQuery((Query) node.getStatement(), context); } @Override - protected Scope visitQuery(Query node, Optional context) { + public Scope visitQuery(Query node, Optional context) { analysis.setQuery(true); Scope withScope = analyzeWith(node, context); hasFillInParentScope = node.getFill().isPresent() || hasFillInParentScope; @@ -1138,7 +1139,7 @@ private boolean tryProcessRecursiveQuery( } @Override - protected Scope visitTableSubquery(TableSubquery node, Optional scope) { + public Scope visitTableSubquery(TableSubquery node, Optional scope) { StatementAnalyzer analyzer = statementAnalyzerFactory.createStatementAnalyzer( analysis, queryContext, sessionContext, warningCollector, CorrelationSupport.ALLOWED); @@ -1151,7 +1152,7 @@ protected Scope visitTableSubquery(TableSubquery node, Optional scope) { } @Override - protected Scope visitQuerySpecification(QuerySpecification node, Optional scope) { + public Scope visitQuerySpecification(QuerySpecification node, Optional scope) { // TODO: extract candidate names from SELECT, WHERE, HAVING, GROUP BY and ORDER BY expressions // to pass down to analyzeFrom hasFillInParentScope = node.getFill().isPresent() || hasFillInParentScope; @@ -1583,7 +1584,7 @@ private Node containsColumnsHelper(Node node) { return target; } - private class ExpandColumnsVisitor extends AstVisitor, Scope> { + private class ExpandColumnsVisitor implements AstVisitor, Scope> { private final Identifier alias; // Record Columns expanded result in process, not always equals with final result private List expandedExpressions; @@ -1598,12 +1599,12 @@ public List getAccordingColumnNames() { return accordingColumnNames; } - protected List visitNode(Node node, Scope scope) { + public List visitNode(Node node, Scope scope) { throw new UnsupportedOperationException( "This Visitor only supported process of Expression"); } - protected List visitExpression(Expression node, Scope scope) { + public List visitExpression(Expression node, Scope scope) { if (node.getChildren().isEmpty()) { return Collections.singletonList(node); } @@ -1680,7 +1681,7 @@ public List visitColumns(Columns node, Scope context) { } @Override - protected List visitArithmeticBinary( + public List visitArithmeticBinary( ArithmeticBinaryExpression node, Scope context) { List leftResult = process(node.getLeft(), context); List rightResult = process(node.getRight(), context); @@ -1713,8 +1714,7 @@ protected List visitArithmeticBinary( } @Override - protected List visitArithmeticUnary( - ArithmeticUnaryExpression node, Scope context) { + public List visitArithmeticUnary(ArithmeticUnaryExpression node, Scope context) { List childResult = process(node.getValue(), context); if (expandedExpressions == null) { // no Columns need to be expanded @@ -1730,7 +1730,7 @@ protected List visitArithmeticUnary( } @Override - protected List visitBetweenPredicate(BetweenPredicate node, Scope context) { + public List visitBetweenPredicate(BetweenPredicate node, Scope context) { List valueResult = process(node.getValue(), context); List minResult = process(node.getMin(), context); List maxResult = process(node.getMax(), context); @@ -1764,7 +1764,7 @@ protected List visitBetweenPredicate(BetweenPredicate node, Scope co } @Override - protected List visitCast(Cast node, Scope context) { + public List visitCast(Cast node, Scope context) { List childResult = process(node.getExpression(), context); if (expandedExpressions == null) { // no Columns need to be expanded @@ -1780,7 +1780,7 @@ protected List visitCast(Cast node, Scope context) { } @Override - protected List visitCoalesceExpression(CoalesceExpression node, Scope context) { + public List visitCoalesceExpression(CoalesceExpression node, Scope context) { ImmutableList.Builder> childrenResultListBuilder = new ImmutableList.Builder<>(); node.getOperands() @@ -1815,8 +1815,7 @@ protected List visitCoalesceExpression(CoalesceExpression node, Scop } @Override - protected List visitComparisonExpression( - ComparisonExpression node, Scope context) { + public List visitComparisonExpression(ComparisonExpression node, Scope context) { List leftResult = process(node.getLeft(), context); List rightResult = process(node.getRight(), context); @@ -1848,7 +1847,7 @@ protected List visitComparisonExpression( } @Override - protected List visitDereferenceExpression( + public List visitDereferenceExpression( DereferenceExpression node, Scope context) { process(node.getBase(), context); if (expandedExpressions == null) { @@ -1858,13 +1857,13 @@ protected List visitDereferenceExpression( } @Override - protected List visitExists(ExistsPredicate node, Scope context) { + public List visitExists(ExistsPredicate node, Scope context) { // We don't need to process Query here return Collections.singletonList(node); } @Override - protected List visitFunctionCall(FunctionCall node, Scope context) { + public List visitFunctionCall(FunctionCall node, Scope context) { ImmutableList.Builder> childrenResultListBuilder = new ImmutableList.Builder<>(); node.getArguments() @@ -1899,12 +1898,12 @@ protected List visitFunctionCall(FunctionCall node, Scope context) { } @Override - protected List visitIdentifier(Identifier node, Scope context) { + public List visitIdentifier(Identifier node, Scope context) { return Collections.singletonList(node); } @Override - protected List visitIfExpression(IfExpression node, Scope context) { + public List visitIfExpression(IfExpression node, Scope context) { List firstResult = process(node.getCondition(), context); List secondResult = process(node.getTrueValue(), context); List thirdResult = @@ -1939,7 +1938,7 @@ protected List visitIfExpression(IfExpression node, Scope context) { } @Override - protected List visitInListExpression(InListExpression node, Scope context) { + public List visitInListExpression(InListExpression node, Scope context) { ImmutableList.Builder> childrenResultListBuilder = new ImmutableList.Builder<>(); node.getValues() @@ -1974,7 +1973,7 @@ protected List visitInListExpression(InListExpression node, Scope co } @Override - protected List visitInPredicate(InPredicate node, Scope context) { + public List visitInPredicate(InPredicate node, Scope context) { List leftResult = process(node.getValue(), context); List rightResult = process(node.getValueList(), context); @@ -2003,7 +2002,7 @@ protected List visitInPredicate(InPredicate node, Scope context) { } @Override - protected List visitIsNotNullPredicate(IsNotNullPredicate node, Scope context) { + public List visitIsNotNullPredicate(IsNotNullPredicate node, Scope context) { List childResult = process(node.getValue(), context); if (expandedExpressions == null) { // no Columns need to be expanded @@ -2019,7 +2018,7 @@ protected List visitIsNotNullPredicate(IsNotNullPredicate node, Scop } @Override - protected List visitIsNullPredicate(IsNullPredicate node, Scope context) { + public List visitIsNullPredicate(IsNullPredicate node, Scope context) { List childResult = process(node.getValue(), context); if (expandedExpressions == null) { // no Columns need to be expanded @@ -2035,7 +2034,7 @@ protected List visitIsNullPredicate(IsNullPredicate node, Scope cont } @Override - protected List visitLikePredicate(LikePredicate node, Scope context) { + public List visitLikePredicate(LikePredicate node, Scope context) { List firstResult = process(node.getValue(), context); List secondResult = process(node.getPattern(), context); List thirdResult = @@ -2070,12 +2069,12 @@ protected List visitLikePredicate(LikePredicate node, Scope context) } @Override - protected List visitLiteral(Literal node, Scope context) { + public List visitLiteral(Literal node, Scope context) { return Collections.singletonList(node); } @Override - protected List visitLogicalExpression(LogicalExpression node, Scope context) { + public List visitLogicalExpression(LogicalExpression node, Scope context) { ImmutableList.Builder> childrenResultListBuilder = new ImmutableList.Builder<>(); node.getTerms() @@ -2110,7 +2109,7 @@ protected List visitLogicalExpression(LogicalExpression node, Scope } @Override - protected List visitNotExpression(NotExpression node, Scope context) { + public List visitNotExpression(NotExpression node, Scope context) { List childResult = process(node.getValue(), context); if (expandedExpressions == null) { // no Columns need to be expanded @@ -2126,13 +2125,13 @@ protected List visitNotExpression(NotExpression node, Scope context) } @Override - protected List visitNullIfExpression(NullIfExpression node, Scope context) { + public List visitNullIfExpression(NullIfExpression node, Scope context) { throw new SemanticException( String.format("%s are not supported now", node.getClass().getSimpleName())); } @Override - protected List visitQuantifiedComparisonExpression( + public List visitQuantifiedComparisonExpression( QuantifiedComparisonExpression node, Scope context) { List childResult = process(node.getValue(), context); if (expandedExpressions == null) { @@ -2151,13 +2150,13 @@ protected List visitQuantifiedComparisonExpression( } @Override - protected List visitRow(Row node, Scope context) { + public List visitRow(Row node, Scope context) { throw new SemanticException( String.format("%s are not supported now", node.getClass().getSimpleName())); } @Override - protected List visitExtract(Extract node, Scope context) { + public List visitExtract(Extract node, Scope context) { List childResult = process(node.getExpression(), context); if (expandedExpressions == null) { // no Columns need to be expanded @@ -2173,7 +2172,7 @@ protected List visitExtract(Extract node, Scope context) { } @Override - protected List visitSearchedCaseExpression( + public List visitSearchedCaseExpression( SearchedCaseExpression node, Scope context) { ImmutableList.Builder> firstChildResultListBuilder = new ImmutableList.Builder<>(); @@ -2222,8 +2221,7 @@ protected List visitSearchedCaseExpression( } @Override - protected List visitSimpleCaseExpression( - SimpleCaseExpression node, Scope context) { + public List visitSimpleCaseExpression(SimpleCaseExpression node, Scope context) { List firstResult = process(node.getOperand(), context); ImmutableList.Builder> whenResultListBuilder = new ImmutableList.Builder<>(); @@ -2273,13 +2271,13 @@ protected List visitSimpleCaseExpression( } @Override - protected List visitSubqueryExpression(SubqueryExpression node, Scope context) { + public List visitSubqueryExpression(SubqueryExpression node, Scope context) { // We don't need to process Query here return Collections.singletonList(node); } @Override - protected List visitTrim(Trim node, Scope context) { + public List visitTrim(Trim node, Scope context) { List firstResult = process(node.getTrimSource(), context); List secondResult = node.getTrimCharacter().isPresent() @@ -2313,7 +2311,7 @@ protected List visitTrim(Trim node, Scope context) { } @Override - protected List visitWhenClause(WhenClause node, Scope context) { + public List visitWhenClause(WhenClause node, Scope context) { List leftResult = process(node.getOperand(), context); List rightResult = process(node.getResult(), context); @@ -2993,12 +2991,12 @@ private Scope computeAndAssignFillScope(Fill node, Scope sourceScope, Scope outp } @Override - protected Scope visitSubqueryExpression(SubqueryExpression node, Optional context) { + public Scope visitSubqueryExpression(SubqueryExpression node, Optional context) { return process(node.getQuery(), context); } @Override - protected Scope visitSetOperation(SetOperation node, Optional scope) { + public Scope visitSetOperation(SetOperation node, Optional scope) { checkState(node.getRelations().size() >= 2); List childrenTypes = @@ -3088,7 +3086,7 @@ protected Scope visitSetOperation(SetOperation node, Optional scope) { } @Override - protected Scope visitTable(Table table, Optional scope) { + public Scope visitTable(Table table, Optional scope) { if (!table.getName().getPrefix().isPresent()) { scope.ifPresent(s -> s.addTable(table)); // is this a reference to a WITH query? @@ -3154,7 +3152,7 @@ protected Scope visitTable(Table table, Optional scope) { // This can only be a table if (!tableSchema.isPresent()) { - TableMetadataImpl.throwTableNotExistsException( + CommonMetadataUtils.throwTableNotExistsException( name.getDatabaseName(), name.getObjectName()); } analysis.addEmptyColumnReferencesForTable(accessControl, sessionContext.getIdentity(), name); @@ -3289,7 +3287,7 @@ private List analyzeTableOutputFields( // accessControlScope, filter)); // } - protected Scope visitPatternRecognitionRelation( + public Scope visitPatternRecognitionRelation( PatternRecognitionRelation relation, Optional scope) { Scope inputScope = process(relation.getInput(), scope); @@ -3501,7 +3499,7 @@ private ExpressionAnalysis analyzePatternRecognitionExpression( } @Override - protected Scope visitValues(Values node, Optional scope) { + public Scope visitValues(Values node, Optional scope) { checkState(!node.getRows().isEmpty()); List rowTypes = @@ -3600,7 +3598,7 @@ protected Scope visitValues(Values node, Optional scope) { } @Override - protected Scope visitAliasedRelation(AliasedRelation relation, Optional scope) { + public Scope visitAliasedRelation(AliasedRelation relation, Optional scope) { analysis.setRelationName(relation, QualifiedName.of(ImmutableList.of(relation.getAlias()))); analysis.addAliased(relation.getRelation()); Scope relationScope = process(relation.getRelation(), scope); @@ -3647,7 +3645,7 @@ protected Scope visitAliasedRelation(AliasedRelation relation, Optional s } @Override - protected Scope visitJoin(Join node, Optional scope) { + public Scope visitJoin(Join node, Optional scope) { JoinCriteria criteria = node.getCriteria().orElse(null); joinConditionCheck(criteria); @@ -4547,7 +4545,7 @@ private Scope.Builder scopeBuilder(Optional parentScope) { } @Override - protected Scope visitCreateOrUpdateDevice( + public Scope visitCreateOrUpdateDevice( final CreateOrUpdateDevice node, final Optional context) { queryContext.setQueryType(QueryType.OTHER); DataNodeSchemaLockManager.getInstance() @@ -4558,12 +4556,12 @@ protected Scope visitCreateOrUpdateDevice( } @Override - protected Scope visitFetchDevice(final FetchDevice node, final Optional context) { + public Scope visitFetchDevice(final FetchDevice node, final Optional context) { return null; } @Override - protected Scope visitShowDevice(final ShowDevice node, final Optional context) { + public Scope visitShowDevice(final ShowDevice node, final Optional context) { analyzeQueryDevice(node, context); // TODO: use real scope when parameter in offset and limit is supported if (Objects.nonNull(node.getOffset())) { @@ -4576,7 +4574,7 @@ protected Scope visitShowDevice(final ShowDevice node, final Optional con } @Override - protected Scope visitCountDevice(final CountDevice node, final Optional context) { + public Scope visitCountDevice(final CountDevice node, final Optional context) { analyzeQueryDevice(node, context); return null; } @@ -4623,7 +4621,7 @@ private TranslationMap analyzeTraverseDevice( } if (!metadata.tableExists(new QualifiedObjectName(database, tableName))) { - TableMetadataImpl.throwTableNotExistsException(database, tableName); + CommonMetadataUtils.throwTableNotExistsException(database, tableName); } node.setColumnHeaderList(); @@ -4633,7 +4631,7 @@ private TranslationMap analyzeTraverseDevice( final Optional tableSchema = metadata.getTableSchema(sessionContext, name); // This can only be a table if (!tableSchema.isPresent()) { - TableMetadataImpl.throwTableNotExistsException(database, tableName); + CommonMetadataUtils.throwTableNotExistsException(database, tableName); } final TableSchema originalSchema = tableSchema.get(); @@ -4697,72 +4695,72 @@ private Pair analyzeAndRewriteExpression( } @Override - protected Scope visitCreatePipe(CreatePipe node, Optional context) { + public Scope visitCreatePipe(CreatePipe node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitAlterPipe(AlterPipe node, Optional context) { + public Scope visitAlterPipe(AlterPipe node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitDropPipe(DropPipe node, Optional context) { + public Scope visitDropPipe(DropPipe node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitStartPipe(StartPipe node, Optional context) { + public Scope visitStartPipe(StartPipe node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitStopPipe(StopPipe node, Optional context) { + public Scope visitStopPipe(StopPipe node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitShowPipes(ShowPipes node, Optional context) { + public Scope visitShowPipes(ShowPipes node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitCreatePipePlugin(CreatePipePlugin node, Optional context) { + public Scope visitCreatePipePlugin(CreatePipePlugin node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitDropPipePlugin(DropPipePlugin node, Optional context) { + public Scope visitDropPipePlugin(DropPipePlugin node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitShowPipePlugins(ShowPipePlugins node, Optional context) { + public Scope visitShowPipePlugins(ShowPipePlugins node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitCreateTopic(CreateTopic node, Optional context) { + public Scope visitCreateTopic(CreateTopic node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitDropTopic(DropTopic node, Optional context) { + public Scope visitDropTopic(DropTopic node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitShowTopics(ShowTopics node, Optional context) { + public Scope visitShowTopics(ShowTopics node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitShowSubscriptions(ShowSubscriptions node, Optional context) { + public Scope visitShowSubscriptions(ShowSubscriptions node, Optional context) { return createAndAssignScope(node, context); } @Override - protected Scope visitDropSubscription(DropSubscription node, Optional context) { + public Scope visitDropSubscription(DropSubscription node, Optional context) { return createAndAssignScope(node, context); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzerFactory.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzerFactory.java index c532731850c61..3772c63f86f97 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzerFactory.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzerFactory.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeManager; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager; import static java.util.Objects.requireNonNull; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/ConvertPredicateToFilterVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/ConvertPredicateToFilterVisitor.java index 59cf8b43c7c8e..8e84b5160154f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/ConvertPredicateToFilterVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/ConvertPredicateToFilterVisitor.java @@ -19,35 +19,35 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import com.google.common.collect.ImmutableList; import com.google.common.math.DoubleMath; @@ -76,12 +76,12 @@ import java.util.stream.Collectors; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.plan.expression.unary.LikeExpression.getEscapeCharacter; +import static org.apache.iotdb.calc.plan.relational.planner.ir.GlobalTimePredicateExtractVisitor.isExtractTimeColumn; +import static org.apache.iotdb.calc.plan.relational.planner.ir.GlobalTimePredicateExtractVisitor.isTimeColumn; +import static org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils.getEscapeCharacter; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.ConvertPredicateToTimeFilterVisitor.getLongValue; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.PredicatePushIntoScanChecker.isLiteral; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.PredicatePushIntoScanChecker.isSymbolReference; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.GlobalTimePredicateExtractVisitor.isExtractTimeColumn; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.GlobalTimePredicateExtractVisitor.isTimeColumn; import static org.apache.tsfile.enums.TSDataType.INT32; import static org.apache.tsfile.enums.TSDataType.INT64; import static org.apache.tsfile.read.common.type.TimestampType.TIMESTAMP; @@ -103,7 +103,7 @@ public ConvertPredicateToFilterVisitor( } @Override - protected Filter visitInPredicate(InPredicate node, Context context) { + public Filter visitInPredicate(InPredicate node, Context context) { Expression operand = node.getValue(); if (isTimeColumn(operand, timeColumnName)) { return timeFilterVisitor.process(node, null); @@ -376,12 +376,12 @@ public static > T getValue(Literal value, Type dataType) } @Override - protected Filter visitIsNullPredicate(IsNullPredicate node, Context context) { + public Filter visitIsNullPredicate(IsNullPredicate node, Context context) { throw new IllegalArgumentException("IS NULL cannot be pushed down"); } @Override - protected Filter visitIsNotNullPredicate(IsNotNullPredicate node, Context context) { + public Filter visitIsNotNullPredicate(IsNotNullPredicate node, Context context) { checkArgument(isSymbolReference(node.getValue())); SymbolReference operand = (SymbolReference) node.getValue(); checkArgument(context.isMeasurementColumn(operand)); @@ -390,7 +390,7 @@ protected Filter visitIsNotNullPredicate(IsNotNullPredicate node, Context contex } @Override - protected Filter visitLikePredicate(LikePredicate node, Context context) { + public Filter visitLikePredicate(LikePredicate node, Context context) { checkArgument(isSymbolReference(node.getValue())); SymbolReference operand = (SymbolReference) node.getValue(); checkArgument(context.isMeasurementColumn(operand)); @@ -408,7 +408,7 @@ protected Filter visitLikePredicate(LikePredicate node, Context context) { } @Override - protected Filter visitLogicalExpression(LogicalExpression node, Context context) { + public Filter visitLogicalExpression(LogicalExpression node, Context context) { switch (node.getOperator()) { case OR: return FilterFactory.or( @@ -423,12 +423,12 @@ protected Filter visitLogicalExpression(LogicalExpression node, Context context) } @Override - protected Filter visitNotExpression(NotExpression node, Context context) { + public Filter visitNotExpression(NotExpression node, Context context) { return FilterFactory.not(process(node.getValue(), context)); } @Override - protected Filter visitComparisonExpression(ComparisonExpression node, Context context) { + public Filter visitComparisonExpression(ComparisonExpression node, Context context) { if (isTimeColumn(node.getLeft(), timeColumnName) || isTimeColumn(node.getRight(), timeColumnName)) { return timeFilterVisitor.process(node, null); @@ -470,27 +470,27 @@ && isSymbolReference(right) } @Override - protected Filter visitSimpleCaseExpression(SimpleCaseExpression node, Context context) { + public Filter visitSimpleCaseExpression(SimpleCaseExpression node, Context context) { throw new UnsupportedOperationException("Filter push down does not support CASE WHEN"); } @Override - protected Filter visitSearchedCaseExpression(SearchedCaseExpression node, Context context) { + public Filter visitSearchedCaseExpression(SearchedCaseExpression node, Context context) { throw new UnsupportedOperationException("Filter push down does not support CASE WHEN"); } @Override - protected Filter visitIfExpression(IfExpression node, Context context) { + public Filter visitIfExpression(IfExpression node, Context context) { throw new UnsupportedOperationException("Filter push down does not support IF"); } @Override - protected Filter visitNullIfExpression(NullIfExpression node, Context context) { + public Filter visitNullIfExpression(NullIfExpression node, Context context) { throw new UnsupportedOperationException("Filter push down does not support NULLIF"); } @Override - protected Filter visitBetweenPredicate(BetweenPredicate node, Context context) { + public Filter visitBetweenPredicate(BetweenPredicate node, Context context) { Expression firstExpression = node.getValue(); Expression secondExpression = node.getMin(); Expression thirdExpression = node.getMax(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/ConvertPredicateToTimeFilterVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/ConvertPredicateToTimeFilterVisitor.java index 7368c5d28c2c6..c97eb3d803ceb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/ConvertPredicateToTimeFilterVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/ConvertPredicateToTimeFilterVisitor.java @@ -19,23 +19,23 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import org.apache.tsfile.read.filter.basic.Filter; @@ -64,7 +64,7 @@ public ConvertPredicateToTimeFilterVisitor(ZoneId zoneId, TimeUnit currPrecision } @Override - protected Filter visitInPredicate(InPredicate node, Void context) { + public Filter visitInPredicate(InPredicate node, Void context) { Expression valueList = node.getValueList(); checkArgument(valueList instanceof InListExpression); List values = ((InListExpression) valueList).getValues(); @@ -82,22 +82,22 @@ protected Filter visitInPredicate(InPredicate node, Void context) { } @Override - protected Filter visitIsNullPredicate(IsNullPredicate node, Void context) { + public Filter visitIsNullPredicate(IsNullPredicate node, Void context) { throw new UnsupportedOperationException("TIMESTAMP does not support IS NULL"); } @Override - protected Filter visitIsNotNullPredicate(IsNotNullPredicate node, Void context) { + public Filter visitIsNotNullPredicate(IsNotNullPredicate node, Void context) { throw new UnsupportedOperationException("TIMESTAMP does not support IS NOT NULL"); } @Override - protected Filter visitLikePredicate(LikePredicate node, Void context) { + public Filter visitLikePredicate(LikePredicate node, Void context) { throw new UnsupportedOperationException("TIMESTAMP does not support LIKE"); } @Override - protected Filter visitLogicalExpression(LogicalExpression node, Void context) { + public Filter visitLogicalExpression(LogicalExpression node, Void context) { List filterList = node.getTerms().stream() .map(n -> n.accept(this, context)) @@ -114,12 +114,12 @@ protected Filter visitLogicalExpression(LogicalExpression node, Void context) { } @Override - protected Filter visitNotExpression(NotExpression node, Void context) { + public Filter visitNotExpression(NotExpression node, Void context) { return FilterFactory.not(node.getValue().accept(this, context)); } @Override - protected Filter visitComparisonExpression(ComparisonExpression node, Void context) { + public Filter visitComparisonExpression(ComparisonExpression node, Void context) { long value; if (node.getRight() instanceof SymbolReference) { value = getLongValue(node.getLeft()); @@ -206,27 +206,27 @@ protected Filter visitComparisonExpression(ComparisonExpression node, Void conte } @Override - protected Filter visitSimpleCaseExpression(SimpleCaseExpression node, Void context) { + public Filter visitSimpleCaseExpression(SimpleCaseExpression node, Void context) { throw new UnsupportedOperationException("TIMESTAMP does not CASE WHEN"); } @Override - protected Filter visitSearchedCaseExpression(SearchedCaseExpression node, Void context) { + public Filter visitSearchedCaseExpression(SearchedCaseExpression node, Void context) { throw new UnsupportedOperationException("TIMESTAMP does not CASE WHEN"); } @Override - protected Filter visitIfExpression(IfExpression node, Void context) { + public Filter visitIfExpression(IfExpression node, Void context) { throw new UnsupportedOperationException("TIMESTAMP does not IF"); } @Override - protected Filter visitNullIfExpression(NullIfExpression node, Void context) { + public Filter visitNullIfExpression(NullIfExpression node, Void context) { throw new UnsupportedOperationException("TIMESTAMP does not NULLIF"); } @Override - protected Filter visitBetweenPredicate(BetweenPredicate node, Void context) { + public Filter visitBetweenPredicate(BetweenPredicate node, Void context) { Expression firstExpression = node.getValue(); Expression secondExpression = node.getMin(); Expression thirdExpression = node.getMax(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicateCombineIntoTableScanChecker.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicateCombineIntoTableScanChecker.java index e77f08da5859a..f63511cc10256 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicateCombineIntoTableScanChecker.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicateCombineIntoTableScanChecker.java @@ -19,23 +19,23 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import java.util.List; import java.util.Set; @@ -61,17 +61,17 @@ public Boolean visitExpression(Expression expression, Void context) { } @Override - protected Boolean visitNotExpression(NotExpression node, Void context) { + public Boolean visitNotExpression(NotExpression node, Void context) { return Boolean.FALSE; } @Override - protected Boolean visitIsNullPredicate(IsNullPredicate node, Void context) { + public Boolean visitIsNullPredicate(IsNullPredicate node, Void context) { return Boolean.FALSE; } @Override - protected Boolean visitInPredicate(InPredicate node, Void context) { + public Boolean visitInPredicate(InPredicate node, Void context) { return isTimeOrMeasurementColumn(node.getValue()) && isInListAllLiteral(node); } @@ -90,14 +90,14 @@ public static Boolean isInListAllLiteral(InPredicate node) { } @Override - protected Boolean visitLikePredicate(LikePredicate node, Void context) { + public Boolean visitLikePredicate(LikePredicate node, Void context) { return isTimeOrMeasurementColumn(node.getValue()) && isLiteral(node.getPattern()) && node.getEscape().map(PredicatePushIntoScanChecker::isLiteral).orElse(true); } @Override - protected Boolean visitLogicalExpression(LogicalExpression node, Void context) { + public Boolean visitLogicalExpression(LogicalExpression node, Void context) { List children = node.getTerms(); for (Expression child : children) { Boolean result = process(child, context); @@ -114,7 +114,7 @@ protected Boolean visitLogicalExpression(LogicalExpression node, Void context) { } @Override - protected Boolean visitComparisonExpression(ComparisonExpression node, Void context) { + public Boolean visitComparisonExpression(ComparisonExpression node, Void context) { return (isTimeOrMeasurementColumn(node.getLeft()) && isLiteral(node.getRight())) || (isTimeOrMeasurementColumn(node.getRight()) && isLiteral(node.getLeft())) || (isExtractTimeOrMeasurementColumn(node.getLeft()) && isLiteral(node.getRight())) @@ -122,7 +122,7 @@ protected Boolean visitComparisonExpression(ComparisonExpression node, Void cont } @Override - protected Boolean visitBetweenPredicate(BetweenPredicate node, Void context) { + public Boolean visitBetweenPredicate(BetweenPredicate node, Void context) { return (isTimeOrMeasurementColumn(node.getValue()) && isLiteral(node.getMin()) && isLiteral(node.getMax())) @@ -139,28 +139,28 @@ && isLiteral(node.getMin()) } @Override - protected Boolean visitIsNotNullPredicate(IsNotNullPredicate node, Void context) { + public Boolean visitIsNotNullPredicate(IsNotNullPredicate node, Void context) { return isTimeOrMeasurementColumn(node.getValue()); } // expression below will be supported later @Override - protected Boolean visitSimpleCaseExpression(SimpleCaseExpression node, Void context) { + public Boolean visitSimpleCaseExpression(SimpleCaseExpression node, Void context) { return Boolean.FALSE; } @Override - protected Boolean visitSearchedCaseExpression(SearchedCaseExpression node, Void context) { + public Boolean visitSearchedCaseExpression(SearchedCaseExpression node, Void context) { return Boolean.FALSE; } @Override - protected Boolean visitIfExpression(IfExpression node, Void context) { + public Boolean visitIfExpression(IfExpression node, Void context) { return Boolean.FALSE; } @Override - protected Boolean visitNullIfExpression(NullIfExpression node, Void context) { + public Boolean visitNullIfExpression(NullIfExpression node, Void context) { return Boolean.FALSE; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicatePushIntoMetadataChecker.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicatePushIntoMetadataChecker.java index 1ecbb5704a281..ec0f4f521c0bb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicatePushIntoMetadataChecker.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicatePushIntoMetadataChecker.java @@ -19,41 +19,41 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentDatabase; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentTime; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentUser; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DecimalLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Trim; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentDatabase; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentTime; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentUser; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DecimalLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Trim; import java.util.List; import java.util.Set; @@ -63,7 +63,7 @@ * attributeColumn = 'XXX' 4. 'XXX' = attributeColumn 5. tagColumn/attributeColumn IS NULL 6. using * or to combine the above expression */ -public class PredicatePushIntoMetadataChecker extends AstVisitor { +public class PredicatePushIntoMetadataChecker implements AstVisitor { private final Set idOrAttributeColumnNames; @@ -82,125 +82,124 @@ public Boolean visitExpression(final Expression expression, final Void context) } @Override - protected Boolean visitArithmeticBinary( - final ArithmeticBinaryExpression node, final Void context) { + public Boolean visitArithmeticBinary(final ArithmeticBinaryExpression node, final Void context) { return node.getLeft().accept(this, context) && node.getRight().accept(this, context); } @Override - protected Boolean visitArithmeticUnary(final ArithmeticUnaryExpression node, final Void context) { + public Boolean visitArithmeticUnary(final ArithmeticUnaryExpression node, final Void context) { return node.getValue().accept(this, context); } @Override - protected Boolean visitBetweenPredicate(final BetweenPredicate node, final Void context) { + public Boolean visitBetweenPredicate(final BetweenPredicate node, final Void context) { return node.getValue().accept(this, context) && node.getMin().accept(this, context) && node.getMax().accept(this, context); } @Override - protected Boolean visitCast(final Cast node, final Void context) { + public Boolean visitCast(final Cast node, final Void context) { return node.getExpression().accept(this, context); } @Override - protected Boolean visitBooleanLiteral(final BooleanLiteral node, final Void context) { + public Boolean visitBooleanLiteral(final BooleanLiteral node, final Void context) { return true; } @Override - protected Boolean visitBinaryLiteral(final BinaryLiteral node, final Void context) { + public Boolean visitBinaryLiteral(final BinaryLiteral node, final Void context) { return true; } @Override - protected Boolean visitStringLiteral(final StringLiteral node, final Void context) { + public Boolean visitStringLiteral(final StringLiteral node, final Void context) { return true; } @Override - protected Boolean visitLongLiteral(final LongLiteral node, final Void context) { + public Boolean visitLongLiteral(final LongLiteral node, final Void context) { return true; } @Override - protected Boolean visitDoubleLiteral(final DoubleLiteral node, final Void context) { + public Boolean visitDoubleLiteral(final DoubleLiteral node, final Void context) { return true; } @Override - protected Boolean visitFloatLiteral(final FloatLiteral node, final Void context) { + public Boolean visitFloatLiteral(final FloatLiteral node, final Void context) { return true; } @Override - protected Boolean visitDecimalLiteral(final DecimalLiteral node, final Void context) { + public Boolean visitDecimalLiteral(final DecimalLiteral node, final Void context) { return true; } @Override - protected Boolean visitGenericLiteral(final GenericLiteral node, final Void context) { + public Boolean visitGenericLiteral(final GenericLiteral node, final Void context) { return true; } @Override - protected Boolean visitNullLiteral(final NullLiteral node, final Void context) { + public Boolean visitNullLiteral(final NullLiteral node, final Void context) { return true; } @Override - protected Boolean visitComparisonExpression(final ComparisonExpression node, final Void context) { + public Boolean visitComparisonExpression(final ComparisonExpression node, final Void context) { return node.getLeft().accept(this, context) && node.getRight().accept(this, context); } @Override - protected Boolean visitCurrentDatabase(final CurrentDatabase node, final Void context) { + public Boolean visitCurrentDatabase(final CurrentDatabase node, final Void context) { return true; } @Override - protected Boolean visitCurrentTime(final CurrentTime node, final Void context) { + public Boolean visitCurrentTime(final CurrentTime node, final Void context) { return true; } @Override - protected Boolean visitCurrentUser(final CurrentUser node, final Void context) { + public Boolean visitCurrentUser(final CurrentUser node, final Void context) { return true; } @Override - protected Boolean visitFunctionCall(final FunctionCall node, final Void context) { + public Boolean visitFunctionCall(final FunctionCall node, final Void context) { return node.getArguments().stream().allMatch(expression -> expression.accept(this, context)); } @Override - protected Boolean visitInPredicate(final InPredicate node, final Void context) { + public Boolean visitInPredicate(final InPredicate node, final Void context) { return node.getValue().accept(this, context) && node.getValueList().accept(this, context); } @Override - protected Boolean visitInListExpression(final InListExpression node, final Void context) { + public Boolean visitInListExpression(final InListExpression node, final Void context) { return node.getValues().stream().allMatch(expression -> expression.accept(this, context)); } @Override - protected Boolean visitIsNullPredicate(final IsNullPredicate node, final Void context) { + public Boolean visitIsNullPredicate(final IsNullPredicate node, final Void context) { return node.getValue().accept(this, context); } @Override - protected Boolean visitIsNotNullPredicate(final IsNotNullPredicate node, final Void context) { + public Boolean visitIsNotNullPredicate(final IsNotNullPredicate node, final Void context) { return node.getValue().accept(this, context); } @Override - protected Boolean visitLikePredicate(final LikePredicate node, final Void context) { + public Boolean visitLikePredicate(final LikePredicate node, final Void context) { return node.getValue().accept(this, context); } @Override - protected Boolean visitLogicalExpression(final LogicalExpression node, final Void context) { + public Boolean visitLogicalExpression(final LogicalExpression node, final Void context) { final List children = node.getTerms(); for (final Expression child : children) { final Boolean result = process(child, context); @@ -215,7 +214,7 @@ protected Boolean visitLogicalExpression(final LogicalExpression node, final Voi } @Override - protected Boolean visitNotExpression(final NotExpression node, final Void context) { + public Boolean visitNotExpression(final NotExpression node, final Void context) { if (node.getValue() instanceof Literal) { return Boolean.FALSE; } @@ -223,44 +222,40 @@ protected Boolean visitNotExpression(final NotExpression node, final Void contex } @Override - protected Boolean visitSymbolReference(final SymbolReference node, final Void context) { + public Boolean visitSymbolReference(final SymbolReference node, final Void context) { return idOrAttributeColumnNames.contains(node.getName()); } @Override - protected Boolean visitCoalesceExpression(final CoalesceExpression node, final Void context) { + public Boolean visitCoalesceExpression(final CoalesceExpression node, final Void context) { return Boolean.FALSE; } @Override - protected Boolean visitSimpleCaseExpression(final SimpleCaseExpression node, final Void context) { + public Boolean visitSimpleCaseExpression(final SimpleCaseExpression node, final Void context) { return Boolean.FALSE; } @Override - protected Boolean visitSearchedCaseExpression( + public Boolean visitSearchedCaseExpression( final SearchedCaseExpression node, final Void context) { return Boolean.FALSE; } @Override - protected Boolean visitTrim(final Trim node, final Void context) { + public Boolean visitTrim(final Trim node, final Void context) { return node.getTrimSource().accept(this, context) && (!node.getTrimCharacter().isPresent() || node.getTrimCharacter().orElse(null).accept(this, context)); } @Override - protected Boolean visitIfExpression(final IfExpression node, final Void context) { + public Boolean visitIfExpression(final IfExpression node, final Void context) { return Boolean.FALSE; } @Override - protected Boolean visitNullIfExpression(final NullIfExpression node, final Void context) { + public Boolean visitNullIfExpression(final NullIfExpression node, final Void context) { return Boolean.FALSE; } - - public static boolean isStringLiteral(final Expression expression) { - return expression instanceof StringLiteral; - } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicatePushIntoScanChecker.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicatePushIntoScanChecker.java index 600a4570e307c..7282569de686e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicatePushIntoScanChecker.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicatePushIntoScanChecker.java @@ -19,21 +19,21 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import java.util.List; @@ -45,29 +45,29 @@ public Boolean visitExpression(Expression expression, Void context) { } @Override - protected Boolean visitInPredicate(InPredicate node, Void context) { + public Boolean visitInPredicate(InPredicate node, Void context) { return isSymbolReference(node.getValue()); } @Override - protected Boolean visitIsNullPredicate(IsNullPredicate node, Void context) { + public Boolean visitIsNullPredicate(IsNullPredicate node, Void context) { throw new IllegalArgumentException("IS NULL Expression can't be pushed down"); } @Override - protected Boolean visitIsNotNullPredicate(IsNotNullPredicate node, Void context) { + public Boolean visitIsNotNullPredicate(IsNotNullPredicate node, Void context) { return isSymbolReference(node.getValue()); } @Override - protected Boolean visitLikePredicate(LikePredicate node, Void context) { + public Boolean visitLikePredicate(LikePredicate node, Void context) { return isSymbolReference(node.getValue()) && isLiteral(node.getPattern()) && node.getEscape().map(PredicatePushIntoScanChecker::isLiteral).orElse(true); } @Override - protected Boolean visitLogicalExpression(LogicalExpression node, Void context) { + public Boolean visitLogicalExpression(LogicalExpression node, Void context) { List children = node.getTerms(); for (Expression child : children) { if (!process(child, context)) { @@ -78,38 +78,38 @@ protected Boolean visitLogicalExpression(LogicalExpression node, Void context) { } @Override - protected Boolean visitNotExpression(NotExpression node, Void context) { + public Boolean visitNotExpression(NotExpression node, Void context) { throw new IllegalArgumentException("Not Expression can't be pushed down"); } @Override - protected Boolean visitComparisonExpression(ComparisonExpression node, Void context) { + public Boolean visitComparisonExpression(ComparisonExpression node, Void context) { return (isSymbolReference(node.getLeft()) && isLiteral(node.getRight())) || (isSymbolReference(node.getRight()) && isLiteral(node.getLeft())); } @Override - protected Boolean visitSimpleCaseExpression(SimpleCaseExpression node, Void context) { + public Boolean visitSimpleCaseExpression(SimpleCaseExpression node, Void context) { return Boolean.FALSE; } @Override - protected Boolean visitSearchedCaseExpression(SearchedCaseExpression node, Void context) { + public Boolean visitSearchedCaseExpression(SearchedCaseExpression node, Void context) { return Boolean.FALSE; } @Override - protected Boolean visitIfExpression(IfExpression node, Void context) { + public Boolean visitIfExpression(IfExpression node, Void context) { return Boolean.FALSE; } @Override - protected Boolean visitNullIfExpression(NullIfExpression node, Void context) { + public Boolean visitNullIfExpression(NullIfExpression node, Void context) { return Boolean.FALSE; } @Override - protected Boolean visitBetweenPredicate(BetweenPredicate node, Void context) { + public Boolean visitBetweenPredicate(BetweenPredicate node, Void context) { return (isSymbolReference(node.getValue()) && isLiteral(node.getMin()) && isLiteral(node.getMax())) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicateVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicateVisitor.java index e3c2c9b0e7cba..cab1142b37ba9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicateVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/PredicateVisitor.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; /** * This class provides a visitor of {@link Expression}, which can be extended to create a visitor @@ -41,7 +41,7 @@ * @param The return type of the visit operation. * @param The context information during visiting. */ -public abstract class PredicateVisitor extends AstVisitor { +public abstract class PredicateVisitor implements AstVisitor { @Override public R visitExpression(Expression expression, C context) { @@ -50,38 +50,38 @@ public R visitExpression(Expression expression, C context) { } @Override - protected abstract R visitInPredicate(InPredicate node, C context); + public abstract R visitInPredicate(InPredicate node, C context); @Override - protected abstract R visitIsNullPredicate(IsNullPredicate node, C context); + public abstract R visitIsNullPredicate(IsNullPredicate node, C context); @Override - protected abstract R visitIsNotNullPredicate(IsNotNullPredicate node, C context); + public abstract R visitIsNotNullPredicate(IsNotNullPredicate node, C context); @Override - protected abstract R visitLikePredicate(LikePredicate node, C context); + public abstract R visitLikePredicate(LikePredicate node, C context); @Override - protected abstract R visitLogicalExpression(LogicalExpression node, C context); + public abstract R visitLogicalExpression(LogicalExpression node, C context); @Override - protected abstract R visitNotExpression(NotExpression node, C context); + public abstract R visitNotExpression(NotExpression node, C context); @Override - protected abstract R visitComparisonExpression(ComparisonExpression node, C context); + public abstract R visitComparisonExpression(ComparisonExpression node, C context); @Override - protected abstract R visitSimpleCaseExpression(SimpleCaseExpression node, C context); + public abstract R visitSimpleCaseExpression(SimpleCaseExpression node, C context); @Override - protected abstract R visitSearchedCaseExpression(SearchedCaseExpression node, C context); + public abstract R visitSearchedCaseExpression(SearchedCaseExpression node, C context); @Override - protected abstract R visitIfExpression(IfExpression node, C context); + public abstract R visitIfExpression(IfExpression node, C context); @Override - protected abstract R visitNullIfExpression(NullIfExpression node, C context); + public abstract R visitNullIfExpression(NullIfExpression node, C context); @Override - protected abstract R visitBetweenPredicate(BetweenPredicate node, C context); + public abstract R visitBetweenPredicate(BetweenPredicate node, C context); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/CheckSchemaPredicateVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/CheckSchemaPredicateVisitor.java index 435d1e4cc0c6d..c503e7e176b33 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/CheckSchemaPredicateVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/CheckSchemaPredicateVisitor.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.schema; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableExpressionType; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableExpressionType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,7 +41,7 @@ // Return whether input expression can not be bounded to a single ID public class CheckSchemaPredicateVisitor - extends AstVisitor { + implements AstVisitor { private static final Logger LOGGER = LoggerFactory.getLogger(CheckSchemaPredicateVisitor.class); private static final long LOG_INTERVAL_MS = 60_000L; @@ -53,7 +53,7 @@ public Boolean visitExpression(final Expression node, final Context context) { } @Override - protected Boolean visitLogicalExpression(final LogicalExpression node, final Context context) { + public Boolean visitLogicalExpression(final LogicalExpression node, final Context context) { if (node.getOperator().equals(LogicalExpression.Operator.AND)) { if (System.currentTimeMillis() - lastLogTime >= LOG_INTERVAL_MS) { LOGGER.info( @@ -71,7 +71,7 @@ protected Boolean visitLogicalExpression(final LogicalExpression node, final Con } @Override - protected Boolean visitNotExpression(final NotExpression node, final Context context) { + public Boolean visitNotExpression(final NotExpression node, final Context context) { if (node.getValue().getExpressionType().equals(TableExpressionType.LOGICAL_EXPRESSION)) { if (System.currentTimeMillis() - lastLogTime >= LOG_INTERVAL_MS) { LOGGER.info( @@ -85,14 +85,13 @@ protected Boolean visitNotExpression(final NotExpression node, final Context con } @Override - protected Boolean visitComparisonExpression( - final ComparisonExpression node, final Context context) { + public Boolean visitComparisonExpression(final ComparisonExpression node, final Context context) { return !(node.getLeft() instanceof Literal) && !(node.getRight() instanceof Literal) || processColumn(node, context); } @Override - protected Boolean visitBetweenPredicate(final BetweenPredicate node, final Context context) { + public Boolean visitBetweenPredicate(final BetweenPredicate node, final Context context) { return node.getValue() instanceof SymbolReference && (node.getMin() instanceof SymbolReference || node.getMax() instanceof SymbolReference) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ConvertSchemaPredicateToFilterVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ConvertSchemaPredicateToFilterVisitor.java index f356ff79a7b7a..c07f281f9b58c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ConvertSchemaPredicateToFilterVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ConvertSchemaPredicateToFilterVisitor.java @@ -19,6 +19,23 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.schema; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.commons.schema.filter.SchemaFilter; import org.apache.iotdb.commons.schema.filter.impl.multichildren.AndFilter; import org.apache.iotdb.commons.schema.filter.impl.multichildren.OrFilter; @@ -33,23 +50,6 @@ import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.PredicateVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import javax.annotation.Nullable; @@ -62,7 +62,7 @@ import java.util.stream.Collectors; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.plan.expression.unary.LikeExpression.getEscapeCharacter; +import static org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils.getEscapeCharacter; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.PredicatePushIntoScanChecker.isSymbolReference; /** @@ -74,7 +74,7 @@ public class ConvertSchemaPredicateToFilterVisitor extends PredicateVisitor { @Override - protected @Nullable SchemaFilter visitInPredicate(final InPredicate node, final Context context) { + public @Nullable SchemaFilter visitInPredicate(final InPredicate node, final Context context) { final Expression valueList = node.getValueList(); checkArgument(valueList instanceof InListExpression); final List values = ((InListExpression) valueList).getValues(); @@ -94,13 +94,13 @@ public class ConvertSchemaPredicateToFilterVisitor } @Override - protected SchemaFilter visitIsNullPredicate(final IsNullPredicate node, final Context context) { + public SchemaFilter visitIsNullPredicate(final IsNullPredicate node, final Context context) { return wrapIdOrAttributeFilter( new PreciseFilter((String) null), ((SymbolReference) node.getValue()).getName(), context); } @Override - protected SchemaFilter visitIsNotNullPredicate( + public SchemaFilter visitIsNotNullPredicate( final IsNotNullPredicate node, final Context context) { return wrapIdOrAttributeFilter( new NotFilter(new PreciseFilter((String) null)), @@ -109,7 +109,7 @@ protected SchemaFilter visitIsNotNullPredicate( } @Override - protected @Nullable SchemaFilter visitLikePredicate( + public @Nullable SchemaFilter visitLikePredicate( final LikePredicate node, final Context context) { // TODO: Support stringLiteral like id/attr? if (!(node.getValue() instanceof SymbolReference) @@ -127,7 +127,7 @@ protected SchemaFilter visitIsNotNullPredicate( } @Override - protected @Nullable SchemaFilter visitLogicalExpression( + public @Nullable SchemaFilter visitLogicalExpression( final LogicalExpression node, final Context context) { final List children = new ArrayList<>(); for (final Expression term : node.getTerms()) { @@ -144,14 +144,14 @@ protected SchemaFilter visitIsNotNullPredicate( } @Override - protected @Nullable SchemaFilter visitNotExpression( + public @Nullable SchemaFilter visitNotExpression( final NotExpression node, final Context context) { final SchemaFilter result = node.getValue().accept(this, context); return Objects.nonNull(result) ? new NotFilter(result) : null; } @Override - protected @Nullable SchemaFilter visitComparisonExpression( + public @Nullable SchemaFilter visitComparisonExpression( final ComparisonExpression node, final Context context) { final String columnName; final String value; @@ -210,29 +210,29 @@ private ComparisonFilter.Operator convertExpressionOperator2SchemaOperator( } @Override - protected SchemaFilter visitSimpleCaseExpression( + public SchemaFilter visitSimpleCaseExpression( final SimpleCaseExpression node, final Context context) { return visitExpression(node, context); } @Override - protected SchemaFilter visitSearchedCaseExpression( + public SchemaFilter visitSearchedCaseExpression( final SearchedCaseExpression node, final Context context) { return visitExpression(node, context); } @Override - protected SchemaFilter visitIfExpression(final IfExpression node, final Context context) { + public SchemaFilter visitIfExpression(final IfExpression node, final Context context) { return visitExpression(node, context); } @Override - protected SchemaFilter visitNullIfExpression(final NullIfExpression node, final Context context) { + public SchemaFilter visitNullIfExpression(final NullIfExpression node, final Context context) { return visitExpression(node, context); } @Override - protected SchemaFilter visitBetweenPredicate(final BetweenPredicate node, final Context context) { + public SchemaFilter visitBetweenPredicate(final BetweenPredicate node, final Context context) { return visitExpression(node, context); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ExtractPredicateColumnNameVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ExtractPredicateColumnNameVisitor.java index 92cb4d6408d28..31369dd721fea 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ExtractPredicateColumnNameVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ExtractPredicateColumnNameVisitor.java @@ -19,22 +19,22 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.schema; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.PredicateVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; public class ExtractPredicateColumnNameVisitor extends PredicateVisitor { @@ -46,44 +46,44 @@ public String visitExpression(final Expression expression, final Void context) { } @Override - protected String visitInPredicate(final InPredicate node, final Void context) { + public String visitInPredicate(final InPredicate node, final Void context) { return node.getValue().accept(this, context); } @Override - protected String visitIsNullPredicate(final IsNullPredicate node, final Void context) { + public String visitIsNullPredicate(final IsNullPredicate node, final Void context) { return node.getValue().accept(this, context); } @Override - protected String visitIsNotNullPredicate(final IsNotNullPredicate node, final Void context) { + public String visitIsNotNullPredicate(final IsNotNullPredicate node, final Void context) { return node.getValue().accept(this, context); } @Override - protected String visitLikePredicate(final LikePredicate node, final Void context) { + public String visitLikePredicate(final LikePredicate node, final Void context) { return node.getValue().accept(this, context); } @Override - protected String visitLogicalExpression(final LogicalExpression node, final Void context) { + public String visitLogicalExpression(final LogicalExpression node, final Void context) { throw new UnsupportedOperationException("The logical expression has no bounded column"); } @Override - protected String visitNotExpression(final NotExpression node, final Void context) { + public String visitNotExpression(final NotExpression node, final Void context) { throw new UnsupportedOperationException("The not expression has no bounded column"); } @Override - protected String visitComparisonExpression(final ComparisonExpression node, final Void context) { + public String visitComparisonExpression(final ComparisonExpression node, final Void context) { return node.getLeft() instanceof Literal ? node.getRight().accept(this, context) : node.getLeft().accept(this, context); } @Override - protected String visitBetweenPredicate(final BetweenPredicate node, final Void context) { + public String visitBetweenPredicate(final BetweenPredicate node, final Void context) { if (node.getValue() instanceof SymbolReference) { return node.getValue().accept(this, context); } @@ -97,28 +97,27 @@ protected String visitBetweenPredicate(final BetweenPredicate node, final Void c } @Override - protected String visitSymbolReference(final SymbolReference node, final Void context) { + public String visitSymbolReference(final SymbolReference node, final Void context) { return node.getName(); } @Override - protected String visitSimpleCaseExpression(final SimpleCaseExpression node, final Void context) { + public String visitSimpleCaseExpression(final SimpleCaseExpression node, final Void context) { return null; } @Override - protected String visitSearchedCaseExpression( - final SearchedCaseExpression node, final Void context) { + public String visitSearchedCaseExpression(final SearchedCaseExpression node, final Void context) { return null; } @Override - protected String visitIfExpression(final IfExpression node, final Void context) { + public String visitIfExpression(final IfExpression node, final Void context) { return null; } @Override - protected String visitNullIfExpression(final NullIfExpression node, final Void context) { + public String visitNullIfExpression(final NullIfExpression node, final Void context) { return null; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/tablefunction/TableArgumentAnalysis.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/tablefunction/TableArgumentAnalysis.java index c54cc5f1740c2..6f9cbf12954b4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/tablefunction/TableArgumentAnalysis.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/tablefunction/TableArgumentAnalysis.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer.tablefunction; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OrderBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Relation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Relation; import com.google.common.collect.ImmutableList; import com.google.errorprone.annotations.CanIgnoreReturnValue; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/Metadata.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/Metadata.java index 82ee332361409..fbee363bdfad8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/Metadata.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/Metadata.java @@ -19,23 +19,24 @@ package org.apache.iotdb.db.queryengine.plan.relational.metadata; +import org.apache.iotdb.calc.plan.relational.metadata.ITypeMetadata; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.DataPartitionQueryParam; import org.apache.iotdb.commons.partition.SchemaPartition; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.function.ITableFunctionFactory; +import org.apache.iotdb.commons.queryengine.plan.relational.function.OperatorType; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeNotFoundException; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignature; import org.apache.iotdb.commons.schema.table.InsertNodeMeasurementInfo; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinWindowFunction; import org.apache.iotdb.db.exception.load.LoadAnalyzeTableColumnDisorderException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.analyze.IPartitionFetcher; -import org.apache.iotdb.db.queryengine.plan.relational.function.OperatorType; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableHeaderSchemaValidator; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeNotFoundException; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignature; -import org.apache.iotdb.udf.api.relational.TableFunction; import org.apache.tsfile.file.metadata.IDeviceID; import org.apache.tsfile.read.common.type.Type; @@ -46,7 +47,7 @@ import java.util.concurrent.atomic.AtomicBoolean; // All the input databases shall not contain "root" -public interface Metadata { +public interface Metadata extends ITypeMetadata, ITableFunctionFactory { boolean tableExists(final QualifiedObjectName name); @@ -76,8 +77,6 @@ default boolean isWindowFunction( boolean canCoerce(final Type from, final Type to); - IPartitionFetcher getPartitionFetcher(); - /** * Get all device ids and corresponding attributes from schema region * @@ -212,6 +211,4 @@ DataPartition getDataPartition( */ DataPartition getDataPartitionWithUnclosedTimeRange( final String database, final List sgNameToQueryParamsMap); - - TableFunction getTableFunction(final String functionName); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/MetadataUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/MetadataUtil.java index 2872ea9ea9e7b..41d1bcb172e4c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/MetadataUtil.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/MetadataUtil.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.metadata; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnMetadata; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/OperatorNotFoundException.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/OperatorNotFoundException.java index bc874d53f4fdd..ad09fcefb0c36 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/OperatorNotFoundException.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/OperatorNotFoundException.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.metadata; import org.apache.iotdb.commons.exception.IoTDBException; -import org.apache.iotdb.db.queryengine.plan.relational.function.OperatorType; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.function.OperatorType; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignature; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadata.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadata.java index a3acb473d2c54..7ce8b3a3bc6d9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadata.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadata.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.metadata; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnMetadata; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; + import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java index 000d9cddf808e..7f7158538b6bc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java @@ -19,11 +19,27 @@ package org.apache.iotdb.db.queryengine.plan.relational.metadata; -import org.apache.iotdb.commons.exception.IoTDBException; -import org.apache.iotdb.commons.exception.table.TableNotExistsException; +import org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils; +import org.apache.iotdb.calc.utils.constant.SqlConstant; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.DataPartitionQueryParam; import org.apache.iotdb.commons.partition.SchemaPartition; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.function.OperatorType; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.AdditionResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.DivisionResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.ModulusResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.MultiplicationResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.SubtractionResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeManager; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeNotFoundException; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignature; +import org.apache.iotdb.commons.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.commons.schema.table.InsertNodeMeasurementInfo; import org.apache.iotdb.commons.schema.table.TreeViewSchema; import org.apache.iotdb.commons.schema.table.TsTable; @@ -31,41 +47,22 @@ import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; import org.apache.iotdb.db.exception.load.LoadAnalyzeTableColumnDisorderException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.analyze.ClusterPartitionFetcher; import org.apache.iotdb.db.queryengine.plan.analyze.IPartitionFetcher; -import org.apache.iotdb.db.queryengine.plan.relational.function.OperatorType; -import org.apache.iotdb.db.queryengine.plan.relational.function.TableBuiltinTableFunction; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.AdditionResolver; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.DivisionResolver; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.ModulusResolver; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.MultiplicationResolver; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.SubtractionResolver; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableDeviceSchemaFetcher; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableDeviceSchemaValidator; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableHeaderSchemaValidator; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeNotFoundException; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignature; -import org.apache.iotdb.db.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; -import org.apache.iotdb.db.utils.constant.SqlConstant; -import org.apache.iotdb.rpc.TSStatusCode; import org.apache.iotdb.udf.api.customizer.analysis.AggregateFunctionAnalysis; import org.apache.iotdb.udf.api.customizer.analysis.ScalarFunctionAnalysis; import org.apache.iotdb.udf.api.customizer.parameter.FunctionArguments; import org.apache.iotdb.udf.api.relational.AggregateFunction; import org.apache.iotdb.udf.api.relational.ScalarFunction; -import org.apache.iotdb.udf.api.relational.TableFunction; import org.apache.tsfile.file.metadata.IDeviceID; import org.apache.tsfile.read.common.type.ObjectType; -import org.apache.tsfile.read.common.type.StringType; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.read.common.type.TypeFactory; @@ -77,11 +74,9 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.FailFunctionColumnTransformer.FAIL_FUNCTION_NAME; -import static org.apache.tsfile.read.common.type.BinaryType.TEXT; +import static org.apache.iotdb.calc.transformation.dag.column.FailFunctionColumnTransformer.FAIL_FUNCTION_NAME; import static org.apache.tsfile.read.common.type.BlobType.BLOB; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; -import static org.apache.tsfile.read.common.type.DateType.DATE; import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; import static org.apache.tsfile.read.common.type.FloatType.FLOAT; import static org.apache.tsfile.read.common.type.IntType.INT32; @@ -139,7 +134,7 @@ public Type getOperatorReturnType(OperatorType operatorType, List arg // builtin scalar function if (TableBuiltinScalarFunction.DIFF.getFunctionName().equalsIgnoreCase(functionName)) { - if (!isOneNumericType(argumentTypes) + if (!CommonMetadataUtils.isOneNumericType(argumentTypes) && !(argumentTypes.size() == 2 - && isNumericType(argumentTypes.get(0)) + && CommonMetadataUtils.isNumericType(argumentTypes.get(0)) && BOOLEAN.equals(argumentTypes.get(1)))) { throw new SemanticException( "Scalar function " @@ -227,8 +223,8 @@ && isNumericType(argumentTypes.get(0)) } return DOUBLE; } else if (TableBuiltinScalarFunction.ROUND.getFunctionName().equalsIgnoreCase(functionName)) { - if (!isOneSupportedMathNumericType(argumentTypes) - && !isTwoSupportedMathNumericType(argumentTypes)) { + if (!CommonMetadataUtils.isOneSupportedMathNumericType(argumentTypes) + && !CommonMetadataUtils.isTwoSupportedMathNumericType(argumentTypes)) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -239,7 +235,8 @@ && isNumericType(argumentTypes.get(0)) .getFunctionName() .equalsIgnoreCase(functionName)) { - if (!isTwoCharType(argumentTypes) && !isThreeCharType(argumentTypes)) { + if (!CommonMetadataUtils.isTwoCharType(argumentTypes) + && !CommonMetadataUtils.isThreeCharType(argumentTypes)) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -250,12 +247,12 @@ && isNumericType(argumentTypes.get(0)) .getFunctionName() .equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() == 2 - && isCharType(argumentTypes.get(0)) - && isIntegerNumber(argumentTypes.get(1))) + && CommonMetadataUtils.isCharType(argumentTypes.get(0)) + && CommonMetadataUtils.isIntegerNumber(argumentTypes.get(1))) && !(argumentTypes.size() == 3 - && isCharType(argumentTypes.get(0)) - && isIntegerNumber(argumentTypes.get(1)) - && isIntegerNumber(argumentTypes.get(2)))) { + && CommonMetadataUtils.isCharType(argumentTypes.get(0)) + && CommonMetadataUtils.isIntegerNumber(argumentTypes.get(1)) + && CommonMetadataUtils.isIntegerNumber(argumentTypes.get(2)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -264,9 +261,9 @@ && isIntegerNumber(argumentTypes.get(2)))) { return STRING; } else if (TableBuiltinScalarFunction.LENGTH.getFunctionName().equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() == 1 - && (isCharType(argumentTypes.get(0)) - || isBlobType(argumentTypes.get(0)) - || isObjectType(argumentTypes.get(0))))) { + && (CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0)) + || CommonMetadataUtils.isObjectType(argumentTypes.get(0))))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -274,7 +271,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return INT64; } else if (TableBuiltinScalarFunction.UPPER.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isCharType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 && CommonMetadataUtils.isCharType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -282,7 +279,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return STRING; } else if (TableBuiltinScalarFunction.LOWER.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isCharType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 && CommonMetadataUtils.isCharType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -290,8 +287,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return STRING; } else if (TableBuiltinScalarFunction.TRIM.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isCharType(argumentTypes.get(0))) - && !(argumentTypes.size() == 2 && isTwoCharType(argumentTypes))) { + if (!(argumentTypes.size() == 1 && CommonMetadataUtils.isCharType(argumentTypes.get(0))) + && !(argumentTypes.size() == 2 && CommonMetadataUtils.isTwoCharType(argumentTypes))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -299,8 +296,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return STRING; } else if (TableBuiltinScalarFunction.LTRIM.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isCharType(argumentTypes.get(0))) - && !(argumentTypes.size() == 2 && isTwoCharType(argumentTypes))) { + if (!(argumentTypes.size() == 1 && CommonMetadataUtils.isCharType(argumentTypes.get(0))) + && !(argumentTypes.size() == 2 && CommonMetadataUtils.isTwoCharType(argumentTypes))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -308,8 +305,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return STRING; } else if (TableBuiltinScalarFunction.RTRIM.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isCharType(argumentTypes.get(0))) - && !(argumentTypes.size() == 2 && isTwoCharType(argumentTypes))) { + if (!(argumentTypes.size() == 1 && CommonMetadataUtils.isCharType(argumentTypes.get(0))) + && !(argumentTypes.size() == 2 && CommonMetadataUtils.isTwoCharType(argumentTypes))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -319,7 +316,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.REGEXP_LIKE .getFunctionName() .equalsIgnoreCase(functionName)) { - if (!isTwoCharType(argumentTypes)) { + if (!CommonMetadataUtils.isTwoCharType(argumentTypes)) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -327,7 +324,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return BOOLEAN; } else if (TableBuiltinScalarFunction.STRPOS.getFunctionName().equalsIgnoreCase(functionName)) { - if (!isTwoCharType(argumentTypes)) { + if (!CommonMetadataUtils.isTwoCharType(argumentTypes)) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -337,7 +334,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.STARTS_WITH .getFunctionName() .equalsIgnoreCase(functionName)) { - if (!isTwoCharType(argumentTypes)) { + if (!CommonMetadataUtils.isTwoCharType(argumentTypes)) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -347,7 +344,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.ENDS_WITH .getFunctionName() .equalsIgnoreCase(functionName)) { - if (!isTwoCharType(argumentTypes)) { + if (!CommonMetadataUtils.isTwoCharType(argumentTypes)) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -356,7 +353,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { return BOOLEAN; } else if (TableBuiltinScalarFunction.CONCAT.getFunctionName().equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() >= 2 - && argumentTypes.stream().allMatch(TableMetadataImpl::isCharType))) { + && argumentTypes.stream().allMatch(CommonMetadataUtils::isCharType))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -364,7 +361,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return STRING; } else if (TableBuiltinScalarFunction.STRCMP.getFunctionName().equalsIgnoreCase(functionName)) { - if (!isTwoCharType(argumentTypes)) { + if (!CommonMetadataUtils.isTwoCharType(argumentTypes)) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -372,7 +369,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return INT32; } else if (TableBuiltinScalarFunction.SIN.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -380,7 +378,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.COS.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -388,7 +387,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.TAN.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -396,7 +396,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.ASIN.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -404,7 +405,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.ACOS.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -412,7 +414,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.ATAN.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -420,7 +423,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.SINH.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -428,7 +432,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.COSH.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -436,7 +441,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.TANH.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -446,7 +452,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.DEGREES .getFunctionName() .equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -456,7 +463,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.RADIANS .getFunctionName() .equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -464,7 +472,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.ABS.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -472,7 +481,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return argumentTypes.get(0); } else if (TableBuiltinScalarFunction.SIGN.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -480,7 +490,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return argumentTypes.get(0); } else if (TableBuiltinScalarFunction.CEIL.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -488,7 +499,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.FLOOR.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -496,7 +508,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.EXP.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -504,7 +517,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.LN.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -512,7 +526,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.LOG10.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -520,7 +535,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return DOUBLE; } else if (TableBuiltinScalarFunction.SQRT.getFunctionName().equalsIgnoreCase(functionName)) { - if (!(argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)))) { + if (!(argumentTypes.size() == 1 + && CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0)))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -546,7 +562,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.DATE_BIN .getFunctionName() .equalsIgnoreCase(functionName)) { - if (!isTimestampType(argumentTypes.get(2))) { + if (!CommonMetadataUtils.isTimestampType(argumentTypes.get(2))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -554,7 +570,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } return TIMESTAMP; } else if (TableBuiltinScalarFunction.FORMAT.getFunctionName().equalsIgnoreCase(functionName)) { - if (argumentTypes.size() < 2 || !isCharType(argumentTypes.get(0))) { + if (argumentTypes.size() < 2 || !CommonMetadataUtils.isCharType(argumentTypes.get(0))) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -565,7 +581,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { return UNKNOWN; } else if (TableBuiltinScalarFunction.GREATEST.getFunctionName().equalsIgnoreCase(functionName) || TableBuiltinScalarFunction.LEAST.getFunctionName().equalsIgnoreCase(functionName)) { - if (argumentTypes.size() < 2 || !areAllTypesSameAndComparable(argumentTypes)) { + if (argumentTypes.size() < 2 + || !CommonMetadataUtils.areAllTypesSameAndComparable(argumentTypes)) { throw new SemanticException( "Scalar function " + functionName.toLowerCase(Locale.ENGLISH) @@ -579,7 +596,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { .getFunctionName() .equalsIgnoreCase(functionName)) { if (argumentTypes.size() != 2 - || !(isIntegerNumber(argumentTypes.get(0)) && isIntegerNumber(argumentTypes.get(1)))) { + || !(CommonMetadataUtils.isIntegerNumber(argumentTypes.get(0)) + && CommonMetadataUtils.isIntegerNumber(argumentTypes.get(1)))) { throw new SemanticException( String.format( "Scalar function %s only accepts two arguments and they must be Int32 or Int64 data type.", @@ -589,7 +607,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.BITWISE_NOT .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isIntegerNumber(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isIntegerNumber(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be Int32 or Int64 data type.", @@ -606,7 +624,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { .getFunctionName() .equalsIgnoreCase(functionName)) { if (argumentTypes.size() != 2 - || !(isIntegerNumber(argumentTypes.get(0)) && isIntegerNumber(argumentTypes.get(1)))) { + || !(CommonMetadataUtils.isIntegerNumber(argumentTypes.get(0)) + && CommonMetadataUtils.isIntegerNumber(argumentTypes.get(1)))) { throw new SemanticException( String.format( "Scalar function %s only accepts two arguments and they must be Int32 or Int64 data type.", @@ -617,7 +636,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { .getFunctionName() .equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() == 1 - && (isCharType(argumentTypes.get(0)) || isBlobType(argumentTypes.get(0))))) { + && (CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0))))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -627,7 +647,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_BASE64 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isCharType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isCharType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT or STRING data type.", @@ -638,7 +658,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { .getFunctionName() .equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() == 1 - && (isCharType(argumentTypes.get(0)) || isBlobType(argumentTypes.get(0))))) { + && (CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0))))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -648,7 +669,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_BASE64URL .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isCharType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isCharType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT or STRING data type.", @@ -659,7 +680,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { .getFunctionName() .equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() == 1 - && (isCharType(argumentTypes.get(0)) || isBlobType(argumentTypes.get(0))))) { + && (CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0))))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -669,7 +691,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_BASE32 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isCharType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isCharType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT or STRING data type.", @@ -678,7 +700,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { return BLOB; } else if (TableBuiltinScalarFunction.SHA256.getFunctionName().equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() == 1 - && (isCharType(argumentTypes.get(0)) || isBlobType(argumentTypes.get(0))))) { + && (CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0))))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -687,7 +710,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { return BLOB; } else if (TableBuiltinScalarFunction.SHA512.getFunctionName().equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() == 1 - && (isCharType(argumentTypes.get(0)) || isBlobType(argumentTypes.get(0))))) { + && (CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0))))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -696,7 +720,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { return BLOB; } else if (TableBuiltinScalarFunction.SHA1.getFunctionName().equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() == 1 - && (isCharType(argumentTypes.get(0)) || isBlobType(argumentTypes.get(0))))) { + && (CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0))))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -705,7 +730,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { return BLOB; } else if (TableBuiltinScalarFunction.MD5.getFunctionName().equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() == 1 - && (isCharType(argumentTypes.get(0)) || isBlobType(argumentTypes.get(0))))) { + && (CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0))))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -716,7 +742,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { .getFunctionName() .equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() == 1 - && (isCharType(argumentTypes.get(0)) || isBlobType(argumentTypes.get(0))))) { + && (CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0))))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -727,7 +754,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { .getFunctionName() .equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() == 1 - && (isCharType(argumentTypes.get(0)) || isBlobType(argumentTypes.get(0))))) { + && (CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0))))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -736,7 +764,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { return BLOB; } else if (TableBuiltinScalarFunction.TO_HEX.getFunctionName().equalsIgnoreCase(functionName)) { if (!(argumentTypes.size() == 1 - && (isCharType(argumentTypes.get(0)) || isBlobType(argumentTypes.get(0))))) { + && (CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0))))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -746,7 +775,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_HEX .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isCharType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isCharType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT or STRING data type.", @@ -757,7 +786,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { .getFunctionName() .equalsIgnoreCase(functionName)) { if (argumentTypes.size() != 1 - || !(isCharType(argumentTypes.get(0)) || isBlobType(argumentTypes.get(0)))) { + || !(CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0)))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BlOB data type.", @@ -771,8 +801,9 @@ && isIntegerNumber(argumentTypes.get(2)))) { .getFunctionName() .equalsIgnoreCase(functionName)) { if (argumentTypes.size() != 2 - || !(isCharType(argumentTypes.get(0)) || isBlobType(argumentTypes.get(0))) - || !isCharType(argumentTypes.get(1))) { + || !(CommonMetadataUtils.isCharType(argumentTypes.get(0)) + || CommonMetadataUtils.isBlobType(argumentTypes.get(0))) + || !CommonMetadataUtils.isCharType(argumentTypes.get(1))) { throw new SemanticException( String.format( "Scalar function %s only accepts two arguments, first argument must be TEXT, STRING, or BlOB type, second argument must be STRING OR TEXT type.", @@ -792,7 +823,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_BIG_ENDIAN_32 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isBlobType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBlobType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be BLOB data type.", @@ -812,7 +843,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_BIG_ENDIAN_64 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isBlobType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBlobType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be BLOB data type.", @@ -832,7 +863,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_LITTLE_ENDIAN_32 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isBlobType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBlobType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be BLOB data type.", @@ -852,7 +883,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_LITTLE_ENDIAN_64 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isBlobType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBlobType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be BLOB data type.", @@ -872,7 +903,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_IEEE754_32 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isBlobType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBlobType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be BLOB data type.", @@ -892,7 +923,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_IEEE754_64 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isBlobType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBlobType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be BLOB data type.", @@ -901,7 +932,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { return DOUBLE; } else if (TableBuiltinScalarFunction.CRC32.getFunctionName().equalsIgnoreCase(functionName)) { if (argumentTypes.size() != 1 - || !(isBlobType(argumentTypes.get(0)) || isCharType(argumentTypes.get(0)))) { + || !(CommonMetadataUtils.isBlobType(argumentTypes.get(0)) + || CommonMetadataUtils.isCharType(argumentTypes.get(0)))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -915,7 +947,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { .getFunctionName() .equalsIgnoreCase(functionName)) { if (argumentTypes.size() != 1 - || !(isBlobType(argumentTypes.get(0)) || isCharType(argumentTypes.get(0)))) { + || !(CommonMetadataUtils.isBlobType(argumentTypes.get(0)) + || CommonMetadataUtils.isCharType(argumentTypes.get(0)))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -935,7 +968,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_BIG_ENDIAN_32 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isBlobType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBlobType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be BLOB data type.", @@ -955,7 +988,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_BIG_ENDIAN_64 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isBlobType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBlobType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be BLOB data type.", @@ -975,7 +1008,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_LITTLE_ENDIAN_32 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isBlobType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBlobType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be BLOB data type.", @@ -995,7 +1028,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_LITTLE_ENDIAN_64 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isBlobType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBlobType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be BLOB data type.", @@ -1015,7 +1048,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_IEEE754_32 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isBlobType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBlobType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be BLOB data type.", @@ -1035,7 +1068,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.FROM_IEEE754_64 .getFunctionName() .equalsIgnoreCase(functionName)) { - if (argumentTypes.size() != 1 || !isBlobType(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBlobType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be BLOB data type.", @@ -1044,7 +1077,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { return DOUBLE; } else if (TableBuiltinScalarFunction.CRC32.getFunctionName().equalsIgnoreCase(functionName)) { if (argumentTypes.size() != 1 - || !(isBlobType(argumentTypes.get(0)) || isCharType(argumentTypes.get(0)))) { + || !(CommonMetadataUtils.isBlobType(argumentTypes.get(0)) + || CommonMetadataUtils.isCharType(argumentTypes.get(0)))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -1058,7 +1092,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { .getFunctionName() .equalsIgnoreCase(functionName)) { if (argumentTypes.size() != 1 - || !(isBlobType(argumentTypes.get(0)) || isCharType(argumentTypes.get(0)))) { + || !(CommonMetadataUtils.isBlobType(argumentTypes.get(0)) + || CommonMetadataUtils.isCharType(argumentTypes.get(0)))) { throw new SemanticException( String.format( "Scalar function %s only accepts one argument and it must be TEXT, STRING, or BLOB data type.", @@ -1068,9 +1103,9 @@ && isIntegerNumber(argumentTypes.get(2)))) { } else if (TableBuiltinScalarFunction.LPAD.getFunctionName().equalsIgnoreCase(functionName) || TableBuiltinScalarFunction.RPAD.getFunctionName().equalsIgnoreCase(functionName)) { if (argumentTypes.size() != 3 - || !isBlobType(argumentTypes.get(0)) - || !isIntegerNumber(argumentTypes.get(1)) - || !isBlobType(argumentTypes.get(2))) { + || !CommonMetadataUtils.isBlobType(argumentTypes.get(0)) + || !CommonMetadataUtils.isIntegerNumber(argumentTypes.get(1)) + || !CommonMetadataUtils.isBlobType(argumentTypes.get(2))) { throw new SemanticException( String.format( "Scalar function %s only accepts three arguments, first argument must be BlOB type, " @@ -1098,7 +1133,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { "Aggregate functions [%s] should only have one argument", functionName)); } - if (!isSupportedMathNumericType(argumentTypes.get(0))) { + if (!CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(0))) { throw new SemanticException( String.format( "Aggregate functions [%s] only support numeric data types [INT32, INT64, FLOAT, DOUBLE]", @@ -1115,7 +1150,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } break; case SqlConstant.COUNT_IF: - if (argumentTypes.size() != 1 || !isBool(argumentTypes.get(0))) { + if (argumentTypes.size() != 1 || !CommonMetadataUtils.isBool(argumentTypes.get(0))) { throw new SemanticException( String.format( "Aggregate functions [%s] should only have one boolean expression as argument", @@ -1128,7 +1163,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { throw new SemanticException( String.format( "Aggregate functions [%s] should only have one or two arguments", functionName)); - } else if (!isTimestampType(argumentTypes.get(1))) { + } else if (!CommonMetadataUtils.isTimestampType(argumentTypes.get(1))) { throw new SemanticException( String.format( "Second argument of Aggregate functions [%s] should be orderable", functionName)); @@ -1163,7 +1198,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { "Aggregate functions [%s] should only have two arguments", functionName)); } - if (argumentTypes.size() == 2 && !isSupportedMathNumericType(argumentTypes.get(1))) { + if (argumentTypes.size() == 2 + && !CommonMetadataUtils.isSupportedMathNumericType(argumentTypes.get(1))) { throw new SemanticException( String.format( "Second argument of Aggregate functions [%s] should be numberic type and do not use expression", @@ -1187,7 +1223,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } Type valueColumnType = argumentTypes.get(0); - if (!isNumericType(valueColumnType)) { + if (!CommonMetadataUtils.isNumericType(valueColumnType)) { throw new SemanticException( String.format( "Aggregation functions [%s] should have value column as numeric type [INT32, INT64, FLOAT, DOUBLE, TIMESTAMP]", @@ -1195,7 +1231,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } Type percentageType = argumentTypes.get(argumentSize - 1); - if (!isDecimalType(percentageType)) { + if (!CommonMetadataUtils.isDecimalType(percentageType)) { throw new SemanticException( String.format( "Aggregation functions [%s] should have percentage as decimal type", @@ -1203,7 +1239,7 @@ && isIntegerNumber(argumentTypes.get(2)))) { } if (argumentSize == 3) { Type weightType = argumentTypes.get(1); - if (!INT32.equals(weightType) && !isUnknownType(weightType)) { + if (!INT32.equals(weightType) && !CommonMetadataUtils.isUnknownType(weightType)) { throw new SemanticException( String.format( "Aggregation functions [%s] do not support weight as %s type", @@ -1262,7 +1298,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { } break; case SqlConstant.NTH_VALUE: - if (argumentTypes.size() != 2 || !isIntegerNumber(argumentTypes.get(1))) { + if (argumentTypes.size() != 2 + || !CommonMetadataUtils.isIntegerNumber(argumentTypes.get(1))) { throw new SemanticException( "Window function [nth_value] should only have two argument, and second argument must be integer type"); } @@ -1280,7 +1317,8 @@ && isIntegerNumber(argumentTypes.get(2)))) { String.format( "Window function [%s] should only have one to three argument", functionName)); } - if (argumentTypes.size() >= 2 && !isIntegerNumber(argumentTypes.get(1))) { + if (argumentTypes.size() >= 2 + && !CommonMetadataUtils.isIntegerNumber(argumentTypes.get(1))) { throw new SemanticException( String.format( "Window function [%s]'s second argument must be integer type", functionName)); @@ -1379,11 +1417,6 @@ public boolean canCoerce(final Type from, final Type to) { return true; } - @Override - public IPartitionFetcher getPartitionFetcher() { - return ClusterPartitionFetcher.getInstance(); - } - @Override public Map> indexScan( final QualifiedObjectName tableName, @@ -1478,161 +1511,4 @@ public DataPartition getDataPartitionWithUnclosedTimeRange( return partitionFetcher.getDataPartitionWithUnclosedTimeRange( Collections.singletonMap(database, sgNameToQueryParamsMap)); } - - @Override - public TableFunction getTableFunction(String functionName) { - if (TableBuiltinTableFunction.isBuiltInTableFunction(functionName)) { - return TableBuiltinTableFunction.getBuiltinTableFunction(functionName); - } else if (TableUDFUtils.isTableFunction(functionName)) { - return TableUDFUtils.getTableFunction(functionName); - } else { - throw new SemanticException("Unknown function: " + functionName); - } - } - - public static boolean isTwoNumericType(List argumentTypes) { - return argumentTypes.size() == 2 - && isNumericType(argumentTypes.get(0)) - && isNumericType(argumentTypes.get(1)); - } - - public static boolean isOneNumericType(List argumentTypes) { - return argumentTypes.size() == 1 && isNumericType(argumentTypes.get(0)); - } - - public static boolean isTwoSupportedMathNumericType(List argumentTypes) { - return argumentTypes.size() == 2 - && isSupportedMathNumericType(argumentTypes.get(0)) - && isSupportedMathNumericType(argumentTypes.get(1)); - } - - public static boolean isOneSupportedMathNumericType(List argumentTypes) { - return argumentTypes.size() == 1 && isSupportedMathNumericType(argumentTypes.get(0)); - } - - public static boolean isOneBooleanType(List argumentTypes) { - return argumentTypes.size() == 1 && BOOLEAN.equals(argumentTypes.get(0)); - } - - public static boolean isOneCharType(List argumentTypes) { - return argumentTypes.size() == 1 && isCharType(argumentTypes.get(0)); - } - - public static boolean isTwoCharType(List argumentTypes) { - return argumentTypes.size() == 2 - && isCharType(argumentTypes.get(0)) - && isCharType(argumentTypes.get(1)); - } - - public static boolean isThreeCharType(List argumentTypes) { - return argumentTypes.size() == 3 - && isCharType(argumentTypes.get(0)) - && isCharType(argumentTypes.get(1)) - && isCharType(argumentTypes.get(2)); - } - - public static boolean isCharType(Type type) { - return TEXT.equals(type) || StringType.STRING.equals(type); - } - - public static boolean isObjectType(Type type) { - return ObjectType.OBJECT.equals(type); - } - - public static boolean isBlobType(Type type) { - return BLOB.equals(type); - } - - public static boolean isBool(Type type) { - return BOOLEAN.equals(type); - } - - public static boolean isDecimalType(Type type) { - return DOUBLE.equals(type) || FLOAT.equals(type); - } - - public static boolean isSupportedMathNumericType(Type type) { - return DOUBLE.equals(type) || FLOAT.equals(type) || INT32.equals(type) || INT64.equals(type); - } - - public static boolean isNumericType(Type type) { - return DOUBLE.equals(type) - || FLOAT.equals(type) - || INT32.equals(type) - || INT64.equals(type) - || TIMESTAMP.equals(type); - } - - public static boolean isTimestampType(Type type) { - return TIMESTAMP.equals(type); - } - - public static boolean isUnknownType(Type type) { - return UNKNOWN.equals(type); - } - - public static boolean isIntegerNumber(Type type) { - return INT32.equals(type) || INT64.equals(type); - } - - public static boolean isTwoTypeComparable(List argumentTypes) { - if (argumentTypes.size() != 2) { - return false; - } - Type left = argumentTypes.get(0); - Type right = argumentTypes.get(1); - if (left.equals(right)) { - return true; - } - - // Boolean type and Binary Type can not be compared with other types - return (isNumericType(left) && isNumericType(right)) - || (isCharType(left) && isCharType(right)) - || (isUnknownType(left) && (isNumericType(right) || isCharType(right))) - || ((isNumericType(left) || isCharType(left)) && isUnknownType(right)); - } - - public static boolean areAllTypesSameAndComparable(List argumentTypes) { - if (argumentTypes == null || argumentTypes.isEmpty()) { - return true; - } - Type firstType = argumentTypes.get(0); - if (!firstType.isComparable()) { - return false; - } - return argumentTypes.stream().allMatch(type -> type.equals(firstType)); - } - - public static boolean isArithmeticType(Type type) { - return INT32.equals(type) - || INT64.equals(type) - || FLOAT.equals(type) - || DOUBLE.equals(type) - || DATE.equals(type) - || TIMESTAMP.equals(type); - } - - public static boolean isTwoTypeCalculable(List argumentTypes) { - if (argumentTypes.size() != 2) { - return false; - } - Type left = argumentTypes.get(0); - Type right = argumentTypes.get(1); - if ((isUnknownType(left) && isArithmeticType(right)) - || (isUnknownType(right) && isArithmeticType(left))) { - return true; - } - return isArithmeticType(left) && isArithmeticType(right); - } - - public static void throwTableNotExistsException(final String database, final String tableName) { - throw new SemanticException(new TableNotExistsException(database, tableName)); - } - - public static void throwColumnNotExistsException(final Object columnName) { - throw new SemanticException( - new IoTDBException( - String.format("Column '%s' cannot be resolved.", columnName), - TSStatusCode.COLUMN_NOT_EXISTS.getStatusCode())); - } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TreeDeviceViewSchema.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TreeDeviceViewSchema.java index 5b75fd5965072..8ee4583bd8f34 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TreeDeviceViewSchema.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TreeDeviceViewSchema.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.metadata; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.commons.schema.table.TreeViewSchema; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/SchemaPredicateUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/SchemaPredicateUtil.java index c794ab3fba788..6eb90d0fa9419 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/SchemaPredicateUtil.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/SchemaPredicateUtil.java @@ -19,6 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; import org.apache.iotdb.commons.schema.filter.SchemaFilter; import org.apache.iotdb.commons.schema.filter.SchemaFilterType; import org.apache.iotdb.commons.schema.filter.impl.StringValueFilterVisitor; @@ -31,10 +35,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.schema.CheckSchemaPredicateVisitor; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.schema.ConvertSchemaPredicateToFilterVisitor; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; import org.apache.tsfile.utils.Pair; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaFetcher.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaFetcher.java index be8ddca051be4..eaf1a85158ed0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaFetcher.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaFetcher.java @@ -21,6 +21,7 @@ import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.filter.SchemaFilter; import org.apache.iotdb.commons.schema.filter.impl.singlechild.TagFilter; @@ -43,7 +44,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceSchemaCache; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TreeDeviceNormalSchema; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AbstractTraverseDevice; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FetchDevice; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDevice; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaValidator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaValidator.java index 2331d0e4ffcc4..a83752e4d9519 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaValidator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaValidator.java @@ -20,7 +20,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.Coordinator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableHeaderSchemaValidator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableHeaderSchemaValidator.java index 7f578cef4ae57..baf2056984e44 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableHeaderSchemaValidator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableHeaderSchemaValidator.java @@ -19,9 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher; +import org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.commons.schema.table.InsertNodeMeasurementInfo; import org.apache.iotdb.commons.schema.table.TreeViewSchema; import org.apache.iotdb.commons.schema.table.TsTable; @@ -35,7 +40,6 @@ import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.load.LoadAnalyzeTableColumnDisorderException; import org.apache.iotdb.db.exception.sql.ColumnCreationFailException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.lock.DataNodeSchemaLockManager; import org.apache.iotdb.db.queryengine.plan.analyze.lock.SchemaLockType; @@ -43,11 +47,7 @@ import org.apache.iotdb.db.queryengine.plan.execution.config.executor.ClusterConfigTaskExecutor; import org.apache.iotdb.db.queryengine.plan.execution.config.metadata.relational.AlterTableAddColumnTask; import org.apache.iotdb.db.queryengine.plan.execution.config.metadata.relational.CreateTableTask; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; import org.apache.iotdb.db.schemaengine.table.DataNodeTreeViewSchemaUtils; import org.apache.iotdb.rpc.TSStatusCode; @@ -73,8 +73,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; import static org.apache.iotdb.commons.schema.table.TsTable.TIME_COLUMN_NAME; -import static org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; import static org.apache.iotdb.db.utils.EncodingInferenceUtils.getDefaultEncoding; public class TableHeaderSchemaValidator { @@ -136,7 +136,7 @@ public Optional validateTableHeaderSchema4TsFile( "auto create table succeed, but cannot get table schema in current node's DataNodeTableCache, may be caused by concurrently auto creating table"); } } else { - TableMetadataImpl.throwTableNotExistsException(database, tableSchema.getTableName()); + CommonMetadataUtils.throwTableNotExistsException(database, tableSchema.getTableName()); } } else { DataNodeTreeViewSchemaUtils.checkTableInWrite(database, table); @@ -376,7 +376,7 @@ public void validateInsertNodeMeasurements( "auto create table succeed, but cannot get table schema in current node's DataNodeTableCache, may be caused by concurrently auto creating table"); } } else { - TableMetadataImpl.throwTableNotExistsException(database, measurementInfo.getTableName()); + CommonMetadataUtils.throwTableNotExistsException(database, measurementInfo.getTableName()); } } else { DataNodeTreeViewSchemaUtils.checkTableInWrite(database, table); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToBlobLiteralVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToBlobLiteralVisitor.java deleted file mode 100644 index 8b374825068b8..0000000000000 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToBlobLiteralVisitor.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.iotdb.db.queryengine.plan.relational.planner; - -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; - -import org.apache.tsfile.utils.Binary; - -// return NULL, if we cannot parse literal to blob type -public class CastToBlobLiteralVisitor extends AstVisitor { - - @Override - protected Binary visitLiteral(Literal node, Void context) { - throw new UnsupportedOperationException("Unhandled literal type: " + node); - } - - @Override - protected Binary visitBooleanLiteral(BooleanLiteral node, Void context) { - return null; - } - - @Override - protected Binary visitLongLiteral(LongLiteral node, Void context) { - return null; - } - - @Override - protected Binary visitDoubleLiteral(DoubleLiteral node, Void context) { - return null; - } - - @Override - protected Binary visitFloatLiteral(FloatLiteral node, Void context) { - return null; - } - - @Override - protected Binary visitStringLiteral(StringLiteral node, Void context) { - try { - return new Binary(new BinaryLiteral(node.getValue()).getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Binary visitBinaryLiteral(BinaryLiteral node, Void context) { - return new Binary(node.getValue()); - } - - @Override - protected Binary visitGenericLiteral(GenericLiteral node, Void context) { - try { - return new Binary(new BinaryLiteral(node.getValue()).getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Binary visitNullLiteral(NullLiteral node, Void context) { - return null; - } -} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToBooleanLiteralVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToBooleanLiteralVisitor.java deleted file mode 100644 index f2019f0a2ab57..0000000000000 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToBooleanLiteralVisitor.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.iotdb.db.queryengine.plan.relational.planner; - -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; - -// return NULL, if we cannot parse literal to boolean type -public class CastToBooleanLiteralVisitor extends AstVisitor { - - @Override - protected Boolean visitLiteral(Literal node, Void context) { - throw new UnsupportedOperationException("Unhandled literal type: " + node); - } - - @Override - protected Boolean visitBooleanLiteral(BooleanLiteral node, Void context) { - return node.getValue(); - } - - @Override - protected Boolean visitLongLiteral(LongLiteral node, Void context) { - return node.getParsedValue() != 0; - } - - @Override - protected Boolean visitDoubleLiteral(DoubleLiteral node, Void context) { - return node.getValue() != 0; - } - - @Override - protected Boolean visitFloatLiteral(FloatLiteral node, Void context) { - return node.getValue() != 0; - } - - @Override - protected Boolean visitStringLiteral(StringLiteral node, Void context) { - try { - return Boolean.parseBoolean(node.getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Boolean visitBinaryLiteral(BinaryLiteral node, Void context) { - return null; - } - - @Override - protected Boolean visitGenericLiteral(GenericLiteral node, Void context) { - try { - return Boolean.parseBoolean(node.getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Boolean visitNullLiteral(NullLiteral node, Void context) { - return null; - } -} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToDateLiteralVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToDateLiteralVisitor.java deleted file mode 100644 index f1225a1bf3177..0000000000000 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToDateLiteralVisitor.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.iotdb.db.queryengine.plan.relational.planner; - -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; - -import org.apache.tsfile.utils.DateUtils; - -// return NULL, if we cannot parse literal to date type -public class CastToDateLiteralVisitor extends AstVisitor { - - @Override - protected Integer visitLiteral(Literal node, Void context) { - throw new UnsupportedOperationException("Unhandled literal type: " + node); - } - - @Override - protected Integer visitBooleanLiteral(BooleanLiteral node, Void context) { - return null; - } - - @Override - protected Integer visitLongLiteral(LongLiteral node, Void context) { - return (int) node.getParsedValue(); - } - - @Override - protected Integer visitDoubleLiteral(DoubleLiteral node, Void context) { - return (int) node.getValue(); - } - - @Override - protected Integer visitFloatLiteral(FloatLiteral node, Void context) { - return (int) node.getValue(); - } - - @Override - protected Integer visitStringLiteral(StringLiteral node, Void context) { - try { - return DateUtils.parseDateExpressionToInt(node.getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Integer visitBinaryLiteral(BinaryLiteral node, Void context) { - return null; - } - - @Override - protected Integer visitGenericLiteral(GenericLiteral node, Void context) { - try { - return DateUtils.parseDateExpressionToInt(node.getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Integer visitNullLiteral(NullLiteral node, Void context) { - return null; - } -} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToDoubleLiteralVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToDoubleLiteralVisitor.java deleted file mode 100644 index c974ea3a079b0..0000000000000 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToDoubleLiteralVisitor.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.iotdb.db.queryengine.plan.relational.planner; - -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; - -// return NULL, if we cannot parse literal to double type -public class CastToDoubleLiteralVisitor extends AstVisitor { - - @Override - protected Double visitLiteral(Literal node, Void context) { - throw new UnsupportedOperationException("Unhandled literal type: " + node); - } - - @Override - protected Double visitBooleanLiteral(BooleanLiteral node, Void context) { - return node.getValue() ? 1.0d : 0.0d; - } - - @Override - protected Double visitLongLiteral(LongLiteral node, Void context) { - return (double) node.getParsedValue(); - } - - @Override - protected Double visitDoubleLiteral(DoubleLiteral node, Void context) { - return node.getValue(); - } - - @Override - protected Double visitFloatLiteral(FloatLiteral node, Void context) { - return (double) node.getValue(); - } - - @Override - protected Double visitStringLiteral(StringLiteral node, Void context) { - try { - return Double.parseDouble(node.getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Double visitBinaryLiteral(BinaryLiteral node, Void context) { - return null; - } - - @Override - protected Double visitGenericLiteral(GenericLiteral node, Void context) { - try { - return Double.parseDouble(node.getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Double visitNullLiteral(NullLiteral node, Void context) { - return null; - } -} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToFloatLiteralVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToFloatLiteralVisitor.java deleted file mode 100644 index e1a1e384594cb..0000000000000 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToFloatLiteralVisitor.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.iotdb.db.queryengine.plan.relational.planner; - -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; - -// return NULL, if we cannot parse literal to float type -public class CastToFloatLiteralVisitor extends AstVisitor { - - @Override - protected Float visitLiteral(Literal node, Void context) { - throw new UnsupportedOperationException("Unhandled literal type: " + node); - } - - @Override - protected Float visitBooleanLiteral(BooleanLiteral node, Void context) { - return node.getValue() ? 1.0f : 0.0f; - } - - @Override - protected Float visitLongLiteral(LongLiteral node, Void context) { - return (float) node.getParsedValue(); - } - - @Override - protected Float visitDoubleLiteral(DoubleLiteral node, Void context) { - return (float) node.getValue(); - } - - @Override - protected Float visitFloatLiteral(FloatLiteral node, Void context) { - return node.getValue(); - } - - @Override - protected Float visitStringLiteral(StringLiteral node, Void context) { - try { - return Float.parseFloat(node.getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Float visitBinaryLiteral(BinaryLiteral node, Void context) { - return null; - } - - @Override - protected Float visitGenericLiteral(GenericLiteral node, Void context) { - try { - return Float.parseFloat(node.getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Float visitNullLiteral(NullLiteral node, Void context) { - return null; - } -} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToInt32LiteralVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToInt32LiteralVisitor.java deleted file mode 100644 index 822ef83ba4715..0000000000000 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToInt32LiteralVisitor.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.iotdb.db.queryengine.plan.relational.planner; - -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; - -// return NULL, if we cannot parse literal to INT32 type -public class CastToInt32LiteralVisitor extends AstVisitor { - - @Override - protected Integer visitLiteral(Literal node, Void context) { - throw new UnsupportedOperationException("Unhandled literal type: " + node); - } - - @Override - protected Integer visitBooleanLiteral(BooleanLiteral node, Void context) { - return node.getValue() ? 1 : 0; - } - - @Override - protected Integer visitLongLiteral(LongLiteral node, Void context) { - return (int) node.getParsedValue(); - } - - @Override - protected Integer visitDoubleLiteral(DoubleLiteral node, Void context) { - return (int) node.getValue(); - } - - @Override - protected Integer visitFloatLiteral(FloatLiteral node, Void context) { - return (int) node.getValue(); - } - - @Override - protected Integer visitStringLiteral(StringLiteral node, Void context) { - try { - return Integer.parseInt(node.getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Integer visitBinaryLiteral(BinaryLiteral node, Void context) { - return null; - } - - @Override - protected Integer visitGenericLiteral(GenericLiteral node, Void context) { - try { - return Integer.parseInt(node.getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Integer visitNullLiteral(NullLiteral node, Void context) { - return null; - } -} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToInt64LiteralVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToInt64LiteralVisitor.java deleted file mode 100644 index 896d4c868e008..0000000000000 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CastToInt64LiteralVisitor.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.iotdb.db.queryengine.plan.relational.planner; - -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; - -// return NULL, if we cannot parse literal to INT64 type -public class CastToInt64LiteralVisitor extends AstVisitor { - - @Override - protected Long visitLiteral(Literal node, Void context) { - throw new UnsupportedOperationException("Unhandled literal type: " + node); - } - - @Override - protected Long visitBooleanLiteral(BooleanLiteral node, Void context) { - return node.getValue() ? 1L : 0L; - } - - @Override - protected Long visitLongLiteral(LongLiteral node, Void context) { - return node.getParsedValue(); - } - - @Override - protected Long visitDoubleLiteral(DoubleLiteral node, Void context) { - return (long) node.getValue(); - } - - @Override - protected Long visitFloatLiteral(FloatLiteral node, Void context) { - return (long) node.getValue(); - } - - @Override - protected Long visitStringLiteral(StringLiteral node, Void context) { - try { - return Long.parseLong(node.getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Long visitBinaryLiteral(BinaryLiteral node, Void context) { - return null; - } - - @Override - protected Long visitGenericLiteral(GenericLiteral node, Void context) { - try { - return Long.parseLong(node.getValue()); - } catch (Exception e) { - return null; - } - } - - @Override - protected Long visitNullLiteral(NullLiteral node, Void context) { - return null; - } -} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteMaterializer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteMaterializer.java index 03eb0baa00538..5025f3687fcba 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteMaterializer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteMaterializer.java @@ -26,6 +26,14 @@ import org.apache.iotdb.commons.client.sync.SyncDataNodeInternalServiceClient; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.With; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WithQuery; +import org.apache.iotdb.commons.queryengine.utils.cte.CteDataStore; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.exception.mpp.FragmentInstanceFetchException; import org.apache.iotdb.db.protocol.session.SessionManager; @@ -39,18 +47,10 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.With; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WithQuery; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.apache.iotdb.db.queryengine.statistics.FragmentInstanceStatisticsDrawer; import org.apache.iotdb.db.queryengine.statistics.QueryStatisticsFetcher; import org.apache.iotdb.db.queryengine.statistics.StatisticLine; -import org.apache.iotdb.db.utils.cte.CteDataStore; import org.apache.iotdb.mpp.rpc.thrift.TFetchFragmentInstanceStatisticsResp; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/EqualityInference.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/EqualityInference.java index f5ecd7d6eb7d7..0dc4d121d54d3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/EqualityInference.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/EqualityInference.java @@ -18,11 +18,12 @@ */ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.SubExpressionExtractor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.utils.DisjointSet; import com.google.common.annotations.VisibleForTesting; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExpressionExtractor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExpressionExtractor.java index 5176e87a29326..91bcc8a974328 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExpressionExtractor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExpressionExtractor.java @@ -19,15 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.iterative.GroupReference; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.SimplePlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExpressionSymbolInliner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExpressionSymbolInliner.java index f792d4b78cda7..d34332f64df6a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExpressionSymbolInliner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExpressionSymbolInliner.java @@ -19,10 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionRewriter; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionTreeRewriter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.HashMultiset; import com.google.common.collect.Multiset; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/IrExpressionInterpreter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/IrExpressionInterpreter.java index ae17e5eab7bf3..58053bf6dccd3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/IrExpressionInterpreter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/IrExpressionInterpreter.java @@ -19,39 +19,40 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.common.SessionInfo; +import org.apache.iotdb.calc.transformation.dag.util.CastFunctionUtils; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.function.InterpretedFunctionInvoker; +import org.apache.iotdb.commons.queryengine.plan.relational.function.OperatorType; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; -import org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.helper.CastFunctionHelper; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; -import org.apache.iotdb.db.queryengine.plan.relational.function.InterpretedFunctionInvoker; -import org.apache.iotdb.db.queryengine.plan.relational.function.OperatorType; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.DeterminismEvaluator; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.queryengine.plan.relational.type.TypeCoercion; import com.google.common.collect.ImmutableList; @@ -76,12 +77,12 @@ import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.Iterables.getOnlyElement; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.ExtractTransformer.constructEvaluateFunction; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression.Sign.MINUS; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression.Sign.PLUS; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureTranslator.toTypeSignature; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.DeterminismEvaluator.isDeterministic; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.isEffectivelyLiteral; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression.Sign.MINUS; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression.Sign.PLUS; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toTypeSignature; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.ExtractTransformer.constructEvaluateFunction; public class IrExpressionInterpreter { @@ -142,7 +143,7 @@ public Object optimize(SymbolResolver inputs) { return new Visitor(true).processWithExceptionHandling(expression, inputs); } - private class Visitor extends AstVisitor { + private class Visitor implements AstVisitor { private final boolean optimize; private Visitor(boolean optimize) { @@ -172,17 +173,17 @@ private Object processWithExceptionHandling(Expression expression, Object contex } @Override - protected Object visitSymbolReference(SymbolReference node, Object context) { + public Object visitSymbolReference(SymbolReference node, Object context) { return ((SymbolResolver) context).getValue(Symbol.from(node)); } @Override - protected Object visitLiteral(Literal node, Object context) { + public Object visitLiteral(Literal node, Object context) { return literalInterpreter.evaluate(node, type(node)); } @Override - protected Object visitIsNullPredicate(IsNullPredicate node, Object context) { + public Object visitIsNullPredicate(IsNullPredicate node, Object context) { Object value = processWithExceptionHandling(node.getValue(), context); if (value instanceof Expression) { @@ -193,7 +194,7 @@ protected Object visitIsNullPredicate(IsNullPredicate node, Object context) { } @Override - protected Object visitIsNotNullPredicate(IsNotNullPredicate node, Object context) { + public Object visitIsNotNullPredicate(IsNotNullPredicate node, Object context) { Object value = processWithExceptionHandling(node.getValue(), context); if (value instanceof Expression) { @@ -204,7 +205,7 @@ protected Object visitIsNotNullPredicate(IsNotNullPredicate node, Object context } @Override - protected Object visitSearchedCaseExpression(SearchedCaseExpression node, Object context) { + public Object visitSearchedCaseExpression(SearchedCaseExpression node, Object context) { Object newDefault = null; boolean foundNewDefault = false; @@ -247,7 +248,7 @@ protected Object visitSearchedCaseExpression(SearchedCaseExpression node, Object } @Override - protected Object visitIfExpression(IfExpression node, Object context) { + public Object visitIfExpression(IfExpression node, Object context) { Object condition = processWithExceptionHandling(node.getCondition(), context); if (condition instanceof Expression) { @@ -268,7 +269,7 @@ protected Object visitIfExpression(IfExpression node, Object context) { } @Override - protected Object visitSimpleCaseExpression(SimpleCaseExpression node, Object context) { + public Object visitSimpleCaseExpression(SimpleCaseExpression node, Object context) { Object operand = processWithExceptionHandling(node.getOperand(), context); Type operandType = type(node.getOperand()); @@ -335,7 +336,7 @@ private Type type(Expression expression) { } @Override - protected Object visitCoalesceExpression(CoalesceExpression node, Object context) { + public Object visitCoalesceExpression(CoalesceExpression node, Object context) { List newOperands = processOperands(node, context); if (newOperands.isEmpty()) { return null; @@ -390,7 +391,7 @@ private List processOperands(CoalesceExpression node, Object context) { } @Override - protected Object visitInPredicate(InPredicate node, Object context) { + public Object visitInPredicate(InPredicate node, Object context) { Object value = processWithExceptionHandling(node.getValue(), context); InListExpression valueList = (InListExpression) node.getValueList(); @@ -493,7 +494,7 @@ protected Object visitInPredicate(InPredicate node, Object context) { } @Override - protected Object visitArithmeticUnary(ArithmeticUnaryExpression node, Object context) { + public Object visitArithmeticUnary(ArithmeticUnaryExpression node, Object context) { Object value = processWithExceptionHandling(node.getValue(), context); if (value == null) { return null; @@ -534,7 +535,7 @@ protected Object visitArithmeticUnary(ArithmeticUnaryExpression node, Object con } @Override - protected Object visitArithmeticBinary(ArithmeticBinaryExpression node, Object context) { + public Object visitArithmeticBinary(ArithmeticBinaryExpression node, Object context) { Object left = processWithExceptionHandling(node.getLeft(), context); if (left == null) { return null; @@ -562,7 +563,7 @@ protected Object visitArithmeticBinary(ArithmeticBinaryExpression node, Object c } @Override - protected Object visitComparisonExpression(ComparisonExpression node, Object context) { + public Object visitComparisonExpression(ComparisonExpression node, Object context) { ComparisonExpression.Operator operator = node.getOperator(); Expression left = node.getLeft(); Expression right = node.getRight(); @@ -746,7 +747,7 @@ private ComparisonExpression flipComparison(ComparisonExpression comparisonExpre } @Override - protected Object visitBetweenPredicate(BetweenPredicate node, Object context) { + public Object visitBetweenPredicate(BetweenPredicate node, Object context) { Object value = processWithExceptionHandling(node.getValue(), context); if (value == null) { return null; @@ -791,7 +792,7 @@ protected Object visitBetweenPredicate(BetweenPredicate node, Object context) { } @Override - protected Object visitNotExpression(NotExpression node, Object context) { + public Object visitNotExpression(NotExpression node, Object context) { Object value = processWithExceptionHandling(node.getValue(), context); if (value == null) { return null; @@ -805,7 +806,7 @@ protected Object visitNotExpression(NotExpression node, Object context) { } @Override - protected Object visitLogicalExpression(LogicalExpression node, Object context) { + public Object visitLogicalExpression(LogicalExpression node, Object context) { List terms = new ArrayList<>(); List types = new ArrayList<>(); @@ -858,12 +859,12 @@ protected Object visitLogicalExpression(LogicalExpression node, Object context) } @Override - protected Object visitBooleanLiteral(BooleanLiteral node, Object context) { + public Object visitBooleanLiteral(BooleanLiteral node, Object context) { return node.equals(BooleanLiteral.TRUE_LITERAL); } @Override - protected Object visitFunctionCall(FunctionCall node, Object context) { + public Object visitFunctionCall(FunctionCall node, Object context) { List argumentTypes = new ArrayList<>(); List argumentValues = new ArrayList<>(); for (Expression expr : node.getArguments()) { @@ -909,7 +910,7 @@ public Object visitCast(Cast node, Object context) { } try { - return CastFunctionHelper.cast(value, sourceType, targetType, session); + return CastFunctionUtils.cast(value, sourceType, targetType, session); } catch (RuntimeException e) { if (node.isSafe()) { return null; @@ -919,7 +920,7 @@ public Object visitCast(Cast node, Object context) { } @Override - protected Object visitExtract(Extract node, Object context) { + public Object visitExtract(Extract node, Object context) { Object value = processWithExceptionHandling(node.getExpression(), context); if (value == null) { return null; @@ -936,7 +937,7 @@ protected Object visitExtract(Extract node, Object context) { } @Override - protected Object visitExpression(Expression node, Object context) { + public Object visitExpression(Expression node, Object context) { throw new SemanticException("not yet implemented: " + node.getClass().getName()); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/IrTypeAnalyzer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/IrTypeAnalyzer.java index aa03381659ed1..bf1b4618e80e5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/IrTypeAnalyzer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/IrTypeAnalyzer.java @@ -19,50 +19,51 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.function.OperatorType; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentDatabase; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentUser; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TimeDurationLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; -import org.apache.iotdb.db.queryengine.plan.relational.function.OperatorType; import org.apache.iotdb.db.queryengine.plan.relational.metadata.OperatorNotFoundException; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; import org.apache.iotdb.db.queryengine.plan.relational.security.AllowAllAccessControl; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentDatabase; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentUser; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Row; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TimeDurationLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.queryengine.plan.relational.type.TypeCoercionUtils; import com.google.common.collect.ImmutableList; @@ -89,8 +90,8 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toTypeSignature; -import static org.apache.iotdb.db.utils.TimestampPrecisionUtils.currPrecision; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureTranslator.toTypeSignature; +import static org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils.currPrecision; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; import static org.apache.tsfile.read.common.type.FloatType.FLOAT; @@ -126,7 +127,7 @@ public Type getType(SessionInfo session, TypeProvider inputTypes, Expression exp return getTypes(session, inputTypes, expression).get(NodeRef.of(expression)); } - private static class Visitor extends AstVisitor { + private static class Visitor implements AstVisitor { private static final AccessControl ALLOW_ALL_ACCESS_CONTROL = new AllowAllAccessControl(); private final PlannerContext plannerContext; @@ -162,11 +163,11 @@ public Type process(Node node, Context context) { return type; } } - return super.process(node, context); + return AstVisitor.super.process(node, context); } @Override - protected Type visitSymbolReference(SymbolReference node, Context context) { + public Type visitSymbolReference(SymbolReference node, Context context) { Symbol symbol = Symbol.from(node); Type type = context.getArgumentTypes().get(symbol); if (type == null) { @@ -177,38 +178,38 @@ protected Type visitSymbolReference(SymbolReference node, Context context) { } @Override - protected Type visitNotExpression(NotExpression node, Context context) { + public Type visitNotExpression(NotExpression node, Context context) { process(node.getValue(), context); return setExpressionType(node, BOOLEAN); } @Override - protected Type visitLogicalExpression(LogicalExpression node, Context context) { + public Type visitLogicalExpression(LogicalExpression node, Context context) { node.getTerms().forEach(term -> process(term, context)); return setExpressionType(node, BOOLEAN); } @Override - protected Type visitComparisonExpression(ComparisonExpression node, Context context) { + public Type visitComparisonExpression(ComparisonExpression node, Context context) { process(node.getLeft(), context); process(node.getRight(), context); return setExpressionType(node, BOOLEAN); } @Override - protected Type visitIsNullPredicate(IsNullPredicate node, Context context) { + public Type visitIsNullPredicate(IsNullPredicate node, Context context) { process(node.getValue(), context); return setExpressionType(node, BOOLEAN); } @Override - protected Type visitIsNotNullPredicate(IsNotNullPredicate node, Context context) { + public Type visitIsNotNullPredicate(IsNotNullPredicate node, Context context) { process(node.getValue(), context); return setExpressionType(node, BOOLEAN); } @Override - protected Type visitNullIfExpression(NullIfExpression node, Context context) { + public Type visitNullIfExpression(NullIfExpression node, Context context) { Type firstType = process(node.getFirst(), context); Type ignored = process(node.getSecond(), context); @@ -223,7 +224,7 @@ protected Type visitNullIfExpression(NullIfExpression node, Context context) { } @Override - protected Type visitIfExpression(IfExpression node, Context context) { + public Type visitIfExpression(IfExpression node, Context context) { Type conditionType = process(node.getCondition(), context); checkArgument(conditionType.equals(BOOLEAN), "Condition must be boolean: %s", conditionType); @@ -238,7 +239,7 @@ protected Type visitIfExpression(IfExpression node, Context context) { } @Override - protected Type visitSearchedCaseExpression(SearchedCaseExpression node, Context context) { + public Type visitSearchedCaseExpression(SearchedCaseExpression node, Context context) { for (WhenClause whenClause : node.getWhenClauses()) { coerceType( context, @@ -267,7 +268,7 @@ protected Type visitSearchedCaseExpression(SearchedCaseExpression node, Context } @Override - protected Type visitSimpleCaseExpression(SimpleCaseExpression node, Context context) { + public Type visitSimpleCaseExpression(SimpleCaseExpression node, Context context) { Type operandType = process(node.getOperand(), context); LinkedHashSet resultTypes = @@ -307,7 +308,7 @@ protected Type visitSimpleCaseExpression(SimpleCaseExpression node, Context cont } @Override - protected Type visitCoalesceExpression(CoalesceExpression node, Context context) { + public Type visitCoalesceExpression(CoalesceExpression node, Context context) { LinkedHashSet types = node.getOperands().stream() .map(operand -> process(operand, context)) @@ -321,18 +322,18 @@ protected Type visitCoalesceExpression(CoalesceExpression node, Context context) } @Override - protected Type visitArithmeticUnary(ArithmeticUnaryExpression node, Context context) { + public Type visitArithmeticUnary(ArithmeticUnaryExpression node, Context context) { return setExpressionType(node, process(node.getValue(), context)); } @Override - protected Type visitExtract(Extract node, Context context) { + public Type visitExtract(Extract node, Context context) { process(node.getExpression(), context); return setExpressionType(node, INT64); } @Override - protected Type visitArithmeticBinary(ArithmeticBinaryExpression node, Context context) { + public Type visitArithmeticBinary(ArithmeticBinaryExpression node, Context context) { ImmutableList.Builder argumentTypes = ImmutableList.builder(); argumentTypes.add(process(node.getLeft(), context)); argumentTypes.add(process(node.getRight(), context)); @@ -350,17 +351,17 @@ protected Type visitArithmeticBinary(ArithmeticBinaryExpression node, Context co } @Override - protected Type visitStringLiteral(StringLiteral node, Context context) { + public Type visitStringLiteral(StringLiteral node, Context context) { return setExpressionType(node, StringType.STRING); } @Override - protected Type visitBinaryLiteral(BinaryLiteral node, Context context) { + public Type visitBinaryLiteral(BinaryLiteral node, Context context) { return setExpressionType(node, BlobType.BLOB); } @Override - protected Type visitLongLiteral(LongLiteral node, Context context) { + public Type visitLongLiteral(LongLiteral node, Context context) { if (node.getParsedValue() >= Integer.MIN_VALUE && node.getParsedValue() <= Integer.MAX_VALUE) { return setExpressionType(node, INT32); @@ -370,22 +371,22 @@ protected Type visitLongLiteral(LongLiteral node, Context context) { } @Override - protected Type visitDoubleLiteral(DoubleLiteral node, Context context) { + public Type visitDoubleLiteral(DoubleLiteral node, Context context) { return setExpressionType(node, DOUBLE); } @Override - protected Type visitFloatLiteral(FloatLiteral node, Context context) { + public Type visitFloatLiteral(FloatLiteral node, Context context) { return setExpressionType(node, FLOAT); } @Override - protected Type visitBooleanLiteral(BooleanLiteral node, Context context) { + public Type visitBooleanLiteral(BooleanLiteral node, Context context) { return setExpressionType(node, BOOLEAN); } @Override - protected Type visitGenericLiteral(GenericLiteral node, Context context) { + public Type visitGenericLiteral(GenericLiteral node, Context context) { Type type; if (DateType.DATE.getTypeEnum().name().equals(node.getType())) { type = DateType.DATE; @@ -400,12 +401,12 @@ protected Type visitGenericLiteral(GenericLiteral node, Context context) { } @Override - protected Type visitNullLiteral(NullLiteral node, Context context) { + public Type visitNullLiteral(NullLiteral node, Context context) { return setExpressionType(node, UNKNOWN); } @Override - protected Type visitTimeDurationLiteral(TimeDurationLiteral node, Context context) { + public Type visitTimeDurationLiteral(TimeDurationLiteral node, Context context) { long value = node.getValue().getTotalDuration(currPrecision); if (value >= Integer.MIN_VALUE && value <= Integer.MAX_VALUE) { @@ -416,7 +417,7 @@ protected Type visitTimeDurationLiteral(TimeDurationLiteral node, Context contex } @Override - protected Type visitFunctionCall(FunctionCall node, Context context) { + public Type visitFunctionCall(FunctionCall node, Context context) { // Function should already be resolved in IR List argumentTypes = new ArrayList<>(node.getArguments().size()); for (int i = 0; i < node.getArguments().size(); i++) { @@ -432,7 +433,7 @@ protected Type visitFunctionCall(FunctionCall node, Context context) { } @Override - protected Type visitBetweenPredicate(BetweenPredicate node, Context context) { + public Type visitBetweenPredicate(BetweenPredicate node, Context context) { process(node.getValue(), context); process(node.getMin(), context); process(node.getMax(), context); @@ -448,7 +449,7 @@ public Type visitCast(Cast node, Context context) { } @Override - protected Type visitInPredicate(InPredicate node, Context context) { + public Type visitInPredicate(InPredicate node, Context context) { Expression value = node.getValue(); InListExpression valueList = (InListExpression) node.getValueList(); @@ -463,7 +464,7 @@ protected Type visitInPredicate(InPredicate node, Context context) { } @Override - protected Type visitRow(Row node, Context context) { + public Type visitRow(Row node, Context context) { List types = node.getItems().stream().map(child -> process(child, context)).collect(toImmutableList()); @@ -471,7 +472,7 @@ protected Type visitRow(Row node, Context context) { } @Override - protected Type visitLikePredicate(LikePredicate node, Context context) { + public Type visitLikePredicate(LikePredicate node, Context context) { process(node.getValue(), context); process(node.getPattern(), context); node.getEscape().ifPresent(e -> process(e, context)); @@ -479,23 +480,23 @@ protected Type visitLikePredicate(LikePredicate node, Context context) { } @Override - protected Type visitCurrentDatabase(final CurrentDatabase node, final Context context) { + public Type visitCurrentDatabase(final CurrentDatabase node, final Context context) { return setExpressionType(node, StringType.STRING); } @Override - protected Type visitCurrentUser(final CurrentUser node, final Context context) { + public Type visitCurrentUser(final CurrentUser node, final Context context) { return setExpressionType(node, StringType.STRING); } @Override - protected Type visitExpression(Expression node, Context context) { + public Type visitExpression(Expression node, Context context) { throw new UnsupportedOperationException( "Not a valid IR expression: " + node.getClass().getName()); } @Override - protected Type visitNode(Node node, Context context) { + public Type visitNode(Node node, Context context) { throw new UnsupportedOperationException( "Not a valid IR expression: " + node.getClass().getName()); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/LiteralEncoder.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/LiteralEncoder.java index dab0584413f85..8d7b10fa7fa9f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/LiteralEncoder.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/LiteralEncoder.java @@ -19,16 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; import com.google.common.collect.ImmutableList; import org.apache.tsfile.common.conf.TSFileConfig; @@ -44,10 +44,10 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isBlobType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isBool; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isCharType; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isBlobType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isBool; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isCharType; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; import static org.apache.tsfile.read.common.type.FloatType.FLOAT; import static org.apache.tsfile.read.common.type.IntType.INT32; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/LiteralInterpreter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/LiteralInterpreter.java index ffb14a700b43a..b8c4e229989fd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/LiteralInterpreter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/LiteralInterpreter.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TimeDurationLiteral; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TimeDurationLiteral; import org.apache.tsfile.common.conf.TSFileConfig; import org.apache.tsfile.read.common.type.DateType; @@ -41,7 +41,7 @@ import org.apache.tsfile.utils.Binary; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.utils.TimestampPrecisionUtils.currPrecision; +import static org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils.currPrecision; public class LiteralInterpreter { @@ -61,7 +61,7 @@ public Object evaluate(Expression node, Type type) { return new LiteralVisitor(type).process(node, null); } - private class LiteralVisitor extends AstVisitor { + private class LiteralVisitor implements AstVisitor { private final Type type; private LiteralVisitor(Type type) { @@ -69,42 +69,42 @@ private LiteralVisitor(Type type) { } @Override - protected Object visitLiteral(Literal node, Void context) { + public Object visitLiteral(Literal node, Void context) { throw new UnsupportedOperationException("Unhandled literal type: " + node); } @Override - protected Boolean visitBooleanLiteral(BooleanLiteral node, Void context) { + public Boolean visitBooleanLiteral(BooleanLiteral node, Void context) { return node.getValue(); } @Override - protected Long visitLongLiteral(LongLiteral node, Void context) { + public Long visitLongLiteral(LongLiteral node, Void context) { return node.getParsedValue(); } @Override - protected Double visitDoubleLiteral(DoubleLiteral node, Void context) { + public Double visitDoubleLiteral(DoubleLiteral node, Void context) { return node.getValue(); } @Override - protected Float visitFloatLiteral(FloatLiteral node, Void context) { + public Float visitFloatLiteral(FloatLiteral node, Void context) { return node.getValue(); } @Override - protected Binary visitStringLiteral(StringLiteral node, Void context) { + public Binary visitStringLiteral(StringLiteral node, Void context) { return new Binary(node.getValue(), TSFileConfig.STRING_CHARSET); } @Override - protected Binary visitBinaryLiteral(BinaryLiteral node, Void context) { + public Binary visitBinaryLiteral(BinaryLiteral node, Void context) { return new Binary(node.getValue()); } @Override - protected Object visitGenericLiteral(GenericLiteral node, Void context) { + public Object visitGenericLiteral(GenericLiteral node, Void context) { if (type.equals(TimestampType.TIMESTAMP)) { return Long.parseLong(node.getValue()); } else if (type.equals(DateType.DATE)) { @@ -115,12 +115,12 @@ protected Object visitGenericLiteral(GenericLiteral node, Void context) { } @Override - protected Object visitNullLiteral(NullLiteral node, Void context) { + public Object visitNullLiteral(NullLiteral node, Void context) { return null; } @Override - protected Long visitTimeDurationLiteral(TimeDurationLiteral node, Void context) { + public Long visitTimeDurationLiteral(TimeDurationLiteral node, Void context) { return node.getValue().getTotalDuration(currPrecision); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/NoOpSymbolResolver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/NoOpSymbolResolver.java index 37c3312c8c3d5..f71948106b367 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/NoOpSymbolResolver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/NoOpSymbolResolver.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; + public class NoOpSymbolResolver implements SymbolResolver { public static final NoOpSymbolResolver INSTANCE = new NoOpSymbolResolver(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/NodeAndMappings.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/NodeAndMappings.java index dab6d8209f9d7..a2563744d86dc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/NodeAndMappings.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/NodeAndMappings.java @@ -19,7 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/OrderingTranslator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/OrderingTranslator.java index 9d50c7658b665..0f82d623a2298 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/OrderingTranslator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/OrderingTranslator.java @@ -19,7 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem; public class OrderingTranslator { private OrderingTranslator() {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanBuilder.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanBuilder.java index b4714360224b2..3c8e5ba4193b6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanBuilder.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanBuilder.java @@ -19,14 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanner; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Scope; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import com.google.common.collect.ImmutableMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanNodeSearcher.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanNodeSearcher.java index 7a8b21b4730ab..c8d6992b211bd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanNodeSearcher.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanNodeSearcher.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlannerContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlannerContext.java index 094d417a74b3a..8056ae9d79f5f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlannerContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlannerContext.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeManager; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager; /** * A carrier of core, global, non-derived services for planner and analyzer. This is used to ease diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PredicateUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PredicateUtils.java index 62531541c4e19..d7748e2347daf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PredicateUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PredicateUtils.java @@ -19,24 +19,24 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; import org.apache.iotdb.db.queryengine.plan.expression.UnknownExpressionTypeException; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; import org.apache.tsfile.utils.Pair; import java.util.Arrays; import static org.apache.iotdb.commons.conf.IoTDBConstant.TIME; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.AND; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.OR; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression.and; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression.or; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.AND; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.OR; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression.and; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression.or; public class PredicateUtils { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/QueryPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/QueryPlanner.java index 071a6a05da671..3fc66970fd327 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/QueryPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/QueryPlanner.java @@ -19,52 +19,57 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Aggregation; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GapFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LinearFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PreviousFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValueFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FieldReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Fill; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.MeasureDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Offset; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QueryBody; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuerySpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.VariableDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis.GroupingSetAnalysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.FieldId; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.RelationType; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.GapFillStartAndEndTimeExtractVisitor; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.PredicateWithUncorrelatedScalarSubqueryReconstructor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Aggregation; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Delete; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FieldReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Fill; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.MeasureDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Offset; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OrderBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QueryBody; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuerySpecification; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.VariableDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -96,22 +101,22 @@ import static com.google.common.collect.ImmutableSet.toImmutableSet; import static java.lang.String.format; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isNumericType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isNumericType; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.groupingSets; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame.Type.GROUPS; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame.Type.RANGE; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame.Type.ROWS; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; import static org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingTranslator.sortItemToSortOrder; import static org.apache.iotdb.db.queryengine.plan.relational.planner.PlanBuilder.newPlanBuilder; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ScopeAware.scopeAwareKey; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_LAST; import static org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator.GROUP_KEY_SUFFIX; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.GapFillStartAndEndTimeExtractVisitor.CAN_NOT_INFER_TIME_RANGE; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.groupingSets; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame.Type.GROUPS; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame.Type.RANGE; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame.Type.ROWS; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; import static org.apache.iotdb.db.queryengine.plan.relational.utils.NodeUtils.getSortItemsFromOrderBy; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlan.java index 62fcd72c0ee3d..ce9ece17c8ab6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlan.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlan.java @@ -19,7 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.RelationType; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Scope; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java index 457a03ab4a012..06039bcee5d97 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/RelationPlanner.java @@ -19,12 +19,75 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.Measure; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowsPerMatch; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SkipToPosition; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.AggregationLabelSet; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.AggregationValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ClassifierValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers.Assignment; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrLabel; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrRowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.LogicalIndexPointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.MatchNumberValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ScalarValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AliasedRelation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Except; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Intersect; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinCriteria; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinOn; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinUsing; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.MeasureDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuerySpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Relation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SetOperation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubsetDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableFunctionInvocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableSubquery; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Union; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Values; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.VariableDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; +import org.apache.iotdb.commons.queryengine.utils.cte.CteDataStore; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.load.LoadTsFileNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeEnrichedDeleteDataNode; @@ -38,7 +101,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertTabletNode; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Field; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.PatternRecognitionAnalysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.PatternRecognitionAnalysis.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.PatternRecognitionAnalysis.ClassifierDescriptor; @@ -49,7 +111,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Scope; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.tablefunction.TableArgumentAnalysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.tablefunction.TableFunctionInvocationAnalysis; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; import org.apache.iotdb.db.queryengine.plan.relational.metadata.TreeDeviceViewSchema; @@ -57,77 +118,21 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.PredicateWithUncorrelatedScalarSubqueryReconstructor; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Measure; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowsPerMatch; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SkipToPosition; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.AggregationLabelSet; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.AggregationValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ClassifierValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers.Assignment; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.LogicalIndexPointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.MatchNumberValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.RowPatternToIrRewriter; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ScalarValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AliasedRelation; +import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.rowpattern.RowPatternToIrRewriter; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AsofJoinOn; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Delete; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Except; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRow; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRows; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertTablet; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Intersect; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinCriteria; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinOn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinUsing; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.MeasureDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PipeEnriched; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuerySpecification; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Relation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetOperation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubsetDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableFunctionInvocation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableSubquery; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Union; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Values; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.VariableDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowsStatement; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; -import org.apache.iotdb.db.utils.cte.CteDataStore; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; @@ -155,6 +160,16 @@ import static com.google.common.collect.ImmutableSet.toImmutableSet; import static java.lang.String.format; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join.Type.CROSS; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join.Type.FULL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join.Type.IMPLICIT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join.Type.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join.Type.LEFT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join.Type.RIGHT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch.ONE; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo.Position.PAST_LAST; import static org.apache.iotdb.commons.schema.table.InformationSchema.INFORMATION_DATABASE; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.PatternRecognitionAnalysis.NavigationAnchor.LAST; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.PatternRecognitionAnalysis.NavigationMode.RUNNING; @@ -165,21 +180,11 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.QueryPlanner.extractPatternRecognitionExpressions; import static org.apache.iotdb.db.queryengine.plan.relational.planner.QueryPlanner.pruneInvisibleFields; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.extractPredicates; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.CROSS; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.FULL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.IMPLICIT; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.INNER; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.LEFT; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join.Type.RIGHT; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch.ONE; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo.Position.PAST_LAST; import static org.apache.iotdb.db.queryengine.plan.relational.utils.NodeUtils.getSortItemsFromOrderBy; import static org.apache.tsfile.read.common.type.LongType.INT64; import static org.apache.tsfile.read.common.type.StringType.STRING; -public class RelationPlanner extends AstVisitor { +public class RelationPlanner implements AstVisitor { private final Analysis analysis; private final SymbolAllocator symbolAllocator; @@ -233,7 +238,7 @@ public RelationPlanner( } @Override - protected RelationPlan visitQuery(final Query node, final Void context) { + public RelationPlan visitQuery(final Query node, final Void context) { return new QueryPlanner( analysis, symbolAllocator, @@ -246,7 +251,7 @@ protected RelationPlan visitQuery(final Query node, final Void context) { } @Override - protected RelationPlan visitTable(final Table table, final Void context) { + public RelationPlan visitTable(final Table table, final Void context) { // is this a recursive reference in expandable named query? If so, there's base relation already // planned. final RelationPlan expansion = recursiveSubqueries.get(NodeRef.of(table)); @@ -404,8 +409,7 @@ private RelationPlan processPhysicalTable(Table table, Scope scope) { } @Override - protected RelationPlan visitQuerySpecification( - final QuerySpecification node, final Void context) { + public RelationPlan visitQuerySpecification(final QuerySpecification node, final Void context) { return new QueryPlanner( analysis, symbolAllocator, @@ -418,19 +422,19 @@ protected RelationPlan visitQuerySpecification( } @Override - protected RelationPlan visitNode(final Node node, final Void context) { + public RelationPlan visitNode(final Node node, final Void context) { throw new IllegalStateException("Unsupported node type: " + node.getClass().getName()); } @Override - protected RelationPlan visitTableSubquery(final TableSubquery node, final Void context) { + public RelationPlan visitTableSubquery(final TableSubquery node, final Void context) { final RelationPlan plan = process(node.getQuery(), context); return new RelationPlan( plan.getRoot(), analysis.getScope(node), plan.getFieldMappings(), outerContext); } @Override - protected RelationPlan visitJoin(final Join node, final Void context) { + public RelationPlan visitJoin(final Join node, final Void context) { final RelationPlan leftPlan = process(node.getLeft(), context); final RelationPlan rightPlan = process(node.getRight(), context); @@ -860,7 +864,7 @@ private static boolean isEqualComparisonExpression(Expression conjunct) { } @Override - protected RelationPlan visitAliasedRelation(AliasedRelation node, Void context) { + public RelationPlan visitAliasedRelation(AliasedRelation node, Void context) { RelationPlan subPlan = process(node.getRelation(), context); PlanNode root = subPlan.getRoot(); @@ -883,12 +887,12 @@ protected RelationPlan visitAliasedRelation(AliasedRelation node, Void context) } @Override - protected RelationPlan visitSubqueryExpression(SubqueryExpression node, Void context) { + public RelationPlan visitSubqueryExpression(SubqueryExpression node, Void context) { return process(node.getQuery(), context); } @Override - protected RelationPlan visitPatternRecognitionRelation( + public RelationPlan visitPatternRecognitionRelation( PatternRecognitionRelation node, Void context) { RelationPlan subPlan = process(node.getInput(), context); @@ -1209,7 +1213,7 @@ private SkipToPosition mapSkipToPosition(SkipTo.Position position) { } @Override - protected RelationPlan visitUnion(Union node, Void context) { + public RelationPlan visitUnion(Union node, Void context) { Preconditions.checkArgument(!node.getRelations().isEmpty(), "No relations specified for UNION"); SetOperationPlan setOperationPlan = process(node); @@ -1228,7 +1232,7 @@ protected RelationPlan visitUnion(Union node, Void context) { } @Override - protected RelationPlan visitIntersect(Intersect node, Void context) { + public RelationPlan visitIntersect(Intersect node, Void context) { Preconditions.checkArgument( !node.getRelations().isEmpty(), "No relations specified for intersect"); SetOperationPlan setOperationPlan = process(node); @@ -1246,7 +1250,7 @@ protected RelationPlan visitIntersect(Intersect node, Void context) { } @Override - protected RelationPlan visitExcept(Except node, Void context) { + public RelationPlan visitExcept(Except node, Void context) { Preconditions.checkArgument( !node.getRelations().isEmpty(), "No relations specified for except"); SetOperationPlan setOperationPlan = process(node); @@ -1305,12 +1309,12 @@ private PlanNode distinct(PlanNode node) { // ================================ Implemented later ===================================== @Override - protected RelationPlan visitValues(Values node, Void context) { + public RelationPlan visitValues(Values node, Void context) { throw new IllegalStateException("Values is not supported in current version."); } @Override - protected RelationPlan visitInsertTablet(InsertTablet node, Void context) { + public RelationPlan visitInsertTablet(InsertTablet node, Void context) { final InsertTabletStatement insertTabletStatement = node.getInnerTreeStatement(); String[] measurements = insertTabletStatement.getMeasurements(); @@ -1339,14 +1343,14 @@ protected RelationPlan visitInsertTablet(InsertTablet node, Void context) { } @Override - protected RelationPlan visitInsertRow(InsertRow node, Void context) { + public RelationPlan visitInsertRow(InsertRow node, Void context) { InsertRowStatement insertRowStatement = node.getInnerTreeStatement(); RelationalInsertRowNode insertNode = fromInsertRowStatement(insertRowStatement); return new RelationPlan( insertNode, analysis.getRootScope(), Collections.emptyList(), outerContext); } - protected RelationalInsertRowNode fromInsertRowStatement( + public RelationalInsertRowNode fromInsertRowStatement( final InsertRowStatement insertRowStatement) { String[] measurements = insertRowStatement.getMeasurements(); @@ -1370,7 +1374,7 @@ protected RelationalInsertRowNode fromInsertRowStatement( } @Override - protected RelationPlan visitInsertRows(final InsertRows node, final Void context) { + public RelationPlan visitInsertRows(final InsertRows node, final Void context) { final InsertRowsStatement insertRowsStatement = node.getInnerTreeStatement(); final List indices = new ArrayList<>(); final List insertRowStatements = new ArrayList<>(); @@ -1386,7 +1390,7 @@ protected RelationPlan visitInsertRows(final InsertRows node, final Void context } @Override - protected RelationPlan visitLoadTsFile(final LoadTsFile node, final Void context) { + public RelationPlan visitLoadTsFile(final LoadTsFile node, final Void context) { final List isTableModel = new ArrayList<>(); for (int i = 0; i < node.getResources().size(); i++) { isTableModel.add(node.getIsTableModel().get(i)); @@ -1404,7 +1408,7 @@ protected RelationPlan visitLoadTsFile(final LoadTsFile node, final Void context } @Override - protected RelationPlan visitPipeEnriched(final PipeEnriched node, final Void context) { + public RelationPlan visitPipeEnriched(final PipeEnriched node, final Void context) { final RelationPlan relationPlan = node.getInnerStatement().accept(this, context); if (relationPlan.getRoot() instanceof LoadTsFileNode) { @@ -1431,7 +1435,7 @@ protected RelationPlan visitPipeEnriched(final PipeEnriched node, final Void con } @Override - protected RelationPlan visitDelete(final Delete node, final Void context) { + public RelationPlan visitDelete(final Delete node, final Void context) { return new RelationPlan( new RelationalDeleteDataNode(idAllocator.genPlanNodeId(), node), analysis.getRootScope(), diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ScopeAware.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ScopeAware.java index e757a82bed083..38ad8dc1831a1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ScopeAware.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ScopeAware.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.CanonicalizationAware; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.ResolvedField; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Scope; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; import java.util.OptionalInt; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SimplePlanRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SimplePlanRewriter.java index d2a8ec781a197..43b056372b3fc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SimplePlanRewriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SimplePlanRewriter.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import com.google.common.collect.ImmutableList; @@ -28,7 +28,7 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.ChildReplacer.replaceChildren; public abstract class SimplePlanRewriter - extends PlanVisitor> { + implements PlanVisitor> { public static PlanNode rewriteWith(SimplePlanRewriter rewriter, PlanNode node) { return node.accept(rewriter, new RewriteContext<>(rewriter, null)); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java index 2226bb021796c..bb4fba70eb294 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java @@ -19,34 +19,36 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExistsPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericDataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Field; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.RelationType; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Scope; import org.apache.iotdb.db.queryengine.plan.relational.planner.QueryPlanner.PlanAndMappings; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.PredicateWithUncorrelatedScalarSubqueryReconstructor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExistsPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericDataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -68,10 +70,10 @@ import static com.google.common.collect.Streams.stream; import static java.lang.String.format; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression.Quantifier.ALL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.PlanBuilder.newPlanBuilder; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ScopeAware.scopeAwareKey; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression.Quantifier.ALL; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; class SubqueryPlanner { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolAllocator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolAllocator.java index 5840017e5c4fd..f7ad25965d1f4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolAllocator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolAllocator.java @@ -19,13 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Field; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolResolver.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolResolver.java index e8df34b27527c..7ceecf4630c2f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolResolver.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolResolver.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; + public interface SymbolResolver { Object getValue(Symbol symbol); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolsExtractor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolsExtractor.java index ce54b2b503a33..489796b7fa272 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolsExtractor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SymbolsExtractor.java @@ -19,19 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DefaultExpressionTraversalVisitor; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DefaultTraversalVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -149,14 +150,13 @@ public static Set extractOutputSymbols(PlanNode planNode, Lookup lookup) private static class SymbolBuilderVisitor extends DefaultExpressionTraversalVisitor> { @Override - protected Void visitSymbolReference( - SymbolReference node, ImmutableList.Builder builder) { + public Void visitSymbolReference(SymbolReference node, ImmutableList.Builder builder) { builder.add(Symbol.from(node)); return null; } /*@Override - protected Void visitLambdaExpression(LambdaExpression node, ImmutableList.Builder context) + public Void visitLambdaExpression(LambdaExpression node, ImmutableList.Builder context) { // Symbols in lambda expression are bound to lambda arguments, so no need to extract them return null; @@ -175,7 +175,7 @@ private QualifiedNameBuilderVisitor( } @Override - protected Void visitDereferenceExpression( + public Void visitDereferenceExpression( DereferenceExpression node, ImmutableSet.Builder builder) { if (columnReferences.contains(NodeRef.of(node))) { builder.add(DereferenceExpression.getQualifiedName(node)); @@ -186,13 +186,13 @@ protected Void visitDereferenceExpression( } @Override - protected Void visitIdentifier(Identifier node, ImmutableSet.Builder builder) { + public Void visitIdentifier(Identifier node, ImmutableSet.Builder builder) { builder.add(QualifiedName.of(node.getValue())); return null; } @Override - protected Void visitSubqueryExpression( + public Void visitSubqueryExpression( SubqueryExpression node, ImmutableSet.Builder context) { if (!recurseIntoSubqueries) { return null; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableLogicalPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableLogicalPlanner.java index c33cb05250bd1..e04937e85adc5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableLogicalPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableLogicalPlanner.java @@ -19,23 +19,37 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.partition.SchemaPartition; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.table.TreeViewSchema; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; import org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet; import org.apache.iotdb.db.queryengine.plan.analyze.ClusterPartitionFetcher; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.CountSchemaMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeEnrichedWritePlanNode; @@ -45,20 +59,12 @@ import org.apache.iotdb.db.queryengine.plan.relational.analyzer.RelationType; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Scope; import org.apache.iotdb.db.queryengine.plan.relational.execution.querystats.PlanOptimizersStatsCollector; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.PredicateWithUncorrelatedScalarSubqueryReconstructor; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceAttributeUpdateNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceFetchNode; @@ -78,13 +84,9 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Insert; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PipeEnriched; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDevice; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Update; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WrappedStatement; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; import com.google.common.collect.ImmutableList; @@ -101,14 +103,14 @@ import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode.COLUMN_NAME_PREFIX; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; import static org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet.LOGICAL_PLANNER; import static org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet.LOGICAL_PLAN_OPTIMIZE; import static org.apache.iotdb.db.queryengine.plan.relational.metadata.MetadataUtil.createQualifiedObjectName; import static org.apache.iotdb.db.queryengine.plan.relational.planner.QueryPlanner.visibleFields; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode.COLUMN_NAME_PREFIX; import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CountDevice.COUNT_DEVICE_HEADER_STRING; import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDevice.getDeviceColumnHeaderList; -import static org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager.getTSDataType; public class TableLogicalPlanner { private final MPPQueryContext queryContext; @@ -277,7 +279,7 @@ private RelationPlan genInsertPlan(final Analysis analysis, final Insert node) { QualifiedObjectName targetTable = createQualifiedObjectName(sessionInfo, table.getName()); Optional tableSchema = metadata.getTableSchema(sessionInfo, targetTable); if (!tableSchema.isPresent()) { - TableMetadataImpl.throwTableNotExistsException( + CommonMetadataUtils.throwTableNotExistsException( targetTable.getDatabaseName(), targetTable.getObjectName()); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableModelPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableModelPlanner.java index 78f9729ece341..c8433d95416a7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableModelPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TableModelPlanner.java @@ -24,6 +24,11 @@ import org.apache.iotdb.commons.client.IClientManager; import org.apache.iotdb.commons.client.async.AsyncDataNodeInternalServiceClient; import org.apache.iotdb.commons.client.sync.SyncDataNodeInternalServiceClient; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeManager; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.execution.QueryStateMachine; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; @@ -35,22 +40,17 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analyzer; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.StatementAnalyzerFactory; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.DataNodeLocationSupplierFactory; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanOptimizer; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PipeEnriched; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WrappedInsertStatement; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewrite; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager; import org.apache.iotdb.db.queryengine.plan.scheduler.ClusterScheduler; import org.apache.iotdb.db.queryengine.plan.scheduler.IScheduler; import org.apache.iotdb.db.queryengine.plan.scheduler.load.LoadTsFileScheduler; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TranslationMap.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TranslationMap.java index 0f831b8168b14..5f31c0ef6bbbc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TranslationMap.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/TranslationMap.java @@ -19,23 +19,24 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FieldReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericDataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Trim; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.ResolvedField; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Scope; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionRewriter; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionTreeRewriter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FieldReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericDataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Trim; import org.apache.iotdb.db.queryengine.plan.relational.sql.util.AstUtil; import com.google.common.collect.ImmutableMap; @@ -60,8 +61,8 @@ * boundary. * *

AST and IR expressions use the same class hierarchy ({@link - * org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression}, but differ in the following - * ways: + * org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression}, but differ in the + * following ways: *

  • AST expressions contain Identifiers, while IR expressions contain SymbolReferences *
  • FunctionCalls in AST expressions are SQL function names. In IR expressions, they contain an * encoded name representing a resolved function diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/AddExchangeNodes.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/AddExchangeNodes.java index c74f8bd5b4b25..b2ab3eb63c87a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/AddExchangeNodes.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/AddExchangeNodes.java @@ -20,18 +20,18 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.distribute; import org.apache.iotdb.commons.partition.DataPartition; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CollectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.planner.distribution.NodeDistribution; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.TableDeviceSourceNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceFetchNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryCountNode; @@ -43,7 +43,7 @@ import static org.apache.iotdb.db.queryengine.plan.planner.distribution.NodeDistributionType.SAME_WITH_SOME_CHILD; public class AddExchangeNodes - extends PlanVisitor { + implements PlanVisitor { private final MPPQueryContext queryContext; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/SubPlanGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/SubPlanGenerator.java index d9649714db5af..737dc43855aae 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/SubPlanGenerator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/SubPlanGenerator.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.distribute; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.planner.plan.PlanFragment; import org.apache.iotdb.db.queryengine.plan.planner.plan.SubPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.MultiChildrenSinkNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java index 79ea52597bcee..eb967534e1731 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java @@ -24,91 +24,91 @@ import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot; import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.SchemaPartition; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CollectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GapFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MarkDistinctNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowNumberNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValueFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValuesNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.commons.schema.table.InformationSchema; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.commons.utils.TimePartitionUtils; import org.apache.iotdb.confignode.rpc.thrift.TRegionInfo; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.DataNodeEndPoints; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.ClusterTopology; -import org.apache.iotdb.db.queryengine.plan.planner.TableOperatorGenerator; +import org.apache.iotdb.db.queryengine.plan.planner.DataNodeTableOperatorGenerator; import org.apache.iotdb.db.queryengine.plan.planner.distribution.NodeDistribution; import org.apache.iotdb.db.queryengine.plan.planner.exceptions.RootFIPlacementException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; -import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionId; import org.apache.iotdb.db.queryengine.plan.relational.metadata.AlignedDeviceEntry; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AlignedAggregationTreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.NonAlignedAggregationTreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableDiskUsageInformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeAlignedDeviceViewScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeNonAlignedDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.AbstractTableDeviceQueryNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceFetchNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryCountNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.DataNodeLocationSupplierFactory; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PushPredicateIntoTableScan; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Insert; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; import org.apache.iotdb.db.schemaengine.table.DataNodeTreeViewSchemaUtils; @@ -143,20 +143,20 @@ import java.util.stream.IntStream; import static com.google.common.collect.ImmutableList.toImmutableList; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT; import static org.apache.iotdb.commons.partition.DataPartition.NOT_ASSIGNED; -import static org.apache.iotdb.db.queryengine.plan.relational.function.FunctionKind.AGGREGATE; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.FunctionNullability.getAggregationFunctionNullability; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionKind.AGGREGATE; +import static org.apache.iotdb.commons.queryengine.plan.relational.metadata.FunctionNullability.getAggregationFunctionNullability; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PushPredicateIntoTableScan.containsDiffFunction; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.TransformSortToStreamSort.isOrderByAllIdsAndTime; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.Util.split; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT; import static org.apache.tsfile.utils.Preconditions.checkArgument; /** This class is used to generate distributed plan for table model. */ public class TableDistributedPlanGenerator - extends PlanVisitor, TableDistributedPlanGenerator.PlanContext> { + implements PlanVisitor, TableDistributedPlanGenerator.PlanContext> { private final MPPQueryContext queryContext; private final QueryId queryId; private final Analysis analysis; @@ -1905,7 +1905,7 @@ private void processSortProperty( DataNodeTableCache.getInstance() .getTable(qualifiedObjectName.getDatabaseName(), qualifiedObjectName.getObjectName()); return Optional.of( - TableOperatorGenerator.createTreeDeviceIdColumnValueExtractor( + DataNodeTableOperatorGenerator.createTreeDeviceIdColumnValueExtractor( DataNodeTreeViewSchemaUtils.getPrefixPath(table))); } else { return Optional.empty(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanner.java index ff7686fe86891..20d533904394b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanner.java @@ -20,6 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.distribute; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; @@ -30,8 +34,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.SubPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; @@ -40,11 +42,9 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.DataNodeLocationSupplierFactory; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.DistributedOptimizeFactory; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanOptimizer; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import java.util.Collections; import java.util.HashMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableModelQueryFragmentPlanner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableModelQueryFragmentPlanner.java index 6ad998a5a5335..0c986eb983833 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableModelQueryFragmentPlanner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableModelQueryFragmentPlanner.java @@ -20,6 +20,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.distribute; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; @@ -30,8 +33,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; import org.apache.iotdb.db.queryengine.plan.planner.plan.PlanFragment; import org.apache.iotdb.db.queryengine.plan.planner.plan.SubPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.MultiChildrenSinkNode; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; @@ -40,7 +41,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CountDevice; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDevice; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.tsfile.utils.Pair; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableModelTypeProviderExtractor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableModelTypeProviderExtractor.java index 8e8a688811fb3..77ccb17ba4027 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableModelTypeProviderExtractor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableModelTypeProviderExtractor.java @@ -19,36 +19,36 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.distribute; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CollectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GapFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.SimplePlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.CountSchemaMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.AbstractTableDeviceQueryNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryCountNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceQueryScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/DefaultTraversalVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/DefaultTraversalVisitor.java index 466e45506db85..4236c8aece537 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/DefaultTraversalVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/DefaultTraversalVisitor.java @@ -19,33 +19,33 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Row; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; - -public abstract class DefaultTraversalVisitor extends AstVisitor { + +public abstract class DefaultTraversalVisitor implements AstVisitor { @Override - protected Void visitCast(Cast node, C context) { + public Void visitCast(Cast node, C context) { process(node.getExpression(), context); return null; } @Override - protected Void visitArithmeticBinary(ArithmeticBinaryExpression node, C context) { + public Void visitArithmeticBinary(ArithmeticBinaryExpression node, C context) { process(node.getLeft(), context); process(node.getRight(), context); @@ -53,7 +53,7 @@ protected Void visitArithmeticBinary(ArithmeticBinaryExpression node, C context) } @Override - protected Void visitBetweenPredicate(BetweenPredicate node, C context) { + public Void visitBetweenPredicate(BetweenPredicate node, C context) { process(node.getValue(), context); process(node.getMin(), context); process(node.getMax(), context); @@ -62,7 +62,7 @@ protected Void visitBetweenPredicate(BetweenPredicate node, C context) { } @Override - protected Void visitCoalesceExpression(CoalesceExpression node, C context) { + public Void visitCoalesceExpression(CoalesceExpression node, C context) { for (Expression operand : node.getOperands()) { process(operand, context); } @@ -71,7 +71,7 @@ protected Void visitCoalesceExpression(CoalesceExpression node, C context) { } // @Override - // protected Void visitSubscriptExpression(SubscriptExpression node, C context) + // public Void visitSubscriptExpression(SubscriptExpression node, C context) // { // process(node.getBase(), context); // process(node.getIndex(), context); @@ -80,7 +80,7 @@ protected Void visitCoalesceExpression(CoalesceExpression node, C context) { // } @Override - protected Void visitComparisonExpression(ComparisonExpression node, C context) { + public Void visitComparisonExpression(ComparisonExpression node, C context) { process(node.getLeft(), context); process(node.getRight(), context); @@ -88,7 +88,7 @@ protected Void visitComparisonExpression(ComparisonExpression node, C context) { } @Override - protected Void visitInPredicate(InPredicate node, C context) { + public Void visitInPredicate(InPredicate node, C context) { process(node.getValue(), context); process(node.getValueList(), context); @@ -96,7 +96,7 @@ protected Void visitInPredicate(InPredicate node, C context) { } @Override - protected Void visitFunctionCall(FunctionCall node, C context) { + public Void visitFunctionCall(FunctionCall node, C context) { for (Expression argument : node.getArguments()) { process(argument, context); } @@ -105,7 +105,7 @@ protected Void visitFunctionCall(FunctionCall node, C context) { } @Override - protected Void visitSimpleCaseExpression(SimpleCaseExpression node, C context) { + public Void visitSimpleCaseExpression(SimpleCaseExpression node, C context) { process(node.getOperand(), context); for (WhenClause clause : node.getWhenClauses()) { process(clause.getOperand(), context); @@ -118,7 +118,7 @@ protected Void visitSimpleCaseExpression(SimpleCaseExpression node, C context) { } @Override - protected Void visitNullIfExpression(NullIfExpression node, C context) { + public Void visitNullIfExpression(NullIfExpression node, C context) { process(node.getFirst(), context); process(node.getSecond(), context); @@ -126,7 +126,7 @@ protected Void visitNullIfExpression(NullIfExpression node, C context) { } // @Override - // protected Void visitBindExpression(BindExpression node, C context) + // public Void visitBindExpression(BindExpression node, C context) // { // for (Expression value : node.getValues()) { // process(value, context); @@ -137,20 +137,20 @@ protected Void visitNullIfExpression(NullIfExpression node, C context) { // } // @Override - // protected Void visitArithmeticNegation(ArithmeticNegation node, C context) + // public Void visitArithmeticNegation(ArithmeticNegation node, C context) // { // process(node.getValue(), context); // return null; // } @Override - protected Void visitNotExpression(NotExpression node, C context) { + public Void visitNotExpression(NotExpression node, C context) { process(node.getValue(), context); return null; } @Override - protected Void visitSearchedCaseExpression(SearchedCaseExpression node, C context) { + public Void visitSearchedCaseExpression(SearchedCaseExpression node, C context) { for (WhenClause clause : node.getWhenClauses()) { process(clause.getOperand(), context); process(clause.getResult(), context); @@ -161,13 +161,13 @@ protected Void visitSearchedCaseExpression(SearchedCaseExpression node, C contex } @Override - protected Void visitIsNullPredicate(IsNullPredicate node, C context) { + public Void visitIsNullPredicate(IsNullPredicate node, C context) { process(node.getValue(), context); return null; } @Override - protected Void visitLogicalExpression(LogicalExpression node, C context) { + public Void visitLogicalExpression(LogicalExpression node, C context) { for (Expression child : node.getTerms()) { process(child, context); } @@ -176,7 +176,7 @@ protected Void visitLogicalExpression(LogicalExpression node, C context) { } @Override - protected Void visitRow(Row node, C context) { + public Void visitRow(Row node, C context) { for (Expression expression : node.getItems()) { process(expression, context); } @@ -184,7 +184,7 @@ protected Void visitRow(Row node, C context) { } // @Override - // protected Void visitLambdaExpression(LambdaExpression node, C context) + // public Void visitLambdaExpression(LambdaExpression node, C context) // { // process(node.getBody(), context); // diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/DeterminismEvaluator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/DeterminismEvaluator.java index 90061b22ce175..8fd068341fabd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/DeterminismEvaluator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/DeterminismEvaluator.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; import java.util.concurrent.atomic.AtomicBoolean; @@ -35,7 +35,7 @@ public static boolean isDeterministic(Expression expression) { private static class Visitor extends DefaultTraversalVisitor { @Override - protected Void visitFunctionCall(FunctionCall node, AtomicBoolean deterministic) { + public Void visitFunctionCall(FunctionCall node, AtomicBoolean deterministic) { // if (!node.getFunction().isDeterministic()) { // deterministic.set(false); // return null; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExpressionNodeInliner.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExpressionNodeInliner.java index e81b4840074a3..47e133df4a09e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExpressionNodeInliner.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExpressionNodeInliner.java @@ -18,7 +18,7 @@ */ package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import java.util.Map; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExpressionRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExpressionRewriter.java index 159655d4255b3..55c210e3fc1cd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExpressionRewriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExpressionRewriter.java @@ -19,41 +19,41 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentDatabase; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentUser; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExistsPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FieldReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericDataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Row; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Trim; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentDatabase; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentUser; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExistsPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FieldReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericDataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Trim; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; public class ExpressionRewriter { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExpressionTreeRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExpressionTreeRewriter.java index d84ac593306fa..a5c4b15cbcd24 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExpressionTreeRewriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExpressionTreeRewriter.java @@ -19,46 +19,46 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentDatabase; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentUser; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataTypeParameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExistsPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FieldReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericDataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NumericParameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Trim; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TypeParameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentDatabase; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentUser; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataTypeParameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExistsPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FieldReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericDataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NumericParameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Row; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Trim; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TypeParameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -107,10 +107,10 @@ public T defaultRewrite(T node, C context) { return (T) visitor.process(node, new Context<>(context, true)); } - private class RewritingVisitor extends AstVisitor> { + private class RewritingVisitor implements AstVisitor> { @Override - protected Expression visitExpression(Expression node, Context context) { + public Expression visitExpression(Expression node, Context context) { // RewritingVisitor must have explicit support for each expression type, with a dedicated // visit method, // so visitExpression() should never be called. @@ -119,7 +119,7 @@ protected Expression visitExpression(Expression node, Context context) { } @Override - protected Expression visitRow(Row node, Context context) { + public Expression visitRow(Row node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteRow(node, context.get(), ExpressionTreeRewriter.this); if (result != null) { @@ -137,7 +137,7 @@ protected Expression visitRow(Row node, Context context) { } @Override - protected Expression visitArithmeticUnary(ArithmeticUnaryExpression node, Context context) { + public Expression visitArithmeticUnary(ArithmeticUnaryExpression node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteArithmeticUnary(node, context.get(), ExpressionTreeRewriter.this); @@ -195,7 +195,7 @@ public Expression visitComparisonExpression(ComparisonExpression node, Context context) { + public Expression visitBetweenPredicate(BetweenPredicate node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteBetweenPredicate(node, context.get(), ExpressionTreeRewriter.this); @@ -253,7 +253,7 @@ public Expression visitNotExpression(NotExpression node, Context context) { } @Override - protected Expression visitIsNullPredicate(IsNullPredicate node, Context context) { + public Expression visitIsNullPredicate(IsNullPredicate node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteIsNullPredicate(node, context.get(), ExpressionTreeRewriter.this); @@ -272,7 +272,7 @@ protected Expression visitIsNullPredicate(IsNullPredicate node, Context conte } @Override - protected Expression visitIsNotNullPredicate(IsNotNullPredicate node, Context context) { + public Expression visitIsNotNullPredicate(IsNotNullPredicate node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteIsNotNullPredicate(node, context.get(), ExpressionTreeRewriter.this); @@ -291,7 +291,7 @@ protected Expression visitIsNotNullPredicate(IsNotNullPredicate node, Context } @Override - protected Expression visitNullIfExpression(NullIfExpression node, Context context) { + public Expression visitNullIfExpression(NullIfExpression node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteNullIfExpression(node, context.get(), ExpressionTreeRewriter.this); @@ -311,7 +311,7 @@ protected Expression visitNullIfExpression(NullIfExpression node, Context con } @Override - protected Expression visitIfExpression(IfExpression node, Context context) { + public Expression visitIfExpression(IfExpression node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteIfExpression(node, context.get(), ExpressionTreeRewriter.this); @@ -337,8 +337,7 @@ protected Expression visitIfExpression(IfExpression node, Context context) { } @Override - protected Expression visitSearchedCaseExpression( - SearchedCaseExpression node, Context context) { + public Expression visitSearchedCaseExpression(SearchedCaseExpression node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteSearchedCaseExpression( @@ -367,7 +366,7 @@ protected Expression visitSearchedCaseExpression( } @Override - protected Expression visitSimpleCaseExpression(SimpleCaseExpression node, Context context) { + public Expression visitSimpleCaseExpression(SimpleCaseExpression node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteSimpleCaseExpression(node, context.get(), ExpressionTreeRewriter.this); @@ -398,7 +397,7 @@ protected Expression visitSimpleCaseExpression(SimpleCaseExpression node, Contex } @Override - protected Expression visitWhenClause(WhenClause node, Context context) { + public Expression visitWhenClause(WhenClause node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteWhenClause(node, context.get(), ExpressionTreeRewriter.this); @@ -417,7 +416,7 @@ protected Expression visitWhenClause(WhenClause node, Context context) { } @Override - protected Expression visitCoalesceExpression(CoalesceExpression node, Context context) { + public Expression visitCoalesceExpression(CoalesceExpression node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteCoalesceExpression(node, context.get(), ExpressionTreeRewriter.this); @@ -515,7 +514,7 @@ public Expression visitInPredicate(InPredicate node, Context context) { // } @Override - protected Expression visitInListExpression(InListExpression node, Context context) { + public Expression visitInListExpression(InListExpression node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteInListExpression(node, context.get(), ExpressionTreeRewriter.this); @@ -534,7 +533,7 @@ protected Expression visitInListExpression(InListExpression node, Context con } @Override - protected Expression visitExists(ExistsPredicate node, Context context) { + public Expression visitExists(ExistsPredicate node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteExists(node, context.get(), ExpressionTreeRewriter.this); @@ -567,7 +566,7 @@ public Expression visitSubqueryExpression(SubqueryExpression node, Context co return node; } - protected Expression visitLiteral(final Literal node, final Context context) { + public Expression visitLiteral(final Literal node, final Context context) { if (!context.isDefaultRewrite()) { final Expression result = rewriter.rewriteLiteral(node, context.get(), ExpressionTreeRewriter.this); @@ -627,7 +626,7 @@ public Expression visitDereferenceExpression(DereferenceExpression node, Context } @Override - protected Expression visitExtract(Extract node, Context context) { + public Expression visitExtract(Extract node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteExtract(node, context.get(), ExpressionTreeRewriter.this); @@ -691,7 +690,7 @@ public Expression visitCurrentUser(final CurrentUser node, final Context cont } @Override - protected Expression visitGenericDataType(GenericDataType node, Context context) { + public Expression visitGenericDataType(GenericDataType node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteGenericDataType(node, context.get(), ExpressionTreeRewriter.this); @@ -730,7 +729,7 @@ protected Expression visitGenericDataType(GenericDataType node, Context conte } @Override - protected Expression visitFieldReference(FieldReference node, Context context) { + public Expression visitFieldReference(FieldReference node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteFieldReference(node, context.get(), ExpressionTreeRewriter.this); @@ -743,7 +742,7 @@ protected Expression visitFieldReference(FieldReference node, Context context } @Override - protected Expression visitSymbolReference(SymbolReference node, Context context) { + public Expression visitSymbolReference(SymbolReference node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteSymbolReference(node, context.get(), ExpressionTreeRewriter.this); @@ -756,7 +755,7 @@ protected Expression visitSymbolReference(SymbolReference node, Context conte } @Override - protected Expression visitQuantifiedComparisonExpression( + public Expression visitQuantifiedComparisonExpression( QuantifiedComparisonExpression node, Context context) { if (!context.isDefaultRewrite()) { Expression result = @@ -778,7 +777,7 @@ protected Expression visitQuantifiedComparisonExpression( } @Override - protected Expression visitTrim(Trim node, Context context) { + public Expression visitTrim(Trim node, Context context) { if (!context.isDefaultRewrite()) { Expression result = rewriter.rewriteTrim(node, context.get(), ExpressionTreeRewriter.this); if (result != null) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExtractCommonPredicatesExpressionRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExtractCommonPredicatesExpressionRewriter.java index dc8a0d916da15..e72509e252a4f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExtractCommonPredicatesExpressionRewriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ExtractCommonPredicatesExpressionRewriter.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -34,10 +34,10 @@ import static java.util.Collections.emptySet; import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.OR; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.DeterminismEvaluator.isDeterministic; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.combinePredicates; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.extractPredicates; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.OR; public final class ExtractCommonPredicatesExpressionRewriter { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/GapFillStartAndEndTimeExtractVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/GapFillStartAndEndTimeExtractVisitor.java index c816956a7b063..c8cb09a696f83 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/GapFillStartAndEndTimeExtractVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/GapFillStartAndEndTimeExtractVisitor.java @@ -19,31 +19,31 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import javax.annotation.Nullable; import java.time.ZoneId; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.AND; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.OR; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer.dateBin; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer.dateBin; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.AND; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.OR; public class GapFillStartAndEndTimeExtractVisitor - extends AstVisitor { + implements AstVisitor { private static final String UPDATE_START_TIME_ERROR_MSG = "Operator of updateStatTime should only be GREATER_THAN and GREATER_THAN_OR_EQUAL, now is %s"; @@ -63,7 +63,7 @@ public GapFillStartAndEndTimeExtractVisitor(Symbol timeColumn) { @Override public Boolean visitNode(Node node, GapFillStartAndEndTimeExtractVisitor.Context context) { for (Node child : node.getChildren()) { - if (Boolean.TRUE.equals(super.process(child, context))) { + if (Boolean.TRUE.equals(AstVisitor.super.process(child, context))) { throw new SemanticException(CAN_NOT_INFER_TIME_RANGE); } } @@ -71,13 +71,13 @@ public Boolean visitNode(Node node, GapFillStartAndEndTimeExtractVisitor.Context } @Override - protected Boolean visitSymbolReference( + public Boolean visitSymbolReference( SymbolReference node, GapFillStartAndEndTimeExtractVisitor.Context context) { return isTimeIdentifier(node); } @Override - protected Boolean visitLogicalExpression( + public Boolean visitLogicalExpression( LogicalExpression node, GapFillStartAndEndTimeExtractVisitor.Context context) { if (node.getOperator() == AND) { boolean hasMeetGapFillTimeFilter = false; @@ -98,7 +98,7 @@ protected Boolean visitLogicalExpression( } @Override - protected Boolean visitComparisonExpression( + public Boolean visitComparisonExpression( ComparisonExpression node, GapFillStartAndEndTimeExtractVisitor.Context context) { Expression leftExpression = node.getLeft(); Expression rightExpression = node.getRight(); @@ -117,7 +117,7 @@ protected Boolean visitComparisonExpression( } @Override - protected Boolean visitBetweenPredicate( + public Boolean visitBetweenPredicate( BetweenPredicate node, GapFillStartAndEndTimeExtractVisitor.Context context) { Expression firstExpression = node.getValue(); Expression secondExpression = node.getMin(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/IrUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/IrUtils.java index 1d175c514178b..ccef426d87a35 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/IrUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/IrUtils.java @@ -19,21 +19,21 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; -import org.apache.iotdb.db.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; import org.apache.iotdb.db.queryengine.plan.relational.planner.IrExpressionInterpreter; import org.apache.iotdb.db.queryengine.plan.relational.planner.IrTypeAnalyzer; import org.apache.iotdb.db.queryengine.plan.relational.planner.NoOpSymbolResolver; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -50,8 +50,8 @@ import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.toList; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.FALSE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.FALSE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; public final class IrUtils { private IrUtils() {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/NormalizeOrExpressionRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/NormalizeOrExpressionRewriter.java index f5b3ff49d3102..7e95208585242 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/NormalizeOrExpressionRewriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/NormalizeOrExpressionRewriter.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMultimap; @@ -36,10 +36,10 @@ import java.util.Set; import static com.google.common.collect.ImmutableList.toImmutableList; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.AND; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.and; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.or; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.AND; public final class NormalizeOrExpressionRewriter { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/PredicateWithUncorrelatedScalarSubqueryReconstructor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/PredicateWithUncorrelatedScalarSubqueryReconstructor.java index 49d4b7831e7d3..c90bdb1ef60d7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/PredicateWithUncorrelatedScalarSubqueryReconstructor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/PredicateWithUncorrelatedScalarSubqueryReconstructor.java @@ -20,6 +20,24 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; import org.apache.iotdb.commons.exception.IoTDBException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.With; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WithQuery; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.MPPQueryContext.ExplainType; @@ -28,24 +46,6 @@ import org.apache.iotdb.db.queryengine.plan.execution.ExecutionResult; import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanner; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.With; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WithQuery; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ReplaceSymbolInExpression.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ReplaceSymbolInExpression.java index 9368956558b62..91716387d97bd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ReplaceSymbolInExpression.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/ReplaceSymbolInExpression.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import java.util.Map; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/SubExpressionExtractor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/SubExpressionExtractor.java index 8f216b6823f3f..24be8cde97848 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/SubExpressionExtractor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ir/SubExpressionExtractor.java @@ -18,8 +18,8 @@ */ package org.apache.iotdb.db.queryengine.plan.relational.planner.ir; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; import com.google.common.graph.SuccessorsFunction; import com.google.common.graph.Traverser; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/IterativeOptimizer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/IterativeOptimizer.java index 20d8d2e33b4f0..e450b2ba08340 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/IterativeOptimizer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/IterativeOptimizer.java @@ -19,20 +19,21 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Match; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.iterative.GroupReference; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.relational.execution.querystats.PlanOptimizersStatsCollector; import org.apache.iotdb.db.queryengine.plan.relational.execution.querystats.QueryPlanOptimizerStatistics; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.AdaptivePlanOptimizer; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanOptimizer; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Match; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import org.apache.iotdb.session.Session; import com.google.common.collect.ImmutableList; @@ -55,8 +56,8 @@ import static java.util.concurrent.TimeUnit.MINUTES; import static java.util.concurrent.TimeUnit.NANOSECONDS; import static java.util.stream.Collectors.joining; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.execution.querystats.PlanOptimizersStatsCollector.createPlanOptimizersStatsCollector; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.rpc.TSStatusCode.OPTIMIZER_TIMEOUT; public class IterativeOptimizer implements AdaptivePlanOptimizer { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Lookup.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Lookup.java index 94238a584c0e8..b7bf3383ecf53 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Lookup.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Lookup.java @@ -19,7 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.iterative.GroupReference; import java.util.function.Function; import java.util.stream.Stream; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Memo.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Memo.java index 7633e91dd1af2..243333a5cbbe0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Memo.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Memo.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.iterative.GroupReference; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import com.google.common.collect.HashMultiset; import com.google.common.collect.Multiset; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Plans.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Plans.java index 0e603eddfd191..64decb66f2c7a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Plans.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Plans.java @@ -19,7 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.iterative.GroupReference; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import java.util.List; @@ -33,7 +34,7 @@ public static PlanNode resolveGroupReferences(PlanNode node, Lookup lookup) { return node.accept(new ResolvingVisitor(lookup), null); } - private static class ResolvingVisitor extends PlanVisitor { + private static class ResolvingVisitor implements PlanVisitor { private final Lookup lookup; public ResolvingVisitor(Lookup lookup) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Rule.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Rule.java index 27164eb3388c5..6c1c1bab1ec47 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Rule.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/Rule.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import java.util.Optional; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/RuleIndex.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/RuleIndex.java index 5fa96a6ffee62..e9d8955c97678 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/RuleIndex.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/RuleIndex.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.pattern.TypeOfPattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.pattern.TypeOfPattern; import com.google.common.collect.ImmutableListMultimap; import com.google.common.collect.ListMultimap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/AggregationDecorrelation.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/AggregationDecorrelation.java index e61bf6f7be250..de1bfdb943ef2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/AggregationDecorrelation.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/AggregationDecorrelation.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/CanonicalizeExpressionRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/CanonicalizeExpressionRewriter.java index 977086b0f7ed9..c12642ee729a3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/CanonicalizeExpressionRewriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/CanonicalizeExpressionRewriter.java @@ -19,32 +19,32 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.relational.planner.IrTypeAnalyzer; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionRewriter; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionTreeRewriter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; import com.google.common.collect.ImmutableList; import java.util.Optional; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.ADD; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.MULTIPLY; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.isEffectivelyLiteral; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.ADD; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.MULTIPLY; public class CanonicalizeExpressionRewriter { public static Expression canonicalizeExpression( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EliminateLimitProjectWithTableScan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EliminateLimitProjectWithTableScan.java index 25cf1155592ea..e1f0737f00993 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EliminateLimitProjectWithTableScan.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EliminateLimitProjectWithTableScan.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.limit; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.tableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; public class EliminateLimitProjectWithTableScan implements Rule { private static final Capture PROJECT = newCapture(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EliminateLimitWithTableScan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EliminateLimitWithTableScan.java index 14bb434241c15..3ec50ae6fc343 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EliminateLimitWithTableScan.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EliminateLimitWithTableScan.java @@ -19,18 +19,18 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.limit; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.tableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; public class EliminateLimitWithTableScan implements Rule { private static final Capture CHILD = newCapture(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EvaluateEmptyIntersect.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EvaluateEmptyIntersect.java index 03c8bba9a7e0f..80e827a05fcf5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EvaluateEmptyIntersect.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/EvaluateEmptyIntersect.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.intersect; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.isEmpty; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ExpressionRewriteRuleSet.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ExpressionRewriteRuleSet.java index ec7e886115f4d..23edba1d56d48 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ExpressionRewriteRuleSet.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ExpressionRewriteRuleSet.java @@ -19,19 +19,19 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.Measure; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrLabel; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Measure; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/GatherAndMergeWindows.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/GatherAndMergeWindows.java index ff7b187aadbf8..a20c25cd91f55 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/GatherAndMergeWindows.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/GatherAndMergeWindows.java @@ -19,19 +19,19 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.PropertyPattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.PropertyPattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -49,13 +49,13 @@ import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableSet.toImmutableSet; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.restrictOutputs; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.transpose; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.groupNode; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.window; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; public class GatherAndMergeWindows { private GatherAndMergeWindows() {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptAll.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptAll.java index 9cb2de735114f..a94e59876f778 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptAll.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptAll.java @@ -19,30 +19,30 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import org.apache.tsfile.read.common.type.LongType; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.SUBTRACT; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.Except.distinct; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.SUBTRACT; public class ImplementExceptAll implements Rule { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptDistinctAsUnion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptDistinctAsUnion.java index 7b3d1c0015601..1247335f77daa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptDistinctAsUnion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementExceptDistinctAsUnion.java @@ -19,25 +19,25 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import org.apache.tsfile.read.common.type.LongType; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.and; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; public class ImplementExceptDistinctAsUnion implements Rule { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectAll.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectAll.java index af31281c918aa..2460f923ef67c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectAll.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectAll.java @@ -19,19 +19,19 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectDistinctAsUnion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectDistinctAsUnion.java index 388631c795b04..212ae94da4a37 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectDistinctAsUnion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementIntersectDistinctAsUnion.java @@ -19,25 +19,25 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import org.apache.tsfile.read.common.type.LongType; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.and; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; public class ImplementIntersectDistinctAsUnion implements Rule { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementPatternRecognition.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementPatternRecognition.java index bc0a5a4e62138..656b10b33a533 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementPatternRecognition.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementPatternRecognition.java @@ -19,15 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import java.util.ArrayList; import java.util.HashMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementTableFunctionSource.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementTableFunctionSource.java index 87df600fe0141..7b9b4934333eb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementTableFunctionSource.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementTableFunctionSource.java @@ -19,17 +19,17 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; @@ -41,7 +41,7 @@ import java.util.concurrent.atomic.AtomicReference; import static com.google.common.collect.Iterables.getOnlyElement; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_LAST; /** * This rule prepares cartesian product of partitions from all inputs of table function. diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/InlineProjections.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/InlineProjections.java index df070ff6a3553..32ed39d1644a8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/InlineProjections.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/InlineProjections.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.common.SessionInfo; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -47,11 +47,11 @@ import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.toSet; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ExpressionSymbolInliner.inlineSymbols; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.isEffectivelyLiteral; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; /** * Inlines expressions from a child project node into a parent project node as long as they are diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeExcept.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeExcept.java index 08fb908e22f2c..e495b832f3b5d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeExcept.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeExcept.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SetOperationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SetOperationNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import java.util.Optional; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeFilters.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeFilters.java index be87e2042ea0d..f29a3fb9b3311 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeFilters.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeFilters.java @@ -19,16 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.combineConjuncts; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.filter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; public class MergeFilters implements Rule { private static final Capture CHILD = newCapture(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeIntersect.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeIntersect.java index 1786909ec998b..e471e3da49b83 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeIntersect.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeIntersect.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SetOperationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SetOperationNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import java.util.Optional; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithMergeSort.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithMergeSort.java index 97c0303a1c109..87b8075599aed 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithMergeSort.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithMergeSort.java @@ -19,24 +19,24 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.MergeLimitWithMergeSort.transformByMergeSortNode; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.limit; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.mergeSort; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; /** * Optimization phase: Distributed plan planning. diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithSort.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithSort.java index 879d0833910bb..fbc4e790c2876 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithSort.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitOverProjectWithSort.java @@ -19,23 +19,23 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.limit; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.sort; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; /** * Optimization phase: Logical plan planning. diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithMergeSort.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithMergeSort.java index 05b54ae21e53b..cafa5f0c2e9c9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithMergeSort.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithMergeSort.java @@ -19,21 +19,21 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import java.util.Optional; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.limit; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.mergeSort; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; /** * Optimization phase: Distributed plan planning. diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithSort.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithSort.java index 90948d96a41d6..968ab39d6b957 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithSort.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimitWithSort.java @@ -19,19 +19,19 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.limit; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.sort; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; /** Optimization phase: Logical plan planning. */ public class MergeLimitWithSort implements Rule { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimits.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimits.java index dba8e1181129f..541f4e6a42dc2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimits.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeLimits.java @@ -19,15 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.limit; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; /** * This rule handles both LimitNode with ties and LimitNode without ties. The parent LimitNode is diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeUnion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeUnion.java index 2c378b78723fa..aa3599d14421d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeUnion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MergeUnion.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SetOperationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SetOperationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import java.util.Optional; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java index 90914832dd254..53682050a7ace 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MarkDistinctNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/OptimizeRowPattern.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/OptimizeRowPattern.java index 915be48a777f2..5009835ff1d20 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/OptimizeRowPattern.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/OptimizeRowPattern.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrPatternAlternationOptimizer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrRowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrRowPatternFlattener; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrPatternAlternationOptimizer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPatternFlattener; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.patternRecognition; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ProjectOffPushDownRule.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ProjectOffPushDownRule.java index 8a13c32767a54..e6976185d244c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ProjectOffPushDownRule.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ProjectOffPushDownRule.java @@ -19,23 +19,23 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import java.util.Optional; import java.util.Set; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.pruneInputs; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; /** * @param The node type to look for under the ProjectNode Looks for a Project parent over a N diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationColumns.java index 30a6cced9e02b..c0ee4cd795a3f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationColumns.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import com.google.common.collect.Maps; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationSourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationSourceColumns.java index 4b0af1793ce19..a5d06b8788615 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationSourceColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAggregationSourceColumns.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.Streams; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneApplyColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneApplyColumns.java index 11dcaefba17a7..74901facbd487 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneApplyColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneApplyColumns.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneApplyCorrelation.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneApplyCorrelation.java index 942c5ba6e6390..3d1b93b7aabe1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneApplyCorrelation.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneApplyCorrelation.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import java.util.List; import java.util.Set; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneApplySourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneApplySourceColumns.java index 746866102d2c0..d3cc7382b52f3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneApplySourceColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneApplySourceColumns.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAssignUniqueIdColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAssignUniqueIdColumns.java index a5c675b5fc8f3..02e4a7d15ff62 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAssignUniqueIdColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneAssignUniqueIdColumns.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; import java.util.Optional; import java.util.Set; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneCopyToColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneCopyToColumns.java index d6f4cfb991e18..4ef3b95185855 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneCopyToColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneCopyToColumns.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneCorrelatedJoinColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneCorrelatedJoinColumns.java index 70d4f3021dddc..5364d492791fd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneCorrelatedJoinColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneCorrelatedJoinColumns.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; import com.google.common.collect.ImmutableSet; @@ -30,12 +30,12 @@ import java.util.Set; import static com.google.common.collect.Sets.intersection; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor.extractUnique; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.restrictOutputs; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.correlatedJoin; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.isAtMostScalar; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.isScalar; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; public class PruneCorrelatedJoinColumns extends ProjectOffPushDownRule { public PruneCorrelatedJoinColumns() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneCorrelatedJoinCorrelation.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneCorrelatedJoinCorrelation.java index c8ec3adeea047..887bce83cd584 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneCorrelatedJoinCorrelation.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneCorrelatedJoinCorrelation.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import java.util.List; import java.util.Set; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneDistinctAggregation.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneDistinctAggregation.java index 37d604f3dd4a8..a00b131efa895 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneDistinctAggregation.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneDistinctAggregation.java @@ -19,16 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; @@ -68,7 +68,7 @@ private static boolean isDistinctOperator(AggregationNode node) { return node.getAggregations().isEmpty(); } - private static class DistinctAggregationRewriter extends PlanVisitor { + private static class DistinctAggregationRewriter implements PlanVisitor { private final Lookup lookup; private boolean rewritten; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneEnforceSingleRowColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneEnforceSingleRowColumns.java index 17125ef9a8021..2107e46c5859c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneEnforceSingleRowColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneEnforceSingleRowColumns.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; import java.util.Optional; import java.util.Set; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneExceptSourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneExceptSourceColumns.java index cc210653426ce..6606e7f719664 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneExceptSourceColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneExceptSourceColumns.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneExplainAnalyzeColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneExplainAnalyzeColumns.java index 697c1a55a8d04..db5291a9d3873 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneExplainAnalyzeColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneExplainAnalyzeColumns.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneFillColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneFillColumns.java index d6b19643c02ed..7c82fcdeaab50 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneFillColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneFillColumns.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FillNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FillNode; import java.util.Optional; import java.util.Set; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneFilterColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneFilterColumns.java index 28be2b531a22f..767c57ab913f3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneFilterColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneFilterColumns.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; import com.google.common.collect.Streams; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneGapFillColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneGapFillColumns.java index e13c2c1550255..4d2ed49335cf3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneGapFillColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneGapFillColumns.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GapFillNode; import com.google.common.collect.Streams; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneIntersectSourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneIntersectSourceColumns.java index 9fabb9b5b1bf8..5186b07ebf9bf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneIntersectSourceColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneIntersectSourceColumns.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneJoinChildrenColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneJoinChildrenColumns.java index d52dca46efe83..8562b70997263 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneJoinChildrenColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneJoinChildrenColumns.java @@ -18,12 +18,12 @@ */ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneJoinColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneJoinColumns.java index c09710346ed09..14c7446f18588 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneJoinColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneJoinColumns.java @@ -18,9 +18,9 @@ */ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; import java.util.Optional; import java.util.Set; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneLimitColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneLimitColumns.java index ab5b76cec43d2..65f3c20c6de25 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneLimitColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneLimitColumns.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; import java.util.Optional; import java.util.Set; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneMarkDistinctColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneMarkDistinctColumns.java index 42a522c4e540e..db3b5cb9c4048 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneMarkDistinctColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneMarkDistinctColumns.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MarkDistinctNode; import com.google.common.collect.Streams; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOffsetColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOffsetColumns.java index 1f60a4ab6430f..e1b6d9c2553f7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOffsetColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOffsetColumns.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; import java.util.Optional; import java.util.Set; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOutputSourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOutputSourceColumns.java index 534299d166e56..c76b0ae2f4706 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOutputSourceColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneOutputSourceColumns.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PrunePatternRecognitionSourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PrunePatternRecognitionSourceColumns.java index ca333145fdc32..0c964b6b42ca9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PrunePatternRecognitionSourceColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PrunePatternRecognitionSourceColumns.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.Measure; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Measure; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowsPerMatch.ONE; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.restrictChildOutputs; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.PatternRecognition.rowsPerMatch; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.patternRecognition; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowsPerMatch.ONE; /** * This rule restricts the inputs to PatternRecognitionNode based on which symbols are used by the diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneProjectColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneProjectColumns.java index bf3360fda15ee..86712e7618ced 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneProjectColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneProjectColumns.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; import java.util.Optional; import java.util.Set; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneSortColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneSortColumns.java index 8966b4c4a8aa4..157bf2712750d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneSortColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneSortColumns.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; import com.google.common.collect.Streams; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorColumns.java index 1886ed39e85d6..5930f59a566de 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorColumns.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; import java.util.List; import java.util.Optional; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorSourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorSourceColumns.java index e9fd2e9db0078..3922f4a25de94 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorSourceColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorSourceColumns.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableScanColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableScanColumns.java index ffce0b6693e9d..a6cee7ad9d86f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableScanColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableScanColumns.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTopKColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTopKColumns.java index d213b327af1a4..2ec929fb23b45 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTopKColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTopKColumns.java @@ -18,9 +18,9 @@ */ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; import com.google.common.collect.Streams; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionColumns.java index d945ce117afbd..1c4bd76b7abd8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionColumns.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionSourceColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionSourceColumns.java index 71760f58aaa4e..eaf3c91f7aba2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionSourceColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneUnionSourceColumns.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneWindowColumns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneWindowColumns.java index 7401a65fe07c8..b5c5e5a303f91 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneWindowColumns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneWindowColumns.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownFilterIntoWindow.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownFilterIntoWindow.java index d7ecab9cabfe4..3a74cd4ad975c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownFilterIntoWindow.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownFilterIntoWindow.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValuesNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; @@ -42,11 +42,11 @@ import static com.google.common.collect.Iterables.getOnlyElement; import static java.lang.Math.toIntExact; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.toTopNRankingType; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.filter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.window; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; public class PushDownFilterIntoWindow implements Rule { private static final Capture childCapture = newCapture(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownLimitIntoWindow.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownLimitIntoWindow.java index e3ce8619c5beb..0bde084e5131f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownLimitIntoWindow.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownLimitIntoWindow.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.common.SessionInfo; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; @@ -34,13 +34,13 @@ import static com.google.common.collect.Iterables.getOnlyElement; import static java.lang.Math.toIntExact; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode.RankingType.ROW_NUMBER; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.toTopNRankingType; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.ChildReplacer.replaceChildren; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.limit; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.window; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode.RankingType.ROW_NUMBER; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; public class PushDownLimitIntoWindow implements Rule { private static final Capture childCapture = newCapture(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownNegationsExpressionRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownNegationsExpressionRewriter.java index 211750fe639b9..9e1bdcf0ed9cf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownNegationsExpressionRewriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownNegationsExpressionRewriter.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionRewriter; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionTreeRewriter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; import com.google.common.collect.ImmutableMap; import org.apache.tsfile.read.common.type.DoubleType; @@ -39,13 +39,13 @@ import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.IS_DISTINCT_FROM; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.combinePredicates; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.extractPredicates; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.IS_DISTINCT_FROM; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL; public final class PushDownNegationsExpressionRewriter { public static Expression pushDownNegations( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownOffsetIntoTableScan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownOffsetIntoTableScan.java index 67b50ab31df4c..10ccd1f0559c1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownOffsetIntoTableScan.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushDownOffsetIntoTableScan.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.offset; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.tableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; /** * Optimization phase: Distributed plan planning. diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughOffset.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughOffset.java index 5f302f3d3dcaa..fc7e35dbf0898 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughOffset.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughOffset.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import static java.lang.Math.addExact; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.limit; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.offset; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; /** * Transforms: diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughProject.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughProject.java index aece5057546d0..83af0078b5723 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughProject.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughProject.java @@ -18,20 +18,20 @@ */ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.transpose; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.limit; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PushPredicateIntoTableScan.containsDiffFunction; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; public class PushLimitThroughProject implements Rule { private static final Capture CHILD = newCapture(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughUnion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughUnion.java index 0c2c11ac72085..2b540cdd1126f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughUnion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushLimitThroughUnion.java @@ -19,24 +19,24 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import java.util.Optional; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.Limit.requiresPreSortedInputs; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.limit; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.union; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.isAtMost; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; /** * Transforms: diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushProjectionThroughUnion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushProjectionThroughUnion.java index 4678ec16b48da..6f221fe968c12 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushProjectionThroughUnion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushProjectionThroughUnion.java @@ -19,17 +19,17 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; @@ -39,11 +39,11 @@ import java.util.List; import java.util.Map; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ExpressionSymbolInliner.inlineSymbols; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.union; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; public class PushProjectionThroughUnion implements Rule { private static final Capture CHILD = newCapture(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushTopKThroughUnion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushTopKThroughUnion.java index 2064e7b6863fd..432cbadfbd2b0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushTopKThroughUnion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PushTopKThroughUnion.java @@ -19,15 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.SymbolMapper; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -37,11 +37,11 @@ import static com.google.common.collect.Iterables.getLast; import static com.google.common.collect.Sets.intersection; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.topK; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.union; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.isAtMost; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; public class PushTopKThroughUnion implements Rule { private static final Capture CHILD = newCapture(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveDuplicateConditions.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveDuplicateConditions.java index 598a5d648bdf5..7e757e734d76b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveDuplicateConditions.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveDuplicateConditions.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionTreeRewriter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.combinePredicates; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.extractPredicates; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyExceptBranches.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyExceptBranches.java index b07531ef9a16d..405fd5ab7d8a0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyExceptBranches.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyExceptBranches.java @@ -19,16 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; @@ -38,8 +38,8 @@ import java.util.List; import java.util.Map; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.isEmpty; public class RemoveEmptyExceptBranches implements Rule { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyUnionBranches.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyUnionBranches.java index 1b4021f71163e..10122129f4de1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyUnionBranches.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveEmptyUnionBranches.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantEnforceSingleRowNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantEnforceSingleRowNode.java index 4546dd4efc2c7..b67afe1d6488e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantEnforceSingleRowNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantEnforceSingleRowNode.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.enforceSingleRow; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.isScalar; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantExists.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantExists.java index 8af7e07af92ee..9d1284234d8a8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantExists.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantExists.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.Cardinality; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.FALSE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.applyNode; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.extractCardinality; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.FALSE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; /** * Given: diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantIdentityProjections.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantIdentityProjections.java index f5a860a6ff2db..e89881e397b33 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantIdentityProjections.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantIdentityProjections.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantWindow.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantWindow.java index e782c7a94ac2c..e093498b25b94 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantWindow.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveRedundantWindow.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValuesNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValuesNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveTrivialFilters.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveTrivialFilters.java index 0927eea552ddd..2e7442cf0fa04 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveTrivialFilters.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveTrivialFilters.java @@ -19,16 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import static com.google.common.base.Preconditions.checkArgument; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.filter; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; public class RemoveTrivialFilters implements Rule { private static final Pattern PATTERN = filter(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveUnreferencedScalarApplyNodes.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveUnreferencedScalarApplyNodes.java index fcecc2c3b8219..bb295e23cc908 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveUnreferencedScalarApplyNodes.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveUnreferencedScalarApplyNodes.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.applyNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveUnreferencedScalarSubqueries.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveUnreferencedScalarSubqueries.java index badc7dff3c499..2c9a8863f320e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveUnreferencedScalarSubqueries.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/RemoveUnreferencedScalarSubqueries.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.RIGHT; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.RIGHT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.correlatedJoin; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.isAtLeastScalar; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.isScalar; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; public class RemoveUnreferencedScalarSubqueries implements Rule { private static final Pattern PATTERN = diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ReplaceWindowWithRowNumber.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ReplaceWindowWithRowNumber.java index 16f3fde8f3232..354e1ad13eb96 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ReplaceWindowWithRowNumber.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ReplaceWindowWithRowNumber.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowNumberNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import java.util.Optional; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationMerge.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationMerge.java index 04dee3888bb14..1e5e707cc3d3f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationMerge.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationMerge.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SetOperationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SetOperationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; import com.google.common.collect.ImmutableListMultimap; import com.google.common.collect.Iterables; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationNodeTranslator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationNodeTranslator.java index 509af165b8b37..a5ba553d77ae9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationNodeTranslator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SetOperationNodeTranslator.java @@ -19,32 +19,32 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.calc.utils.constant.SqlConstant; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionId; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionKind; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.FunctionNullability; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SetOperationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionId; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionKind; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.FunctionNullability; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SetOperationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame; -import org.apache.iotdb.db.utils.constant.SqlConstant; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; @@ -63,11 +63,11 @@ import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.Iterables.concat; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.Util.getResolvedBuiltInAggregateFunction; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; import static org.apache.tsfile.read.common.type.LongType.INT64; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SimplifyCountOverConstant.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SimplifyCountOverConstant.java index e0ea8ffc7ec1f..e950840255be0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SimplifyCountOverConstant.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SimplifyCountOverConstant.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionId; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import org.apache.tsfile.read.common.type.LongType; @@ -44,15 +44,15 @@ import static com.google.common.base.Verify.verify; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.function.FunctionKind.AGGREGATE; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.FunctionNullability.getAggregationFunctionNullability; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionKind.AGGREGATE; +import static org.apache.iotdb.commons.queryengine.plan.relational.metadata.FunctionNullability.getAggregationFunctionNullability; import static org.apache.iotdb.db.queryengine.plan.relational.planner.IrExpressionInterpreter.evaluateConstantExpression; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.isEffectivelyLiteral; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.aggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT; public class SimplifyCountOverConstant implements Rule { private static final Capture CHILD = newCapture(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SimplifyExpressions.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SimplifyExpressions.java index db247ccb59eb4..a13757ce7c5c1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SimplifyExpressions.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SimplifyExpressions.java @@ -19,8 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.IrExpressionInterpreter; import org.apache.iotdb.db.queryengine.plan.relational.planner.IrTypeAnalyzer; import org.apache.iotdb.db.queryengine.plan.relational.planner.LiteralEncoder; @@ -28,8 +30,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableSet; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SingleDistinctAggregationToGroupBy.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SingleDistinctAggregationToGroupBy.java index e5cb6a96130e4..e555a7ca18548 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SingleDistinctAggregationToGroupBy.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/SingleDistinctAggregationToGroupBy.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -38,8 +38,8 @@ import java.util.stream.Stream; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.aggregation; /** diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithProjection.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithProjection.java index a79f86dec91e8..f9a9aac09b913 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithProjection.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithProjection.java @@ -19,21 +19,21 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import org.apache.tsfile.read.common.type.LongType; @@ -45,8 +45,11 @@ import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.nonEmpty; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.subquery; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.type; @@ -54,9 +57,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.correlatedJoin; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.nonEmpty; /** * This rule decorrelates a correlated subquery of LEFT correlated join with distinct operator diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithoutProjection.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithoutProjection.java index 6af314ec33946..fd898d9f1e871 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithoutProjection.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedDistinctAggregationWithoutProjection.java @@ -19,19 +19,19 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -40,17 +40,17 @@ import java.util.Optional; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.nonEmpty; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.restrictOutputs; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.subquery; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.type; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.aggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.correlatedJoin; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.nonEmpty; /** * This rule decorrelates a correlated subquery of LEFT correlated join with distinct operator diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithProjection.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithProjection.java index ffae9eb5c8e02..3cd116cb3ebf4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithProjection.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithProjection.java @@ -19,22 +19,22 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -50,13 +50,17 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.empty; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.nonEmpty; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.and; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.isDistinctOperator; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.restoreDistinctAggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.rewriteWithMasks; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.Aggregation.groupingColumns; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.subquery; @@ -64,10 +68,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.correlatedJoin; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.empty; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.nonEmpty; /** * This rule decorrelates a correlated subquery of LEFT or INNER correlated join with: - single diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithoutProjection.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithoutProjection.java index 5e85f39454b6b..6e343a1486203 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithoutProjection.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGlobalAggregationWithoutProjection.java @@ -19,22 +19,22 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -47,24 +47,24 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.empty; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.nonEmpty; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.and; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.isDistinctOperator; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.restoreDistinctAggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.rewriteWithMasks; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.restrictOutputs; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.Aggregation.groupingColumns; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.subquery; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.aggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.correlatedJoin; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.empty; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.nonEmpty; /** * This rule decorrelates a correlated subquery with: - single global aggregation, or - global diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithProjection.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithProjection.java index cae6088c8784f..ecd0da2b42e86 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithProjection.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithProjection.java @@ -19,21 +19,21 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import org.apache.tsfile.read.common.type.BooleanType; @@ -45,10 +45,13 @@ import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.nonEmpty; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.isDistinctOperator; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.restoreDistinctAggregation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.Aggregation.groupingColumns; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.subquery; @@ -57,9 +60,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.correlatedJoin; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.nonEmpty; /** * This rule decorrelates a correlated subquery of INNER correlated join with: - single grouped diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithoutProjection.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithoutProjection.java index 208e3ed5e0019..e3426af4275a1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithoutProjection.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedGroupedAggregationWithoutProjection.java @@ -19,19 +19,19 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -40,11 +40,14 @@ import java.util.Optional; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.nonEmpty; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.isDistinctOperator; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.AggregationDecorrelation.restoreDistinctAggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.Util.restrictOutputs; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.Aggregation.groupingColumns; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.subquery; @@ -52,9 +55,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.aggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.correlatedJoin; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.nonEmpty; /** * This rule decorrelates a correlated subquery of INNER correlated join with: - single grouped diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedJoinToJoin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedJoinToJoin.java index f24de2d1b0d76..42723fba62b96 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedJoinToJoin.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedJoinToJoin.java @@ -19,15 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; @@ -35,13 +35,13 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.nonEmpty; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.combineConjuncts; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.correlation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.correlatedJoin; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.nonEmpty; /** * Tries to decorrelate subquery and rewrite it using normal join. Decorrelated predicates are part diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedScalarSubquery.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedScalarSubquery.java index 3dcb42f5ddd01..e87607a923c6a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedScalarSubquery.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformCorrelatedScalarSubquery.java @@ -19,26 +19,26 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MarkDistinctNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.Cardinality; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; @@ -46,17 +46,17 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.nonEmpty; +import static org.apache.iotdb.calc.transformation.dag.column.FailFunctionColumnTransformer.FAIL_FUNCTION_NAME; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; import static org.apache.iotdb.db.queryengine.plan.relational.planner.PlanNodeSearcher.searchFrom; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.correlation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.filter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.correlatedJoin; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.extractCardinality; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.nonEmpty; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.FailFunctionColumnTransformer.FAIL_FUNCTION_NAME; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; import static org.apache.tsfile.read.common.type.LongType.INT64; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformExistsApplyToCorrelatedJoin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformExistsApplyToCorrelatedJoin.java index 0e864eed38642..a16e6a0fc4697 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformExistsApplyToCorrelatedJoin.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformExistsApplyToCorrelatedJoin.java @@ -19,25 +19,25 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanNodeDecorrelator; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -48,15 +48,15 @@ import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.Iterables.getOnlyElement; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.globalAggregation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.globalAggregation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.applyNode; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.Util.getResolvedBuiltInAggregateFunction; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; /** diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformFilteringSemiJoinToInnerJoin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformFilteringSemiJoinToInnerJoin.java index 1f32fdbffe157..9679961291f20 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformFilteringSemiJoinToInnerJoin.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformFilteringSemiJoinToInnerJoin.java @@ -19,18 +19,18 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Capture; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -40,17 +40,17 @@ import java.util.function.Predicate; import static com.google.common.collect.ImmutableList.toImmutableList; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Capture.newCapture; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ExpressionSymbolInliner.inlineSymbols; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.and; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.extractConjuncts; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.filter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.semiJoin; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.source; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Capture.newCapture; /** * Rewrite filtering semi-join to inner join. diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedInPredicateSubqueryToSemiJoin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedInPredicateSubqueryToSemiJoin.java index 80fe79c7e5f42..03b426616a409 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedInPredicateSubqueryToSemiJoin.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedInPredicateSubqueryToSemiJoin.java @@ -19,17 +19,17 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import static com.google.common.collect.Iterables.getOnlyElement; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.empty; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.Apply.correlation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.applyNode; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.empty; /** * This optimizers looks for InPredicate expressions in ApplyNodes and replaces the nodes with diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedSubqueryToJoin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedSubqueryToJoin.java index 6d96843e89302..2dcdb036d7b7c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedSubqueryToJoin.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/TransformUncorrelatedSubqueryToJoin.java @@ -19,19 +19,19 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Captures; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Rule; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Captures; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -41,12 +41,12 @@ import java.util.Optional; import static com.google.common.base.Preconditions.checkState; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.empty; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.CorrelatedJoin.correlation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.Patterns.correlatedJoin; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.extractCardinality; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.empty; public class TransformUncorrelatedSubqueryToJoin implements Rule { private static final Pattern PATTERN = diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/Util.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/Util.java index 5845ffd422105..658586e11ad59 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/Util.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/Util.java @@ -18,16 +18,16 @@ */ package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -41,8 +41,8 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.Iterables.getOnlyElement; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode.RankingType.RANK; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode.RankingType.ROW_NUMBER; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode.RankingType.RANK; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode.RankingType.ROW_NUMBER; final class Util { private Util() {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTableScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTableScanNode.java index 56d39f2f77dcb..5d4248d747089 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTableScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTableScanNode.java @@ -19,19 +19,22 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import com.google.common.collect.ImmutableList; @@ -55,11 +58,11 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.TABLE_TIME_COLUMN_NAME; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.LAST; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.LAST_BY; import static org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator.DATE_BIN_PREFIX; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT; -import static org.apache.iotdb.db.utils.constant.SqlConstant.TABLE_TIME_COLUMN_NAME; public class AggregationTableScanNode extends DeviceTableScanNode { // if there is date_bin function of time, we should use this field to transform time input @@ -282,8 +285,8 @@ public AggregationTableScanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitAggregationTableScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitAggregationTableScan(this, context); } public static AggregationTableScanNode combineAggregationAndTableScan( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTreeDeviceViewScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTreeDeviceViewScanNode.java index 1635f2d7345b4..638bdff1e94cb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTreeDeviceViewScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationTreeDeviceViewScanNode.java @@ -19,15 +19,17 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -102,8 +104,8 @@ public Map getMeasurementColumnNameMap() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitAggregationTreeDeviceViewScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitAggregationTreeDeviceViewScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AlignedAggregationTreeDeviceViewScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AlignedAggregationTreeDeviceViewScanNode.java index f1758f2de8b3b..25d0637ea4b0c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AlignedAggregationTreeDeviceViewScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AlignedAggregationTreeDeviceViewScanNode.java @@ -19,15 +19,17 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import java.nio.ByteBuffer; @@ -86,8 +88,8 @@ public AlignedAggregationTreeDeviceViewScanNode( private AlignedAggregationTreeDeviceViewScanNode() {} @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitAlignedAggregationTreeDeviceViewScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitAlignedAggregationTreeDeviceViewScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ChildReplacer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ChildReplacer.java index 96dc4074b220b..6e7ca275ea2ef 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ChildReplacer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ChildReplacer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CopyToNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CopyToNode.java index cb04e0d410a3c..05e6f26cc9b43 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CopyToNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CopyToNode.java @@ -19,13 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; import org.apache.iotdb.db.queryengine.execution.operator.process.copyto.CopyToOptions; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import java.io.DataOutputStream; import java.io.IOException; @@ -90,8 +91,8 @@ public PlanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitCopyTo(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitCopyTo(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CteScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CteScanNode.java index 48eb58c980d01..aed06ed625558 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CteScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CteScanNode.java @@ -22,14 +22,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.utils.cte.CteDataStore; import org.apache.iotdb.db.queryengine.common.DataNodeEndPoints; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SourceNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.utils.cte.CteDataStore; import com.google.common.collect.ImmutableList; @@ -67,8 +68,8 @@ public CteDataStore getDataStore() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitCteScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitCteScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/DeviceTableScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/DeviceTableScanNode.java index b91737739351a..3a522c8af61ce 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/DeviceTableScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/DeviceTableScanNode.java @@ -19,15 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.relational.metadata.AlignedDeviceEntry; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.tsfile.read.filter.basic.Filter; @@ -121,8 +122,8 @@ public DeviceTableScanNode( } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitDeviceTableScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitDeviceTableScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ExchangeNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ExchangeNode.java index bb34978faf51d..a762542e56bf5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ExchangeNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ExchangeNode.java @@ -20,13 +20,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; import org.apache.iotdb.common.rpc.thrift.TEndPoint; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -63,8 +64,8 @@ public int allowedChildCount() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitTableExchange(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitTableExchange(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ExplainAnalyzeNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ExplainAnalyzeNode.java index 23aa8baad2dfd..e98670c696541 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ExplainAnalyzeNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ExplainAnalyzeNode.java @@ -19,11 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import java.io.DataOutputStream; import java.io.IOException; @@ -62,8 +63,8 @@ public PlanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitExplainAnalyze(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitExplainAnalyze(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/InformationSchemaTableScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/InformationSchemaTableScanNode.java index cca7dd4df0f7a..171fb3c67145b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/InformationSchemaTableScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/InformationSchemaTableScanNode.java @@ -19,14 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import java.io.DataOutputStream; import java.io.IOException; @@ -84,8 +85,8 @@ public InformationSchemaTableScanNode( protected InformationSchemaTableScanNode() {} @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInformationSchemaTableScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInformationSchemaTableScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/IntoNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/IntoNode.java index 3386fc4d9b1ed..2d70b9311376e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/IntoNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/IntoNode.java @@ -19,13 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Insert; import com.google.common.collect.ImmutableList; @@ -68,8 +69,8 @@ public IntoNode( } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitInto(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitInto(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/NonAlignedAggregationTreeDeviceViewScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/NonAlignedAggregationTreeDeviceViewScanNode.java index 8380f56164d93..4b21ed5e09b4e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/NonAlignedAggregationTreeDeviceViewScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/NonAlignedAggregationTreeDeviceViewScanNode.java @@ -19,15 +19,17 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import java.nio.ByteBuffer; @@ -86,8 +88,9 @@ public NonAlignedAggregationTreeDeviceViewScanNode( private NonAlignedAggregationTreeDeviceViewScanNode() {} @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitNonAlignedAggregationTreeDeviceViewScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor) + .visitNonAlignedAggregationTreeDeviceViewScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Patterns.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Patterns.java index d661862a7433e..1a20259a7e583 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Patterns.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Patterns.java @@ -19,21 +19,50 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.calc.plan.relational.utils.matching.Pattern; +import org.apache.iotdb.calc.plan.relational.utils.matching.Property; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GapFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MarkDistinctNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowNumberNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowsPerMatch; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern; -import org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Property; import java.util.List; import java.util.Optional; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.Iterables.getOnlyElement; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Pattern.typeOf; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Property.optionalProperty; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.matching.Property.property; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Pattern.typeOf; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Property.optionalProperty; +import static org.apache.iotdb.calc.plan.relational.utils.matching.Property.property; public final class Patterns { private Patterns() {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableDiskUsageInformationSchemaTableScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableDiskUsageInformationSchemaTableScanNode.java index a135da76c62b5..3a148dd8d1159 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableDiskUsageInformationSchemaTableScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableDiskUsageInformationSchemaTableScanNode.java @@ -20,13 +20,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableScanNode.java index 11807d9ceb499..79ed9dd09f765 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableScanNode.java @@ -20,17 +20,18 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SourceNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -106,8 +107,8 @@ public TableScanNode( protected TableScanNode() {} @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitTableScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitTableScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeAlignedDeviceViewScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeAlignedDeviceViewScanNode.java index 8347a602c4dfd..6fa6e051fd1de 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeAlignedDeviceViewScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeAlignedDeviceViewScanNode.java @@ -19,14 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import java.io.DataOutputStream; @@ -74,8 +75,8 @@ public TreeAlignedDeviceViewScanNode( public TreeAlignedDeviceViewScanNode() {} @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitTreeAlignedDeviceViewScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitTreeAlignedDeviceViewScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeDeviceViewScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeDeviceViewScanNode.java index bd93310980765..bd3b83eb230c6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeDeviceViewScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeDeviceViewScanNode.java @@ -19,13 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -104,8 +105,8 @@ public Map getMeasurementColumnNameMap() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitTreeDeviceViewScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitTreeDeviceViewScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeNonAlignedDeviceViewScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeNonAlignedDeviceViewScanNode.java index d1c1063592b78..25f355e2b759a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeNonAlignedDeviceViewScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TreeNonAlignedDeviceViewScanNode.java @@ -19,14 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import java.io.DataOutputStream; @@ -74,8 +75,8 @@ public TreeNonAlignedDeviceViewScanNode( public TreeNonAlignedDeviceViewScanNode() {} @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitTreeNonAlignedDeviceViewScan(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitTreeNonAlignedDeviceViewScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/AbstractTableDeviceQueryNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/AbstractTableDeviceQueryNode.java index a66939efe89f8..2c1830e5637ce 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/AbstractTableDeviceQueryNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/AbstractTableDeviceQueryNode.java @@ -20,12 +20,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.filter.SchemaFilter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.TableDeviceSourceNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.schemaengine.schemaregion.attribute.update.DeviceAttributeCacheUpdater; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/AbstractTableDevicesDeletionNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/AbstractTableDevicesDeletionNode.java index 95e7cf2c9e135..b96e301b287f9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/AbstractTableDevicesDeletionNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/AbstractTableDevicesDeletionNode.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegionPlan; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/AbstractTableSchemaQueryAttributeSecurityVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/AbstractTableSchemaQueryAttributeSecurityVisitor.java index 71be86f04fa3c..8deecce928c12 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/AbstractTableSchemaQueryAttributeSecurityVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/AbstractTableSchemaQueryAttributeSecurityVisitor.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; import org.apache.iotdb.commons.consensus.ConsensusGroupId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.TableDeviceSourceNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FilterNode; @@ -30,7 +30,7 @@ import javax.annotation.Nonnull; public abstract class AbstractTableSchemaQueryAttributeSecurityVisitor - extends PlanVisitor { + implements PlanVisitor { public R processFragment( final @Nonnull FragmentInstance instance, final @Nonnull ConsensusGroupId groupId) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/ConstructTableDevicesBlackListNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/ConstructTableDevicesBlackListNode.java index 761bc2bb1fdae..f960d416be685 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/ConstructTableDevicesBlackListNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/ConstructTableDevicesBlackListNode.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegionPlanType; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegionPlanVisitor; @@ -88,8 +89,8 @@ protected void serializeAttributes(final DataOutputStream stream) throws IOExcep } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitConstructTableDevicesBlackList(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitConstructTableDevicesBlackList(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/CreateOrUpdateTableDeviceNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/CreateOrUpdateTableDeviceNode.java index be4b1337e7e4c..636d9d7dba53c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/CreateOrUpdateTableDeviceNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/CreateOrUpdateTableDeviceNode.java @@ -20,10 +20,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegionPlan; @@ -288,8 +289,8 @@ public List splitByPartition(final IAnalysis analysis) { } @Override - public R accept(final PlanVisitor visitor, C context) { - return visitor.visitCreateOrUpdateTableDevice(this, context); + public R accept(final IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitCreateOrUpdateTableDevice(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/DeleteTableDeviceNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/DeleteTableDeviceNode.java index 5cfccb784e638..a828826130322 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/DeleteTableDeviceNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/DeleteTableDeviceNode.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegionPlan; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegionPlanType; @@ -98,8 +99,8 @@ public static DeleteTableDeviceNode deserialize(final ByteBuffer buffer) { } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitDeleteTableDevice(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitDeleteTableDevice(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/DeleteTableDevicesInBlackListNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/DeleteTableDevicesInBlackListNode.java index 5b51af4af1606..1778b41ceb844 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/DeleteTableDevicesInBlackListNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/DeleteTableDevicesInBlackListNode.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegionPlanType; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegionPlanVisitor; @@ -60,8 +61,8 @@ public static DeleteTableDevicesInBlackListNode deserialize(final ByteBuffer buf } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitDeleteTableDevicesInBlackList(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitDeleteTableDevicesInBlackList(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/RollbackTableDevicesBlackListNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/RollbackTableDevicesBlackListNode.java index b643e9b81e051..029bcb6f8db28 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/RollbackTableDevicesBlackListNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/RollbackTableDevicesBlackListNode.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegionPlanType; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegionPlanVisitor; @@ -60,8 +61,8 @@ public static RollbackTableDevicesBlackListNode deserialize(final ByteBuffer buf } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitRollbackTableDevicesBlackList(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitRollbackTableDevicesBlackList(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableAttributeColumnDropNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableAttributeColumnDropNode.java index 02780bc2f40ea..964f379000c69 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableAttributeColumnDropNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableAttributeColumnDropNode.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegionPlan; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegionPlanType; @@ -108,8 +109,8 @@ public static TableAttributeColumnDropNode deserialize(final ByteBuffer buffer) } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitTableAttributeColumnDrop(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitTableAttributeColumnDrop(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceAttributeCommitUpdateNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceAttributeCommitUpdateNode.java index 430d2a99695b8..14ec0fbdfc65d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceAttributeCommitUpdateNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceAttributeCommitUpdateNode.java @@ -20,9 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegionPlan; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegionPlanType; @@ -111,8 +112,8 @@ public List getOutputColumnNames() { } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitTableDeviceAttributeCommit(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitTableDeviceAttributeCommit(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceAttributeUpdateNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceAttributeUpdateNode.java index c0105337d87cf..d0d6e6a437c9c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceAttributeUpdateNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceAttributeUpdateNode.java @@ -20,17 +20,18 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.filter.SchemaFilter; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.analyze.IAnalysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.UpdateAssignment; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegionPlan; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegionPlanType; @@ -120,8 +121,8 @@ public SessionInfo getSessionInfo() { } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitTableDeviceAttributeUpdate(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitTableDeviceAttributeUpdate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceFetchNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceFetchNode.java index 59c65782e4ed9..829610c1915a5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceFetchNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceFetchNode.java @@ -20,10 +20,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.column.ColumnHeader; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.TableDeviceSourceNode; import org.apache.iotdb.db.schemaengine.schemaregion.attribute.update.DeviceAttributeCacheUpdater; @@ -174,8 +175,8 @@ public static TableDeviceFetchNode deserialize(final ByteBuffer buffer) { } @Override - public R accept(final PlanVisitor visitor, C context) { - return visitor.visitTableDeviceFetch(this, context); + public R accept(final IPlanVisitor visitor, C context) { + return ((PlanVisitor) visitor).visitTableDeviceFetch(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceQueryCountNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceQueryCountNode.java index 0952b6a0f297c..86fdba837ad33 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceQueryCountNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceQueryCountNode.java @@ -20,13 +20,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.filter.SchemaFilter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import java.nio.ByteBuffer; import java.util.Collections; @@ -59,8 +60,8 @@ public List getOutputColumnNames() { } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitTableDeviceQueryCount(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitTableDeviceQueryCount(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceQueryScanNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceQueryScanNode.java index f5b19bbf27666..61a18d3f41ca2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceQueryScanNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableDeviceQueryScanNode.java @@ -20,13 +20,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.filter.SchemaFilter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -73,8 +74,8 @@ public boolean isNeedAligned() { } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitTableDeviceQueryScan(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitTableDeviceQueryScan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableNodeLocationAddNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableNodeLocationAddNode.java index 23481d498661d..90b18ac5d675f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableNodeLocationAddNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableNodeLocationAddNode.java @@ -20,9 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegionPlan; import org.apache.iotdb.db.schemaengine.schemaregion.SchemaRegionPlanType; @@ -75,8 +76,8 @@ public List getOutputColumnNames() { } @Override - public R accept(final PlanVisitor visitor, final C context) { - return visitor.visitTableNodeLocationAdd(this, context); + public R accept(final IPlanVisitor visitor, final C context) { + return ((PlanVisitor) visitor).visitTableNodeLocationAdd(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableSchemaQueryWriteVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableSchemaQueryWriteVisitor.java index c2ff3820cbad3..29e9b8d46139b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableSchemaQueryWriteVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/schema/TableSchemaQueryWriteVisitor.java @@ -20,9 +20,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema; import org.apache.iotdb.commons.consensus.ConsensusGroupId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.executor.RegionExecutionResult; import org.apache.iotdb.db.queryengine.execution.executor.RegionWriteExecutor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.TableDeviceSourceNode; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/AdaptivePlanOptimizer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/AdaptivePlanOptimizer.java index 1cbe076077e64..3ea2f7c9aad86 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/AdaptivePlanOptimizer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/AdaptivePlanOptimizer.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import java.util.Set; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/CheckSubqueryNodesAreRewritten.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/CheckSubqueryNodesAreRewritten.java index eab54f6251ca0..76fecf5962f27 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/CheckSubqueryNodesAreRewritten.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/CheckSubqueryNodesAreRewritten.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/JoinUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/JoinUtils.java index 9e751d2dd4d31..03e2b5a575073 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/JoinUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/JoinUtils.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.EqualityInference; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -34,12 +34,12 @@ import java.util.Set; import static com.google.common.base.Preconditions.checkArgument; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor.extractUnique; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.DeterminismEvaluator.isDeterministic; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.combineConjuncts; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.extractConjuncts; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.filterDeterministicConjuncts; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; public class JoinUtils { public static final String UNSUPPORTED_JOIN_CRITERIA = diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/ParallelizeGrouping.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/ParallelizeGrouping.java index 9b51308f469ed..ccfe4735c963d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/ParallelizeGrouping.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/ParallelizeGrouping.java @@ -19,25 +19,25 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; import java.util.List; import java.util.Map; @@ -83,7 +83,7 @@ public PlanNode optimize(PlanNode plan, PlanOptimizer.Context context) { return plan.accept(new Rewriter(context.getAnalysis()), new Context(null, 0)); } - private static class Rewriter extends PlanVisitor { + private static class Rewriter implements PlanVisitor { private final Analysis analysis; public Rewriter(Analysis analysis) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanNodeDecorrelator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanNodeDecorrelator.java index 4011370adc7b1..c09f04aa1da29 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanNodeDecorrelator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanNodeDecorrelator.java @@ -19,28 +19,28 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.iterative.GroupReference; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeManager; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.type.TypeCoercion; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -60,14 +60,14 @@ import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableMap.toImmutableMap; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.DeterminismEvaluator.isDeterministic; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.and; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.combineConjuncts; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.extractConjuncts; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleGroupingSet; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.SymbolMapper.symbolMapper; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; public class PlanNodeDecorrelator { private final PlannerContext plannerContext; @@ -96,7 +96,7 @@ public Optional decorrelateFilters(PlanNode node, List decorrelationResult.correlatedPredicates, decorrelationResult.node, correlation)); } - private class DecorrelatingVisitor extends PlanVisitor, Void> { + private class DecorrelatingVisitor implements PlanVisitor, Void> { private final TypeManager typeManager; private final List correlation; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanOptimizer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanOptimizer.java index c8395c51eae8b..4613687d23af2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanOptimizer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanOptimizer.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; import org.apache.iotdb.db.queryengine.plan.relational.execution.querystats.PlanOptimizersStatsCollector; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java index 3bcb6f1935b25..99a3aca6c5a2c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushAggregationIntoTableScan.java @@ -19,21 +19,21 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableSet; import org.apache.tsfile.utils.Pair; @@ -71,7 +71,7 @@ public PlanNode optimize(PlanNode plan, PlanOptimizer.Context context) { context.getSymbolAllocator())); } - private static class Rewriter extends PlanVisitor { + private static class Rewriter implements PlanVisitor { @Override public PlanNode visitPlan(PlanNode node, Context context) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushLimitOffsetIntoTableScan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushLimitOffsetIntoTableScan.java index 89403b59f9795..fcb2f77ec45b0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushLimitOffsetIntoTableScan.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushLimitOffsetIntoTableScan.java @@ -19,32 +19,32 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GapFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LinearFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PreviousFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.commons.schema.table.InformationSchema; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import java.util.HashSet; import java.util.Map; @@ -73,7 +73,7 @@ public PlanNode optimize(PlanNode plan, PlanOptimizer.Context context) { return plan.accept(new Rewriter(context.getAnalysis()), new Context()); } - private static class Rewriter extends PlanVisitor { + private static class Rewriter implements PlanVisitor { private final Analysis analysis; public Rewriter(Analysis analysis) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushPredicateIntoTableScan.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushPredicateIntoTableScan.java index 7bd4530afd194..5827993a062e7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushPredicateIntoTableScan.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PushPredicateIntoTableScan.java @@ -20,60 +20,60 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.DataPartitionQueryParam; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.commons.schema.table.InformationSchema; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertTabletNode; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.ConvertPredicateToTimeFilterVisitor; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.PredicateCombineIntoTableScanChecker; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.predicate.PredicatePushIntoMetadataChecker; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.NonAlignedDeviceEntry; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; import org.apache.iotdb.db.queryengine.plan.relational.planner.EqualityInference; import org.apache.iotdb.db.queryengine.plan.relational.planner.IrExpressionInterpreter; import org.apache.iotdb.db.queryengine.plan.relational.planner.IrTypeAnalyzer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlannerContext; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ReplaceSymbolInExpression; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -103,6 +103,16 @@ import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableMap.toImmutableMap; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.calc.plan.relational.planner.ir.GlobalTimePredicateExtractVisitor.extractGlobalTimeFilter; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_FIRST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.DESC_NULLS_LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.FULL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.RIGHT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; import static org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.STATE_TABLE_MODEL; import static org.apache.iotdb.commons.schema.table.InformationSchema.CURRENT_QUERIES; import static org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory.ATTRIBUTE; @@ -112,30 +122,20 @@ import static org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet.SCHEMA_FETCHER; import static org.apache.iotdb.db.queryengine.plan.analyze.AnalyzeVisitor.getTimePartitionSlotList; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ExpressionSymbolInliner.inlineSymbols; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_FIRST; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_LAST; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.DESC_NULLS_LAST; import static org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor.extractUnique; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.DeterminismEvaluator.isDeterministic; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.GlobalTimePredicateExtractVisitor.extractGlobalTimeFilter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.combineConjuncts; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.extractConjuncts; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.filterDeterministicConjuncts; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.isEffectivelyLiteral; import static org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.rule.CanonicalizeExpressionRewriter.canonicalizeExpression; import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.ChildReplacer.replaceChildren; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.FULL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.LEFT; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.RIGHT; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.JoinUtils.UNSUPPORTED_JOIN_CRITERIA; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.JoinUtils.extractJoinPredicate; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.JoinUtils.joinEqualityExpression; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.JoinUtils.processInnerJoin; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.JoinUtils.processLimitedOuterJoin; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.QueryCardinalityUtil.extractCardinality; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; /** * Optimization phase: Logical plan planning. @@ -187,7 +187,7 @@ public PlanNode optimize(PlanNode plan, Context context) { new RewriteContext(TRUE_LITERAL)); } - private static class Rewriter extends PlanVisitor { + private static class Rewriter implements PlanVisitor { private final MPPQueryContext queryContext; private final Analysis analysis; private final Metadata metadata; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/QueryCardinalityUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/QueryCardinalityUtil.java index 7c81f196c69f4..c8c9efa874a4b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/QueryCardinalityUtil.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/QueryCardinalityUtil.java @@ -19,19 +19,19 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.iterative.GroupReference; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ExchangeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; import com.google.common.collect.Range; @@ -88,7 +88,7 @@ public static Cardinality extractCardinality(PlanNode node, Lookup lookup) { } private static final class CardinalityExtractorPlanVisitor - extends PlanVisitor, Void> { + implements PlanVisitor, Void> { private final Lookup lookup; public CardinalityExtractorPlanVisitor(Lookup lookup) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SortElimination.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SortElimination.java index bb276f07150b9..8df10d5d8ec1d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SortElimination.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SortElimination.java @@ -19,18 +19,18 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GapFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValueFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; import java.util.Collections; @@ -54,7 +54,7 @@ public PlanNode optimize(PlanNode plan, PlanOptimizer.Context context) { return plan.accept(new Rewriter(), new Context()); } - private static class Rewriter extends PlanVisitor { + private static class Rewriter implements PlanVisitor { @Override public PlanNode visitPlan(PlanNode node, Context context) { PlanNode newNode = node.clone(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SymbolMapper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SymbolMapper.java index 002e59f124c9f..49c79a502db51 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SymbolMapper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/SymbolMapper.java @@ -19,33 +19,33 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.Measure; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowNumberNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.AggregationValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ClassifierValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrLabel; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.MatchNumberValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ScalarValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionRewriter; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionTreeRewriter; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Measure; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.AggregationValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ClassifierValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.MatchNumberValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ScalarValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -61,7 +61,7 @@ import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableSet.toImmutableSet; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.groupingSets; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.groupingSets; public class SymbolMapper { private final Function mappingFunction; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformAggregationToStreamable.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformAggregationToStreamable.java index 1d64e28f8e3fa..7d5e7c7e4b128 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformAggregationToStreamable.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformAggregationToStreamable.java @@ -19,22 +19,22 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValueFillNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -68,7 +68,7 @@ public PlanNode optimize(PlanNode plan, PlanOptimizer.Context context) { return plan.accept(new Rewriter(), null); } - private static class Rewriter extends PlanVisitor { + private static class Rewriter implements PlanVisitor { @Override public PlanNode visitPlan(PlanNode node, Void context) { @@ -100,7 +100,7 @@ public PlanNode visitAggregationTableScan(AggregationTableScanNode node, Void co * preGroupedSymbols of child-AggregationNode should have been calculated. GroupContext: The * GroupingKeys of current AggregationNode. */ - private static class DeriveGroupProperties extends PlanVisitor, GroupContext> { + private static class DeriveGroupProperties implements PlanVisitor, GroupContext> { @Override public List visitPlan(PlanNode node, GroupContext context) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformQuantifiedComparisonApplyToCorrelatedJoin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformQuantifiedComparisonApplyToCorrelatedJoin.java index d7aaeda4f8571..299cc72c9e659 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformQuantifiedComparisonApplyToCorrelatedJoin.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformQuantifiedComparisonApplyToCorrelatedJoin.java @@ -19,29 +19,29 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; import org.apache.iotdb.db.queryengine.plan.relational.planner.SimplePlanRewriter; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -56,20 +56,20 @@ import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.Iterables.getOnlyElement; import static java.util.Objects.requireNonNull; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.globalAggregation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode.Quantifier.ALL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.FALSE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.NOT_EQUAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; import static org.apache.iotdb.db.queryengine.plan.relational.planner.SimplePlanRewriter.rewriteWith; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.combineConjuncts; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.globalAggregation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.singleAggregation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode.Quantifier.ALL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.FALSE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.NOT_EQUAL; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureTranslator.toSqlType; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; public class TransformQuantifiedComparisonApplyToCorrelatedJoin implements PlanOptimizer { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformSortToStreamSort.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformSortToStreamSort.java index 7eb6dfb81c97c..4b4866aa1faab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformSortToStreamSort.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/TransformSortToStreamSort.java @@ -19,23 +19,23 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; import java.util.Map; @@ -61,7 +61,7 @@ public PlanNode optimize(PlanNode plan, PlanOptimizer.Context context) { new Rewriter(context.getAnalysis(), context.getQueryContext()), new Context()); } - private static class Rewriter extends PlanVisitor { + private static class Rewriter implements PlanVisitor { private final Analysis analysis; private final MPPQueryContext queryContext; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/UnaliasSymbolReferences.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/UnaliasSymbolReferences.java index 24adb746df4e1..6dda2d17503d0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/UnaliasSymbolReferences.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/UnaliasSymbolReferences.java @@ -19,56 +19,56 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GapFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LinearFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MarkDistinctNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PreviousFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowNumberNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValueFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; import org.apache.iotdb.db.queryengine.plan.relational.planner.NodeAndMappings; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.DeterminismEvaluator; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ApplyNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CopyToNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CorrelatedJoinNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExceptNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GapFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntersectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LinearFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PreviousFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ValueFillNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; @@ -92,7 +92,7 @@ import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableMap.toImmutableMap; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.SymbolMapper.symbolMapper; import static org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.SymbolMapper.symbolReallocator; @@ -143,7 +143,7 @@ public NodeAndMappings reallocateSymbols( return new NodeAndMappings(result.getRoot(), symbolMapper(result.getMappings()).map(fields)); } - private static class Visitor extends PlanVisitor { + private static class Visitor implements PlanVisitor { private final Metadata metadata; private final Function, SymbolMapper> mapperProvider; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/Util.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/Util.java index 706b24a567b3b..4a78b753fbf1b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/Util.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/Util.java @@ -19,17 +19,17 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations; +import org.apache.iotdb.commons.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionId; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionKind; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.FunctionNullability; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionId; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionKind; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.FunctionNullability; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode; @@ -44,10 +44,10 @@ import java.util.Optional; import static com.google.common.base.Preconditions.checkState; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; public class Util { private Util() {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/RowPatternToIrRewriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/rowpattern/RowPatternToIrRewriter.java similarity index 51% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/RowPatternToIrRewriter.java rename to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/rowpattern/RowPatternToIrRewriter.java index ed93c9900393b..9679b52967b05 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/RowPatternToIrRewriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/rowpattern/RowPatternToIrRewriter.java @@ -17,37 +17,47 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; - +package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.rowpattern; + +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrAlternation; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrAnchor; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrAnchor.Type; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrConcatenation; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrEmpty; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrExclusion; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrLabel; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrPermutation; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrQuantified; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrRowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AnchorPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.EmptyPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExcludedPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OneOrMoreQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternAlternation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternConcatenation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternPermutation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternVariable; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RangeQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ZeroOrMoreQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ZeroOrOneQuantifier; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis.Range; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrAnchor.Type; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AnchorPattern; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.EmptyPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExcludedPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OneOrMoreQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternAlternation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternConcatenation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternPermutation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternVariable; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RangeQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ZeroOrMoreQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ZeroOrOneQuantifier; import java.util.List; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.oneOrMore; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.range; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrMore; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrOne; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrQuantifier.oneOrMore; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrQuantifier.range; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrMore; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrOne; -public class RowPatternToIrRewriter extends AstVisitor { +public class RowPatternToIrRewriter implements AstVisitor { private final Analysis analysis; public RowPatternToIrRewriter(Analysis analysis) { @@ -59,7 +69,7 @@ public static IrRowPattern rewrite(RowPattern node, Analysis analysis) { } @Override - protected IrRowPattern visitPatternAlternation(PatternAlternation node, Void context) { + public IrRowPattern visitPatternAlternation(PatternAlternation node, Void context) { List patterns = node.getPatterns().stream().map(this::process).collect(toImmutableList()); @@ -67,7 +77,7 @@ protected IrRowPattern visitPatternAlternation(PatternAlternation node, Void con } @Override - protected IrRowPattern visitPatternConcatenation(PatternConcatenation node, Void context) { + public IrRowPattern visitPatternConcatenation(PatternConcatenation node, Void context) { List patterns = node.getPatterns().stream().map(this::process).collect(toImmutableList()); @@ -75,7 +85,7 @@ protected IrRowPattern visitPatternConcatenation(PatternConcatenation node, Void } @Override - protected IrRowPattern visitQuantifiedPattern(QuantifiedPattern node, Void context) { + public IrRowPattern visitQuantifiedPattern(QuantifiedPattern node, Void context) { IrRowPattern pattern = process(node.getPattern()); IrQuantifier quantifier = rewritePatternQuantifier(node.getPatternQuantifier()); @@ -105,7 +115,7 @@ private IrQuantifier rewritePatternQuantifier(PatternQuantifier quantifier) { } @Override - protected IrRowPattern visitAnchorPattern(AnchorPattern node, Void context) { + public IrRowPattern visitAnchorPattern(AnchorPattern node, Void context) { Type type; switch (node.getType()) { case PARTITION_START: @@ -122,19 +132,19 @@ protected IrRowPattern visitAnchorPattern(AnchorPattern node, Void context) { } @Override - protected IrRowPattern visitEmptyPattern(EmptyPattern node, Void context) { + public IrRowPattern visitEmptyPattern(EmptyPattern node, Void context) { return new IrEmpty(); } @Override - protected IrRowPattern visitExcludedPattern(ExcludedPattern node, Void context) { + public IrRowPattern visitExcludedPattern(ExcludedPattern node, Void context) { IrRowPattern pattern = process(node.getPattern()); return new IrExclusion(pattern); } @Override - protected IrRowPattern visitPatternPermutation(PatternPermutation node, Void context) { + public IrRowPattern visitPatternPermutation(PatternPermutation node, Void context) { List patterns = node.getPatterns().stream().map(this::process).collect(toImmutableList()); @@ -142,7 +152,7 @@ protected IrRowPattern visitPatternPermutation(PatternPermutation node, Void con } @Override - protected IrRowPattern visitPatternVariable(PatternVariable node, Void context) { + public IrRowPattern visitPatternVariable(PatternVariable node, Void context) { return new IrLabel(node.getName().getCanonicalValue()); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ParameterExtractor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ParameterExtractor.java index d727acdc35e2b..b76655394c1b6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ParameterExtractor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ParameterExtractor.java @@ -18,13 +18,14 @@ */ package org.apache.iotdb.db.queryengine.plan.relational.sql; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DefaultTraversalVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import com.google.common.collect.ImmutableMap; @@ -67,12 +68,8 @@ public static List extractParameters(Statement statement) { .getLocation() .orElseThrow( () -> new SemanticException("Parameter node must have a location")), - Comparator.comparing( - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NodeLocation - ::getLineNumber) - .thenComparing( - org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NodeLocation - ::getColumnNumber))) + Comparator.comparing(NodeLocation::getLineNumber) + .thenComparing(NodeLocation::getColumnNumber))) .collect(toImmutableList()); } @@ -113,7 +110,7 @@ public List getParameters() { } @Override - protected Void visitParameter(Parameter node, Void context) { + public Void visitParameter(Parameter node, Void context) { parameters.add(node); return null; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AbstractQueryDeviceWithCache.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AbstractQueryDeviceWithCache.java index 6dd24a1bb3b7c..8c3d46b2cca41 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AbstractQueryDeviceWithCache.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AbstractQueryDeviceWithCache.java @@ -19,6 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.table.TreeViewSchema; import org.apache.iotdb.commons.schema.table.TsTable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AbstractTraverseDevice.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AbstractTraverseDevice.java index fa3f8cbcbd61e..8933a14894128 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AbstractTraverseDevice.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AbstractTraverseDevice.java @@ -19,11 +19,18 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.filter.SchemaFilter; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.MetadataUtil; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AddColumn.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AddColumn.java index 6f271c042ffc9..872523dcc721c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AddColumn.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AddColumn.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Collections; @@ -76,8 +83,8 @@ public boolean isView() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitAddColumn(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitAddColumn(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AlterColumnDataType.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AlterColumnDataType.java index a3e354d592e59..5d0a9aa6bc647 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AlterColumnDataType.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AlterColumnDataType.java @@ -19,6 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import org.apache.tsfile.utils.RamUsageEstimator; import javax.annotation.Nullable; @@ -93,8 +102,8 @@ public String toString() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitAlterColumnDataType(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitAlterColumnDataType(this, context); } public QualifiedName getTableName() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AlterDB.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AlterDB.java index 81537c3e0906b..fc4e3b4407454 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AlterDB.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AlterDB.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; import org.apache.iotdb.db.queryengine.plan.statement.metadata.DatabaseSchemaStatement; import org.apache.tsfile.utils.RamUsageEstimator; @@ -45,8 +47,8 @@ public DatabaseSchemaStatement.DatabaseSchemaStatementType getType() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitAlterDB(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitAlterDB(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AlterPipe.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AlterPipe.java index 5e47764bd12d1..089e9dcbe877f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AlterPipe.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AlterPipe.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Map; @@ -92,8 +95,8 @@ public boolean isReplaceAllConnectorAttributes() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitAlterPipe(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitAlterPipe(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AsofJoinOn.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AsofJoinOn.java index 16d48a41a6289..915d1c5c1f2b6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AsofJoinOn.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AsofJoinOn.java @@ -19,7 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinCriteria; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinOn; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -30,8 +39,8 @@ import java.util.Objects; import static com.google.common.base.MoreObjects.toStringHelper; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils.and; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL; public class AsofJoinOn extends JoinOn { private static final long INSTANCE_SIZE = diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AstVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AstVisitor.java index 93cc5cf95a4d6..2e236e116e85f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AstVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AstVisitor.java @@ -19,894 +19,443 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; -import javax.annotation.Nullable; +public interface AstVisitor extends CommonQueryAstVisitor { -public abstract class AstVisitor { - - public R process(Node node) { - return process(node, null); - } - - public R process(Node node, @Nullable C context) { - return node.accept(this, context); - } - - protected R visitNode(Node node, C context) { - return null; - } - - protected R visitExpression(Expression node, C context) { - return visitNode(node, context); - } - - protected R visitCurrentTime(CurrentTime node, C context) { - return visitExpression(node, context); - } - - protected R visitArithmeticBinary(ArithmeticBinaryExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitBetweenPredicate(BetweenPredicate node, C context) { - return visitExpression(node, context); - } - - protected R visitCoalesceExpression(CoalesceExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitComparisonExpression(ComparisonExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitLiteral(Literal node, C context) { - return visitExpression(node, context); - } - - protected R visitDoubleLiteral(DoubleLiteral node, C context) { - return visitLiteral(node, context); - } - - protected R visitFloatLiteral(FloatLiteral node, C context) { - return visitLiteral(node, context); - } - - protected R visitDecimalLiteral(DecimalLiteral node, C context) { - return visitLiteral(node, context); - } - - protected R visitTimeDurationLiteral(TimeDurationLiteral node, C context) { - return visitLiteral(node, context); - } - - protected R visitStatement(Statement node, C context) { - return visitNode(node, context); - } - - protected R visitQuery(Query node, C context) { - return visitStatement(node, context); - } - - protected R visitExplain(Explain node, C context) { + default R visitExplain(Explain node, C context) { return visitStatement(node, context); } - protected R visitCopyTo(CopyTo node, C context) { + default R visitCopyTo(CopyTo node, C context) { return visitStatement(node, context); } - protected R visitExplainAnalyze(ExplainAnalyze node, C context) { + default R visitExplainAnalyze(ExplainAnalyze node, C context) { return visitStatement(node, context); } - protected R visitUse(Use node, C context) { + default R visitUse(Use node, C context) { return visitStatement(node, context); } - protected R visitPrepare(Prepare node, C context) { + default R visitPrepare(Prepare node, C context) { return visitStatement(node, context); } - protected R visitExecute(Execute node, C context) { + default R visitExecute(Execute node, C context) { return visitStatement(node, context); } - protected R visitExecuteImmediate(ExecuteImmediate node, C context) { + default R visitExecuteImmediate(ExecuteImmediate node, C context) { return visitStatement(node, context); } - protected R visitDeallocate(Deallocate node, C context) { + default R visitDeallocate(Deallocate node, C context) { return visitStatement(node, context); } - protected R visitGenericLiteral(GenericLiteral node, C context) { - return visitLiteral(node, context); - } - - protected R visitWith(With node, C context) { - return visitNode(node, context); - } - - protected R visitWithQuery(WithQuery node, C context) { - return visitNode(node, context); - } - - protected R visitSelect(Select node, C context) { - return visitNode(node, context); - } - - protected R visitRelation(Relation node, C context) { - return visitNode(node, context); - } - - protected R visitQueryBody(QueryBody node, C context) { - return visitRelation(node, context); - } - - protected R visitFill(Fill node, C context) { - return visitNode(node, context); - } - - protected R visitOrderBy(OrderBy node, C context) { - return visitNode(node, context); - } - - protected R visitOffset(Offset node, C context) { - return visitNode(node, context); - } - - protected R visitLimit(Limit node, C context) { - return visitNode(node, context); - } - - protected R visitAllRows(AllRows node, C context) { - return visitExpression(node, context); - } - - protected R visitQuerySpecification(QuerySpecification node, C context) { - return visitQueryBody(node, context); - } - - protected R visitSetOperation(SetOperation node, C context) { - return visitQueryBody(node, context); - } - - protected R visitUnion(Union node, C context) { - return visitSetOperation(node, context); - } - - protected R visitIntersect(Intersect node, C context) { - return visitSetOperation(node, context); - } - - protected R visitExcept(Except node, C context) { - return visitSetOperation(node, context); - } - - protected R visitWhenClause(WhenClause node, C context) { - return visitExpression(node, context); - } - - protected R visitInPredicate(InPredicate node, C context) { - return visitExpression(node, context); - } - - protected R visitFunctionCall(FunctionCall node, C context) { - return visitExpression(node, context); - } - - protected R visitProcessingMode(ProcessingMode node, C context) { - return visitNode(node, context); - } - - protected R visitSimpleCaseExpression(SimpleCaseExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitSearchedCaseExpression(SearchedCaseExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitStringLiteral(StringLiteral node, C context) { - return visitLiteral(node, context); - } - - protected R visitBinaryLiteral(BinaryLiteral node, C context) { - return visitLiteral(node, context); - } - - protected R visitBooleanLiteral(BooleanLiteral node, C context) { - return visitLiteral(node, context); - } - - protected R visitInListExpression(InListExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitIdentifier(Identifier node, C context) { - return visitExpression(node, context); - } - - protected R visitDereferenceExpression(DereferenceExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitTrim(Trim node, C context) { - return visitExpression(node, context); - } - - protected R visitIfExpression(IfExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitNullIfExpression(NullIfExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitNullLiteral(NullLiteral node, C context) { - return visitLiteral(node, context); - } - - protected R visitArithmeticUnary(ArithmeticUnaryExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitNotExpression(NotExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitExtract(Extract node, C context) { - return visitExpression(node, context); - } - - protected R visitWindowDefinition(WindowDefinition node, C context) { - return visitNode(node, context); - } - - protected R visitWindowReference(WindowReference node, C context) { - return visitNode(node, context); - } - - protected R visitWindowSpecification(WindowSpecification node, C context) { - return visitNode(node, context); - } - - protected R visitWindowFrame(WindowFrame node, C context) { - return visitNode(node, context); - } - - protected R visitFrameBound(FrameBound node, C context) { + default R visitColumnDefinition(ColumnDefinition node, C context) { return visitNode(node, context); } - protected R visitSelectItem(SelectItem node, C context) { + default R visitViewFieldDefinition(ViewFieldDefinition node, C context) { return visitNode(node, context); } - protected R visitSingleColumn(SingleColumn node, C context) { - return visitSelectItem(node, context); - } - - protected R visitAllColumns(AllColumns node, C context) { - return visitSelectItem(node, context); - } - - protected R visitLikePredicate(LikePredicate node, C context) { - return visitExpression(node, context); - } - - protected R visitIsNotNullPredicate(IsNotNullPredicate node, C context) { - return visitExpression(node, context); - } - - protected R visitIsNullPredicate(IsNullPredicate node, C context) { - return visitExpression(node, context); - } - - protected R visitLongLiteral(LongLiteral node, C context) { - return visitLiteral(node, context); - } - - protected R visitParameter(Parameter node, C context) { - return visitExpression(node, context); - } - - protected R visitLogicalExpression(LogicalExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitSubqueryExpression(SubqueryExpression node, C context) { - throw new SemanticException("Only TableSubquery is supported now"); - } - - protected R visitSortItem(SortItem node, C context) { - return visitNode(node, context); - } - - protected R visitTable(Table node, C context) { - return visitQueryBody(node, context); - } - - protected R visitValues(Values node, C context) { - return visitQueryBody(node, context); - } - - protected R visitRow(Row node, C context) { - return visitExpression(node, context); - } - - protected R visitTableSubquery(TableSubquery node, C context) { - return visitQueryBody(node, context); - } - - protected R visitAliasedRelation(AliasedRelation node, C context) { - return visitRelation(node, context); - } - - protected R visitJoin(Join node, C context) { - return visitRelation(node, context); - } - - protected R visitExists(ExistsPredicate node, C context) { - return visitExpression(node, context); - } - - protected R visitCast(Cast node, C context) { - return visitExpression(node, context); - } - - protected R visitFieldReference(FieldReference node, C context) { - return visitExpression(node, context); - } - - protected R visitColumnDefinition(ColumnDefinition node, C context) { - return visitNode(node, context); - } - - protected R visitViewFieldDefinition(ViewFieldDefinition node, C context) { - return visitNode(node, context); - } - - protected R visitCreateDB(final CreateDB node, final C context) { + default R visitCreateDB(final CreateDB node, final C context) { return visitStatement(node, context); } - protected R visitAlterDB(final AlterDB node, final C context) { + default R visitAlterDB(final AlterDB node, final C context) { return visitStatement(node, context); } - protected R visitDropDB(final DropDB node, final C context) { + default R visitDropDB(final DropDB node, final C context) { return visitStatement(node, context); } - protected R visitShowDB(final ShowDB node, final C context) { + default R visitShowDB(final ShowDB node, final C context) { return visitStatement(node, context); } - protected R visitCreateTable(final CreateTable node, final C context) { + default R visitCreateTable(final CreateTable node, final C context) { return visitStatement(node, context); } - protected R visitCreateView(final CreateView node, final C context) { + default R visitCreateView(final CreateView node, final C context) { return visitStatement(node, context); } - protected R visitProperty(final Property node, final C context) { + default R visitProperty(final Property node, final C context) { return visitNode(node, context); } - protected R visitDropTable(final DropTable node, final C context) { + default R visitDropTable(final DropTable node, final C context) { return visitStatement(node, context); } - protected R visitDeleteDevice(final DeleteDevice node, final C context) { + default R visitDeleteDevice(final DeleteDevice node, final C context) { return visitStatement(node, context); } - protected R visitShowTables(ShowTables node, C context) { + default R visitShowTables(ShowTables node, C context) { return visitStatement(node, context); } - protected R visitShowCluster(ShowCluster node, C context) { + default R visitShowCluster(ShowCluster node, C context) { return visitStatement(node, context); } - protected R visitShowRegions(ShowRegions node, C context) { + default R visitShowRegions(ShowRegions node, C context) { return visitStatement(node, context); } - protected R visitShowDataNodes(ShowDataNodes node, C context) { + default R visitShowDataNodes(ShowDataNodes node, C context) { return visitStatement(node, context); } - protected R visitShowAvailableUrls(ShowAvailableUrls node, C context) { + default R visitShowAvailableUrls(ShowAvailableUrls node, C context) { return visitStatement(node, context); } - protected R visitShowConfigNodes(ShowConfigNodes node, C context) { + default R visitShowConfigNodes(ShowConfigNodes node, C context) { return visitStatement(node, context); } - protected R visitShowAINodes(ShowAINodes node, C context) { + default R visitShowAINodes(ShowAINodes node, C context) { return visitStatement(node, context); } - protected R visitRemoveAINode(RemoveAINode node, C context) { + default R visitRemoveAINode(RemoveAINode node, C context) { return visitStatement(node, context); } - protected R visitClearCache(ClearCache node, C context) { + default R visitClearCache(ClearCache node, C context) { return visitStatement(node, context); } - protected R visitRenameTable(RenameTable node, C context) { + default R visitRenameTable(RenameTable node, C context) { return visitStatement(node, context); } - protected R visitRemoveDataNode(RemoveDataNode node, C context) { + default R visitRemoveDataNode(RemoveDataNode node, C context) { return visitStatement(node, context); } - protected R visitRemoveConfigNode(RemoveConfigNode node, C context) { + default R visitRemoveConfigNode(RemoveConfigNode node, C context) { return visitStatement(node, context); } - protected R visitDescribeTable(DescribeTable node, C context) { + default R visitDescribeTable(DescribeTable node, C context) { return visitStatement(node, context); } - protected R visitSetProperties(SetProperties node, C context) { + default R visitSetProperties(SetProperties node, C context) { return visitStatement(node, context); } - protected R visitRenameColumn(RenameColumn node, C context) { + default R visitRenameColumn(RenameColumn node, C context) { return visitStatement(node, context); } - protected R visitDropColumn(DropColumn node, C context) { + default R visitDropColumn(DropColumn node, C context) { return visitStatement(node, context); } - protected R visitAddColumn(AddColumn node, C context) { + default R visitAddColumn(AddColumn node, C context) { return visitStatement(node, context); } - protected R visitSetTableComment(SetTableComment node, C context) { + default R visitSetTableComment(SetTableComment node, C context) { return visitStatement(node, context); } - protected R visitSetColumnComment(SetColumnComment node, C context) { + default R visitSetColumnComment(SetColumnComment node, C context) { return visitStatement(node, context); } - protected R visitCreateIndex(CreateIndex node, C context) { + default R visitCreateIndex(CreateIndex node, C context) { return visitStatement(node, context); } - protected R visitDropIndex(DropIndex node, C context) { + default R visitDropIndex(DropIndex node, C context) { return visitStatement(node, context); } - protected R visitShowIndex(ShowIndex node, C context) { + default R visitShowIndex(ShowIndex node, C context) { return visitStatement(node, context); } - protected R visitInsert(Insert node, C context) { + default R visitInsert(Insert node, C context) { return visitStatement(node, context); } - protected R visitInsertTablet(InsertTablet node, C context) { + default R visitInsertTablet(InsertTablet node, C context) { return visitStatement(node, context); } - protected R visitFlush(Flush node, C context) { + default R visitFlush(Flush node, C context) { return visitStatement(node, context); } - protected R visitSetConfiguration(SetConfiguration node, C context) { + default R visitSetConfiguration(SetConfiguration node, C context) { return visitStatement(node, context); } - protected R visitShowConfiguration(ShowConfiguration node, C context) { + default R visitShowConfiguration(ShowConfiguration node, C context) { return visitStatement(node, context); } - protected R visitStartRepairData(StartRepairData node, C context) { + default R visitStartRepairData(StartRepairData node, C context) { return visitStatement(node, context); } - protected R visitStopRepairData(StopRepairData node, C context) { + default R visitStopRepairData(StopRepairData node, C context) { return visitStatement(node, context); } - protected R visitLoadConfiguration(LoadConfiguration node, C context) { + default R visitLoadConfiguration(LoadConfiguration node, C context) { return visitStatement(node, context); } - protected R visitSetSystemStatus(SetSystemStatus node, C context) { + default R visitSetSystemStatus(SetSystemStatus node, C context) { return visitStatement(node, context); } - protected R visitInsertRow(InsertRow node, C context) { + default R visitInsertRow(InsertRow node, C context) { return visitStatement(node, context); } - protected R visitInsertRows(InsertRows node, C context) { + default R visitInsertRows(InsertRows node, C context) { return visitStatement(node, context); } - protected R visitDelete(Delete node, C context) { + default R visitDelete(Delete node, C context) { return visitStatement(node, context); } - protected R visitUpdate(Update node, C context) { + default R visitUpdate(Update node, C context) { return visitStatement(node, context); } - protected R visitUpdateAssignment(UpdateAssignment node, C context) { - return visitNode(node, context); - } - - protected R visitGroupBy(GroupBy node, C context) { - return visitNode(node, context); - } - - protected R visitGroupingElement(GroupingElement node, C context) { - return visitNode(node, context); - } - - protected R visitGroupingSets(GroupingSets node, C context) { - return visitGroupingElement(node, context); - } - - protected R visitSimpleGroupBy(SimpleGroupBy node, C context) { - return visitGroupingElement(node, context); - } - - protected R visitSymbolReference(SymbolReference node, C context) { - return visitExpression(node, context); - } - - protected R visitQuantifiedComparisonExpression(QuantifiedComparisonExpression node, C context) { - return visitExpression(node, context); - } - - protected R visitCurrentDatabase(CurrentDatabase node, C context) { - return visitExpression(node, context); - } - - protected R visitCurrentUser(CurrentUser node, C context) { - return visitExpression(node, context); - } - - protected R visitDataType(DataType node, C context) { - return visitExpression(node, context); - } - - protected R visitGenericDataType(GenericDataType node, C context) { - return visitDataType(node, context); - } - - protected R visitDataTypeParameter(DataTypeParameter node, C context) { + default R visitUpdateAssignment(UpdateAssignment node, C context) { return visitNode(node, context); } - protected R visitNumericTypeParameter(NumericParameter node, C context) { - return visitDataTypeParameter(node, context); - } - - protected R visitTypeParameter(TypeParameter node, C context) { - return visitDataTypeParameter(node, context); - } - - protected R visitShowFunctions(ShowFunctions node, C context) { + default R visitShowFunctions(ShowFunctions node, C context) { return visitStatement(node, context); } - protected R visitCreateFunction(CreateFunction node, C context) { + default R visitCreateFunction(CreateFunction node, C context) { return visitStatement(node, context); } - protected R visitDropFunction(DropFunction node, C context) { + default R visitDropFunction(DropFunction node, C context) { return visitStatement(node, context); } - protected R visitCreateExternalService(CreateExternalService node, C context) { + default R visitCreateExternalService(CreateExternalService node, C context) { return visitStatement(node, context); } - protected R visitStartExternalService(StartExternalService node, C context) { + default R visitStartExternalService(StartExternalService node, C context) { return visitStatement(node, context); } - protected R visitStopExternalService(StopExternalService node, C context) { + default R visitStopExternalService(StopExternalService node, C context) { return visitStatement(node, context); } - protected R visitDropExternalService(DropExternalService node, C context) { + default R visitDropExternalService(DropExternalService node, C context) { return visitStatement(node, context); } - protected R visitShowExternalService(ShowExternalService node, C context) { + default R visitShowExternalService(ShowExternalService node, C context) { return visitStatement(node, context); } - protected R visitCreateOrUpdateDevice(CreateOrUpdateDevice node, C context) { + default R visitCreateOrUpdateDevice(CreateOrUpdateDevice node, C context) { return visitStatement(node, context); } - protected R visitFetchDevice(FetchDevice node, C context) { + default R visitFetchDevice(FetchDevice node, C context) { return visitStatement(node, context); } - protected R visitShowDevice(ShowDevice node, C context) { + default R visitShowDevice(ShowDevice node, C context) { return visitStatement(node, context); } - protected R visitCountDevice(CountDevice node, C context) { + default R visitCountDevice(CountDevice node, C context) { return visitStatement(node, context); } - protected R visitCreatePipe(CreatePipe node, C context) { + default R visitCreatePipe(CreatePipe node, C context) { return visitStatement(node, context); } - protected R visitAlterPipe(AlterPipe node, C context) { + default R visitAlterPipe(AlterPipe node, C context) { return visitStatement(node, context); } - protected R visitDropPipe(DropPipe node, C context) { + default R visitDropPipe(DropPipe node, C context) { return visitStatement(node, context); } - protected R visitStartPipe(StartPipe node, C context) { + default R visitStartPipe(StartPipe node, C context) { return visitStatement(node, context); } - protected R visitStopPipe(StopPipe node, C context) { + default R visitStopPipe(StopPipe node, C context) { return visitStatement(node, context); } - protected R visitShowPipes(ShowPipes node, C context) { + default R visitShowPipes(ShowPipes node, C context) { return visitStatement(node, context); } - protected R visitCreatePipePlugin(CreatePipePlugin node, C context) { + default R visitCreatePipePlugin(CreatePipePlugin node, C context) { return visitStatement(node, context); } - protected R visitDropPipePlugin(DropPipePlugin node, C context) { + default R visitDropPipePlugin(DropPipePlugin node, C context) { return visitStatement(node, context); } - protected R visitShowPipePlugins(ShowPipePlugins node, C context) { + default R visitShowPipePlugins(ShowPipePlugins node, C context) { return visitStatement(node, context); } - protected R visitLoadTsFile(LoadTsFile node, C context) { + default R visitLoadTsFile(LoadTsFile node, C context) { return visitStatement(node, context); } - protected R visitPipeEnriched(PipeEnriched node, C context) { + default R visitPipeEnriched(PipeEnriched node, C context) { return visitStatement(node, context); } - protected R visitCreateTopic(CreateTopic node, C context) { + default R visitCreateTopic(CreateTopic node, C context) { return visitStatement(node, context); } - protected R visitDropTopic(DropTopic node, C context) { + default R visitDropTopic(DropTopic node, C context) { return visitStatement(node, context); } - protected R visitShowTopics(ShowTopics node, C context) { + default R visitShowTopics(ShowTopics node, C context) { return visitStatement(node, context); } - protected R visitShowSubscriptions(ShowSubscriptions node, C context) { + default R visitShowSubscriptions(ShowSubscriptions node, C context) { return visitStatement(node, context); } - protected R visitDropSubscription(DropSubscription node, C context) { + default R visitDropSubscription(DropSubscription node, C context) { return visitStatement(node, context); } - protected R visitShowVersion(ShowVersion node, C context) { + default R visitShowVersion(ShowVersion node, C context) { return visitStatement(node, context); } - protected R visitShowCurrentUser(ShowCurrentUser node, C context) { + default R visitShowCurrentUser(ShowCurrentUser node, C context) { return visitStatement(node, context); } - protected R visitShowCurrentDatabase(ShowCurrentDatabase node, C context) { + default R visitShowCurrentDatabase(ShowCurrentDatabase node, C context) { return visitStatement(node, context); } - protected R visitShowCurrentSqlDialect(ShowCurrentSqlDialect node, C context) { + default R visitShowCurrentSqlDialect(ShowCurrentSqlDialect node, C context) { return visitStatement(node, context); } - protected R visitShowVariables(ShowVariables node, C context) { + default R visitShowVariables(ShowVariables node, C context) { return visitStatement(node, context); } - protected R visitShowClusterId(ShowClusterId node, C context) { + default R visitShowClusterId(ShowClusterId node, C context) { return visitStatement(node, context); } - protected R visitShowCurrentTimestamp(ShowCurrentTimestamp node, C context) { + default R visitShowCurrentTimestamp(ShowCurrentTimestamp node, C context) { return visitStatement(node, context); } - protected R visitShowStatement(ShowStatement node, C context) { + default R visitShowStatement(ShowStatement node, C context) { return visitStatement(node, context); } - protected R visitShowQueriesStatement(ShowQueriesStatement node, C context) { + default R visitShowQueriesStatement(ShowQueriesStatement node, C context) { return visitShowStatement(node, context); } - protected R visitCountStatement(CountStatement node, C context) { + default R visitCountStatement(CountStatement node, C context) { return visitStatement(node, context); } - protected R visitKillQuery(KillQuery node, C context) { + default R visitKillQuery(KillQuery node, C context) { return visitStatement(node, context); } - protected R visitAlterColumnDataType(AlterColumnDataType node, C context) { + default R visitAlterColumnDataType(AlterColumnDataType node, C context) { return visitStatement(node, context); } - protected R visitRelationalAuthorPlan(RelationalAuthorStatement node, C context) { + default R visitRelationalAuthorPlan(RelationalAuthorStatement node, C context) { return visitStatement(node, context); } - protected R visitMigrateRegion(MigrateRegion node, C context) { + default R visitMigrateRegion(MigrateRegion node, C context) { return visitStatement(node, context); } - protected R visitReconstructRegion(ReconstructRegion node, C context) { + default R visitReconstructRegion(ReconstructRegion node, C context) { return visitStatement(node, context); } - protected R visitExtendRegion(ExtendRegion node, C context) { + default R visitExtendRegion(ExtendRegion node, C context) { return visitStatement(node, context); } - protected R visitRemoveRegion(RemoveRegion node, C context) { + default R visitRemoveRegion(RemoveRegion node, C context) { return visitStatement(node, context); } - protected R visitColumns(Columns node, C context) { - return visitExpression(node, context); - } - - protected R visitSetSqlDialect(SetSqlDialect node, C context) { + default R visitSetSqlDialect(SetSqlDialect node, C context) { return visitStatement(node, context); } - protected R visitCreateTraining(CreateTraining node, C context) { + default R visitCreateTraining(CreateTraining node, C context) { return visitStatement(node, context); } - protected R visitCreateModel(CreateModel node, C context) { + default R visitCreateModel(CreateModel node, C context) { return visitStatement(node, context); } - protected R visitShowModels(ShowModels node, C context) { + default R visitShowModels(ShowModels node, C context) { return visitStatement(node, context); } - protected R visitShowLoadedModels(ShowLoadedModels node, C context) { + default R visitShowLoadedModels(ShowLoadedModels node, C context) { return visitStatement(node, context); } - protected R visitShowAIDevices(ShowAIDevices node, C context) { + default R visitShowAIDevices(ShowAIDevices node, C context) { return visitStatement(node, context); } - protected R visitLoadModel(LoadModel node, C context) { + default R visitLoadModel(LoadModel node, C context) { return visitStatement(node, context); } - protected R visitUnloadModel(UnloadModel node, C context) { + default R visitUnloadModel(UnloadModel node, C context) { return visitStatement(node, context); } - protected R visitDropModel(DropModel node, C context) { + default R visitDropModel(DropModel node, C context) { return visitStatement(node, context); } - - public R visitTableArgument(TableFunctionTableArgument tableFunctionTableArgument, C context) { - return visitNode(tableFunctionTableArgument, context); - } - - public R visitTableFunctionArgument(TableFunctionArgument tableFunctionArgument, C context) { - return visitNode(tableFunctionArgument, context); - } - - public R visitTableFunctionInvocation( - TableFunctionInvocation tableFunctionInvocation, C context) { - return visitNode(tableFunctionInvocation, context); - } - - protected R visitMeasureDefinition(MeasureDefinition node, C context) { - return visitNode(node, context); - } - - protected R visitSkipTo(SkipTo node, C context) { - return visitNode(node, context); - } - - protected R visitSubsetDefinition(SubsetDefinition node, C context) { - return visitNode(node, context); - } - - protected R visitVariableDefinition(VariableDefinition node, C context) { - return visitNode(node, context); - } - - protected R visitPatternRecognitionRelation(PatternRecognitionRelation node, C context) { - return visitRelation(node, context); - } - - protected R visitRowPattern(RowPattern node, C context) { - return visitNode(node, context); - } - - protected R visitPatternAlternation(PatternAlternation node, C context) { - return visitRowPattern(node, context); - } - - protected R visitPatternConcatenation(PatternConcatenation node, C context) { - return visitRowPattern(node, context); - } - - protected R visitQuantifiedPattern(QuantifiedPattern node, C context) { - return visitRowPattern(node, context); - } - - protected R visitAnchorPattern(AnchorPattern node, C context) { - return visitRowPattern(node, context); - } - - protected R visitEmptyPattern(EmptyPattern node, C context) { - return visitRowPattern(node, context); - } - - protected R visitExcludedPattern(ExcludedPattern node, C context) { - return visitRowPattern(node, context); - } - - protected R visitPatternPermutation(PatternPermutation node, C context) { - return visitRowPattern(node, context); - } - - protected R visitPatternVariable(PatternVariable node, C context) { - return visitRowPattern(node, context); - } - - protected R visitPatternQuantifier(PatternQuantifier node, C context) { - return visitNode(node, context); - } - - protected R visitZeroOrMoreQuantifier(ZeroOrMoreQuantifier node, C context) { - return visitPatternQuantifier(node, context); - } - - protected R visitOneOrMoreQuantifier(OneOrMoreQuantifier node, C context) { - return visitPatternQuantifier(node, context); - } - - protected R visitZeroOrOneQuantifier(ZeroOrOneQuantifier node, C context) { - return visitPatternQuantifier(node, context); - } - - protected R visitRangeQuantifier(RangeQuantifier node, C context) { - return visitPatternQuantifier(node, context); - } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ClearCache.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ClearCache.java index f661a3f114cdf..844d2eaaa7be8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ClearCache.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ClearCache.java @@ -19,6 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.commons.schema.cache.CacheClearOptions; import com.google.common.collect.ImmutableList; @@ -52,8 +56,8 @@ public Set getOptions() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitClearCache(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitClearCache(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ColumnDefinition.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ColumnDefinition.java index d3e638c098d40..6f069be40c850 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ColumnDefinition.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ColumnDefinition.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericDataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import com.google.common.collect.ImmutableList; @@ -94,8 +101,8 @@ public Optional getCharsetName() { } @Override - public R accept(final AstVisitor visitor, C context) { - return visitor.visitColumnDefinition(this, context); + public R accept(final IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitColumnDefinition(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CopyTo.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CopyTo.java index 676ec2e1edfc8..49ff997998cb3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CopyTo.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CopyTo.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.execution.operator.process.copyto.CopyToOptions; import com.google.common.collect.ImmutableList; @@ -64,8 +69,8 @@ public CopyToOptions getOptions() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitCopyTo(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitCopyTo(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CountDevice.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CountDevice.java index e288cd398721e..b8800a31f4da9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CountDevice.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CountDevice.java @@ -19,6 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; @@ -60,8 +64,8 @@ public TsBlock getTsBlock(final Analysis analysis) { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitCountDevice(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitCountDevice(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CountStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CountStatement.java index 04193f4edbc9a..91385b788d59d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CountStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CountStatement.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -52,8 +59,8 @@ public Optional getWhere() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitCountStatement(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitCountStatement(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateDB.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateDB.java index 1f22500c3e595..27ac04014ff7b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateDB.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateDB.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; import org.apache.iotdb.db.queryengine.plan.statement.metadata.DatabaseSchemaStatement; import org.apache.tsfile.utils.RamUsageEstimator; @@ -46,8 +48,8 @@ public DatabaseSchemaStatement.DatabaseSchemaStatementType getType() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitCreateDB(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitCreateDB(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateExternalService.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateExternalService.java index 36674368e9fd2..2172c8a8dae7f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateExternalService.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateExternalService.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -51,8 +57,8 @@ public String getClassName() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitCreateExternalService(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitCreateExternalService(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateFunction.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateFunction.java index e7cafdca1395b..74e621d2668da 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateFunction.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateFunction.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -68,8 +74,8 @@ public Optional getUriString() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitCreateFunction(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitCreateFunction(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateIndex.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateIndex.java index cd21eed2406f9..ae6dc7c22ae77 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateIndex.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateIndex.java @@ -19,6 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -74,8 +82,8 @@ public List getColumnList() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitCreateIndex(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitCreateIndex(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateModel.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateModel.java index ff2b5ccb42977..c9c75cdcc6a4b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateModel.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateModel.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.List; @@ -46,8 +51,8 @@ public String getUri() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitCreateModel(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitCreateModel(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateOrUpdateDevice.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateOrUpdateDevice.java index b597d6fd6aa29..cef2ba0e01029 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateOrUpdateDevice.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateOrUpdateDevice.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import org.apache.tsfile.utils.RamUsageEstimator; import javax.annotation.Nonnull; @@ -84,8 +89,8 @@ public List getAttributeValueList() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitCreateOrUpdateDevice(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitCreateOrUpdateDevice(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreatePipe.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreatePipe.java index 269978e87bde0..909a8647524de 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreatePipe.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreatePipe.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Map; @@ -73,8 +76,8 @@ public Map getSinkAttributes() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitCreatePipe(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitCreatePipe(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreatePipePlugin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreatePipePlugin.java index 5e2666aa15f85..4302dca37de6d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreatePipePlugin.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreatePipePlugin.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Objects; @@ -63,8 +66,8 @@ public String getUriString() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitCreatePipePlugin(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitCreatePipePlugin(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateTable.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateTable.java index 03342885baa97..7b81c8f93abf5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateTable.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateTable.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -87,8 +94,8 @@ public String getComment() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitCreateTable(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitCreateTable(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateTopic.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateTopic.java index 64ea19f4051f7..b7518a29abf45 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateTopic.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateTopic.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Map; @@ -57,8 +60,8 @@ public Map getTopicAttributes() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitCreateTopic(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitCreateTopic(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateTraining.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateTraining.java index 2b786f4303c25..e6837b5cb8cb6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateTraining.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateTraining.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.List; @@ -42,8 +47,8 @@ public CreateTraining(String modelId, String targetSql) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitCreateTraining(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitCreateTraining(this, context); } public void setParameters(Map parameters) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateView.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateView.java index 026da0c710d64..a0c2cc94fdf61 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateView.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CreateView.java @@ -20,7 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; import org.apache.tsfile.utils.RamUsageEstimator; @@ -68,8 +71,8 @@ public boolean isRestrict() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitCreateView(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitCreateView(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DatabaseStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DatabaseStatement.java index 960c2f7effe78..950ee060aa721 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DatabaseStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DatabaseStatement.java @@ -19,6 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.statement.metadata.DatabaseSchemaStatement; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Deallocate.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Deallocate.java index 2a977ae25df67..8868fb4dcdcfe 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Deallocate.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Deallocate.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -50,8 +57,8 @@ public Identifier getStatementName() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitDeallocate(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitDeallocate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DefaultExpressionTraversalVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DefaultExpressionTraversalVisitor.java index 127178e97c8b4..eeca56aab54a5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DefaultExpressionTraversalVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DefaultExpressionTraversalVisitor.java @@ -19,10 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; + /** When walking Expressions, don't traverse into SubqueryExpressions */ public abstract class DefaultExpressionTraversalVisitor extends DefaultTraversalVisitor { @Override - protected Void visitSubqueryExpression(SubqueryExpression node, C context) { + public Void visitSubqueryExpression(SubqueryExpression node, C context) { // Don't traverse into Subqueries within an Expression return null; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DefaultTraversalVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DefaultTraversalVisitor.java index b23284ec477ce..43cee9d88e723 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DefaultTraversalVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DefaultTraversalVisitor.java @@ -19,15 +19,75 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; -public abstract class DefaultTraversalVisitor extends AstVisitor { - @Override - protected Void visitExtract(Extract node, C context) { +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AliasedRelation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AllColumns; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExcludedPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExistsPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Fill; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupingElement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupingSets; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinOn; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Limit; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Offset; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternAlternation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternConcatenation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternPermutation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternVariable; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuerySpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Relation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Select; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SelectItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SetOperation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleGroupBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SingleColumn; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableSubquery; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Trim; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Values; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.With; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WithQuery; + +public abstract class DefaultTraversalVisitor implements AstVisitor { + @Override + public Void visitExtract(Extract node, C context) { process(node.getExpression(), context); return null; } @Override - protected Void visitArithmeticBinary(ArithmeticBinaryExpression node, C context) { + public Void visitArithmeticBinary(ArithmeticBinaryExpression node, C context) { process(node.getLeft(), context); process(node.getRight(), context); @@ -35,7 +95,7 @@ protected Void visitArithmeticBinary(ArithmeticBinaryExpression node, C context) } @Override - protected Void visitBetweenPredicate(BetweenPredicate node, C context) { + public Void visitBetweenPredicate(BetweenPredicate node, C context) { process(node.getValue(), context); process(node.getMin(), context); process(node.getMax(), context); @@ -44,7 +104,7 @@ protected Void visitBetweenPredicate(BetweenPredicate node, C context) { } @Override - protected Void visitCoalesceExpression(CoalesceExpression node, C context) { + public Void visitCoalesceExpression(CoalesceExpression node, C context) { for (Expression operand : node.getOperands()) { process(operand, context); } @@ -53,7 +113,7 @@ protected Void visitCoalesceExpression(CoalesceExpression node, C context) { } @Override - protected Void visitComparisonExpression(ComparisonExpression node, C context) { + public Void visitComparisonExpression(ComparisonExpression node, C context) { process(node.getLeft(), context); process(node.getRight(), context); @@ -61,7 +121,7 @@ protected Void visitComparisonExpression(ComparisonExpression node, C context) { } @Override - protected Void visitQuery(Query node, C context) { + public Void visitQuery(Query node, C context) { if (node.getWith().isPresent()) { process(node.getWith().get(), context); } @@ -80,26 +140,26 @@ protected Void visitQuery(Query node, C context) { } @Override - protected Void visitExplain(Explain node, C context) { + public Void visitExplain(Explain node, C context) { process(node.getStatement(), context); return null; } @Override - protected Void visitCopyTo(CopyTo node, C context) { + public Void visitCopyTo(CopyTo node, C context) { process(node.getQueryStatement(), context); return null; } @Override - protected Void visitExplainAnalyze(ExplainAnalyze node, C context) { + public Void visitExplainAnalyze(ExplainAnalyze node, C context) { process(node.getStatement(), context); return null; } @Override - protected Void visitWith(With node, C context) { + public Void visitWith(With node, C context) { for (WithQuery query : node.getQueries()) { process(query, context); } @@ -108,13 +168,13 @@ protected Void visitWith(With node, C context) { } @Override - protected Void visitWithQuery(WithQuery node, C context) { + public Void visitWithQuery(WithQuery node, C context) { process(node.getQuery(), context); return null; } @Override - protected Void visitSelect(Select node, C context) { + public Void visitSelect(Select node, C context) { for (SelectItem item : node.getSelectItems()) { process(item, context); } @@ -123,13 +183,13 @@ protected Void visitSelect(Select node, C context) { } @Override - protected Void visitFill(Fill node, C context) { + public Void visitFill(Fill node, C context) { node.getFillValue().ifPresent(this::process); return null; } @Override - protected Void visitOrderBy(OrderBy node, C context) { + public Void visitOrderBy(OrderBy node, C context) { for (SortItem sortItem : node.getSortItems()) { process(sortItem, context); } @@ -137,21 +197,21 @@ protected Void visitOrderBy(OrderBy node, C context) { } @Override - protected Void visitOffset(Offset node, C context) { + public Void visitOffset(Offset node, C context) { process(node.getRowCount()); return null; } @Override - protected Void visitLimit(Limit node, C context) { + public Void visitLimit(Limit node, C context) { process(node.getRowCount()); return null; } @Override - protected Void visitQuerySpecification(QuerySpecification node, C context) { + public Void visitQuerySpecification(QuerySpecification node, C context) { process(node.getSelect(), context); if (node.getFrom().isPresent()) { process(node.getFrom().get(), context); @@ -178,7 +238,7 @@ protected Void visitQuerySpecification(QuerySpecification node, C context) { } @Override - protected Void visitSetOperation(SetOperation node, C context) { + public Void visitSetOperation(SetOperation node, C context) { for (Relation relation : node.getRelations()) { process(relation, context); } @@ -186,7 +246,7 @@ protected Void visitSetOperation(SetOperation node, C context) { } @Override - protected Void visitWhenClause(WhenClause node, C context) { + public Void visitWhenClause(WhenClause node, C context) { process(node.getOperand(), context); process(node.getResult(), context); @@ -194,7 +254,7 @@ protected Void visitWhenClause(WhenClause node, C context) { } @Override - protected Void visitInPredicate(InPredicate node, C context) { + public Void visitInPredicate(InPredicate node, C context) { process(node.getValue(), context); process(node.getValueList(), context); @@ -202,7 +262,7 @@ protected Void visitInPredicate(InPredicate node, C context) { } @Override - protected Void visitFunctionCall(FunctionCall node, C context) { + public Void visitFunctionCall(FunctionCall node, C context) { for (Expression argument : node.getArguments()) { process(argument, context); } @@ -211,7 +271,7 @@ protected Void visitFunctionCall(FunctionCall node, C context) { } @Override - protected Void visitSimpleCaseExpression(SimpleCaseExpression node, C context) { + public Void visitSimpleCaseExpression(SimpleCaseExpression node, C context) { process(node.getOperand(), context); for (WhenClause clause : node.getWhenClauses()) { process(clause, context); @@ -223,7 +283,7 @@ protected Void visitSimpleCaseExpression(SimpleCaseExpression node, C context) { } @Override - protected Void visitSearchedCaseExpression(SearchedCaseExpression node, C context) { + public Void visitSearchedCaseExpression(SearchedCaseExpression node, C context) { for (WhenClause clause : node.getWhenClauses()) { process(clause, context); } @@ -233,7 +293,7 @@ protected Void visitSearchedCaseExpression(SearchedCaseExpression node, C contex } @Override - protected Void visitInListExpression(InListExpression node, C context) { + public Void visitInListExpression(InListExpression node, C context) { for (Expression value : node.getValues()) { process(value, context); } @@ -242,13 +302,13 @@ protected Void visitInListExpression(InListExpression node, C context) { } @Override - protected Void visitDereferenceExpression(DereferenceExpression node, C context) { + public Void visitDereferenceExpression(DereferenceExpression node, C context) { process(node.getBase(), context); return null; } @Override - protected Void visitTrim(Trim node, C context) { + public Void visitTrim(Trim node, C context) { process(node.getTrimSource(), context); node.getTrimCharacter().ifPresent(trimChar -> process(trimChar, context)); @@ -256,7 +316,7 @@ protected Void visitTrim(Trim node, C context) { } @Override - protected Void visitIfExpression(IfExpression node, C context) { + public Void visitIfExpression(IfExpression node, C context) { process(node.getCondition(), context); process(node.getTrueValue(), context); if (node.getFalseValue().isPresent()) { @@ -267,7 +327,7 @@ protected Void visitIfExpression(IfExpression node, C context) { } @Override - protected Void visitNullIfExpression(NullIfExpression node, C context) { + public Void visitNullIfExpression(NullIfExpression node, C context) { process(node.getFirst(), context); process(node.getSecond(), context); @@ -275,33 +335,33 @@ protected Void visitNullIfExpression(NullIfExpression node, C context) { } @Override - protected Void visitArithmeticUnary(ArithmeticUnaryExpression node, C context) { + public Void visitArithmeticUnary(ArithmeticUnaryExpression node, C context) { process(node.getValue(), context); return null; } @Override - protected Void visitNotExpression(NotExpression node, C context) { + public Void visitNotExpression(NotExpression node, C context) { process(node.getValue(), context); return null; } @Override - protected Void visitSingleColumn(SingleColumn node, C context) { + public Void visitSingleColumn(SingleColumn node, C context) { process(node.getExpression(), context); return null; } @Override - protected Void visitAllColumns(AllColumns node, C context) { + public Void visitAllColumns(AllColumns node, C context) { node.getTarget().ifPresent(value -> process(value, context)); return null; } @Override - protected Void visitLikePredicate(LikePredicate node, C context) { + public Void visitLikePredicate(LikePredicate node, C context) { process(node.getValue(), context); process(node.getPattern(), context); node.getEscape().ifPresent(value -> process(value, context)); @@ -310,19 +370,19 @@ protected Void visitLikePredicate(LikePredicate node, C context) { } @Override - protected Void visitIsNotNullPredicate(IsNotNullPredicate node, C context) { + public Void visitIsNotNullPredicate(IsNotNullPredicate node, C context) { process(node.getValue(), context); return null; } @Override - protected Void visitIsNullPredicate(IsNullPredicate node, C context) { + public Void visitIsNullPredicate(IsNullPredicate node, C context) { process(node.getValue(), context); return null; } @Override - protected Void visitLogicalExpression(LogicalExpression node, C context) { + public Void visitLogicalExpression(LogicalExpression node, C context) { for (Node child : node.getTerms()) { process(child, context); } @@ -331,19 +391,19 @@ protected Void visitLogicalExpression(LogicalExpression node, C context) { } @Override - protected Void visitSubqueryExpression(SubqueryExpression node, C context) { + public Void visitSubqueryExpression(SubqueryExpression node, C context) { process(node.getQuery(), context); return null; } @Override - protected Void visitSortItem(SortItem node, C context) { + public Void visitSortItem(SortItem node, C context) { process(node.getSortKey(), context); return null; } @Override - protected Void visitValues(Values node, C context) { + public Void visitValues(Values node, C context) { for (Expression row : node.getRows()) { process(row, context); } @@ -351,7 +411,7 @@ protected Void visitValues(Values node, C context) { } @Override - protected Void visitRow(Row node, C context) { + public Void visitRow(Row node, C context) { for (Expression expression : node.getItems()) { process(expression, context); } @@ -359,19 +419,19 @@ protected Void visitRow(Row node, C context) { } @Override - protected Void visitTableSubquery(TableSubquery node, C context) { + public Void visitTableSubquery(TableSubquery node, C context) { process(node.getQuery(), context); return null; } @Override - protected Void visitAliasedRelation(AliasedRelation node, C context) { + public Void visitAliasedRelation(AliasedRelation node, C context) { process(node.getRelation(), context); return null; } @Override - protected Void visitJoin(Join node, C context) { + public Void visitJoin(Join node, C context) { process(node.getLeft(), context); process(node.getRight(), context); @@ -389,20 +449,20 @@ protected Void visitJoin(Join node, C context) { } @Override - protected Void visitExists(ExistsPredicate node, C context) { + public Void visitExists(ExistsPredicate node, C context) { process(node.getSubquery(), context); return null; } @Override - protected Void visitCast(Cast node, C context) { + public Void visitCast(Cast node, C context) { process(node.getExpression(), context); return null; } @Override - protected Void visitCreateDB(CreateDB node, C context) { + public Void visitCreateDB(CreateDB node, C context) { for (Property property : node.getProperties()) { process(property, context); } @@ -411,7 +471,7 @@ protected Void visitCreateDB(CreateDB node, C context) { } @Override - protected Void visitAlterDB(AlterDB node, C context) { + public Void visitAlterDB(AlterDB node, C context) { for (Property property : node.getProperties()) { process(property, context); } @@ -420,7 +480,7 @@ protected Void visitAlterDB(AlterDB node, C context) { } @Override - protected Void visitCreateTable(final CreateTable node, final C context) { + public Void visitCreateTable(final CreateTable node, final C context) { for (final Property property : node.getProperties()) { process(property, context); } @@ -429,7 +489,7 @@ protected Void visitCreateTable(final CreateTable node, final C context) { } @Override - protected Void visitCreateView(final CreateView node, final C context) { + public Void visitCreateView(final CreateView node, final C context) { for (final Property property : node.getProperties()) { process(property, context); } @@ -438,7 +498,7 @@ protected Void visitCreateView(final CreateView node, final C context) { } @Override - protected Void visitProperty(Property node, C context) { + public Void visitProperty(Property node, C context) { process(node.getName(), context); if (!node.isSetToDefault()) { process(node.getNonDefaultValue(), context); @@ -447,7 +507,7 @@ protected Void visitProperty(Property node, C context) { } @Override - protected Void visitSetProperties(final SetProperties node, final C context) { + public Void visitSetProperties(final SetProperties node, final C context) { for (final Property property : node.getProperties()) { process(property, context); } @@ -456,21 +516,21 @@ protected Void visitSetProperties(final SetProperties node, final C context) { } @Override - protected Void visitAddColumn(final AddColumn node, final C context) { + public Void visitAddColumn(final AddColumn node, final C context) { process(node.getColumn(), context); return null; } @Override - protected Void visitInsert(Insert node, C context) { + public Void visitInsert(Insert node, C context) { process(node.getQuery(), context); return null; } @Override - protected Void visitDelete(Delete node, C context) { + public Void visitDelete(Delete node, C context) { process(node.getTable(), context); node.getWhere().ifPresent(where -> process(where, context)); @@ -478,7 +538,7 @@ protected Void visitDelete(Delete node, C context) { } @Override - protected Void visitUpdate(Update node, C context) { + public Void visitUpdate(Update node, C context) { process(node.getTable(), context); node.getAssignments().forEach(value -> process(value, context)); node.getWhere().ifPresent(where -> process(where, context)); @@ -487,14 +547,14 @@ protected Void visitUpdate(Update node, C context) { } @Override - protected Void visitUpdateAssignment(UpdateAssignment node, C context) { + public Void visitUpdateAssignment(UpdateAssignment node, C context) { process(node.getName(), context); process(node.getValue(), context); return null; } @Override - protected Void visitGroupBy(GroupBy node, C context) { + public Void visitGroupBy(GroupBy node, C context) { for (GroupingElement groupingElement : node.getGroupingElements()) { process(groupingElement, context); } @@ -503,7 +563,7 @@ protected Void visitGroupBy(GroupBy node, C context) { } @Override - protected Void visitGroupingSets(GroupingSets node, C context) { + public Void visitGroupingSets(GroupingSets node, C context) { for (Expression expression : node.getExpressions()) { process(expression, context); } @@ -512,7 +572,7 @@ protected Void visitGroupingSets(GroupingSets node, C context) { } @Override - protected Void visitSimpleGroupBy(SimpleGroupBy node, C context) { + public Void visitSimpleGroupBy(SimpleGroupBy node, C context) { for (Expression expression : node.getExpressions()) { process(expression, context); } @@ -521,8 +581,7 @@ protected Void visitSimpleGroupBy(SimpleGroupBy node, C context) { } @Override - protected Void visitQuantifiedComparisonExpression( - QuantifiedComparisonExpression node, C context) { + public Void visitQuantifiedComparisonExpression(QuantifiedComparisonExpression node, C context) { process(node.getValue(), context); process(node.getSubquery(), context); @@ -530,14 +589,14 @@ protected Void visitQuantifiedComparisonExpression( } @Override - protected Void visitExcludedPattern(ExcludedPattern node, C context) { + public Void visitExcludedPattern(ExcludedPattern node, C context) { process(node.getPattern(), context); return null; } @Override - protected Void visitPatternAlternation(PatternAlternation node, C context) { + public Void visitPatternAlternation(PatternAlternation node, C context) { for (RowPattern rowPattern : node.getPatterns()) { process(rowPattern, context); } @@ -546,7 +605,7 @@ protected Void visitPatternAlternation(PatternAlternation node, C context) { } @Override - protected Void visitPatternConcatenation(PatternConcatenation node, C context) { + public Void visitPatternConcatenation(PatternConcatenation node, C context) { for (RowPattern rowPattern : node.getPatterns()) { process(rowPattern, context); } @@ -555,7 +614,7 @@ protected Void visitPatternConcatenation(PatternConcatenation node, C context) { } @Override - protected Void visitPatternPermutation(PatternPermutation node, C context) { + public Void visitPatternPermutation(PatternPermutation node, C context) { for (RowPattern rowPattern : node.getPatterns()) { process(rowPattern, context); } @@ -564,14 +623,14 @@ protected Void visitPatternPermutation(PatternPermutation node, C context) { } @Override - protected Void visitPatternVariable(PatternVariable node, C context) { + public Void visitPatternVariable(PatternVariable node, C context) { process(node.getName(), context); return null; } @Override - protected Void visitQuantifiedPattern(QuantifiedPattern node, C context) { + public Void visitQuantifiedPattern(QuantifiedPattern node, C context) { process(node.getPattern(), context); return null; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Delete.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Delete.java index 33cecba112215..8ad2045fab0a6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Delete.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Delete.java @@ -20,6 +20,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.db.storageengine.dataregion.modification.TableDeletionEntry; import com.google.common.collect.ImmutableList; @@ -73,8 +80,8 @@ public Optional getWhere() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitDelete(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitDelete(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DeleteDevice.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DeleteDevice.java index b5c319ebb2a44..5ec7102c51501 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DeleteDevice.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DeleteDevice.java @@ -19,25 +19,29 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.calc.execution.relational.ColumnTransformerBuilder; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.filter.SchemaFilter; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.operator.schema.source.DeviceBlackListConstructor; import org.apache.iotdb.db.queryengine.execution.operator.schema.source.TableDeviceQuerySource; -import org.apache.iotdb.db.queryengine.execution.relational.ColumnTransformerBuilder; import org.apache.iotdb.db.queryengine.plan.analyze.AnalyzeUtils; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanner; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.db.schemaengine.rescon.MemSchemaRegionStatistics; import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; import org.apache.iotdb.db.storageengine.dataregion.modification.ModEntry; @@ -229,8 +233,7 @@ public static DeviceBlackListConstructor constructDevicePredicateUpdater( ImmutableList.of(), 0, mockTypeProvider, - metadata, - null)) + metadata)) : null; return new DeviceBlackListConstructor( @@ -245,8 +248,8 @@ public static DeviceBlackListConstructor constructDevicePredicateUpdater( } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitDeleteDevice(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitDeleteDevice(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DescribeTable.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DescribeTable.java index bdb01fb9ff75f..07276e0615759 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DescribeTable.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DescribeTable.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -65,8 +72,8 @@ public Boolean getShowCreateView() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitDescribeTable(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitDescribeTable(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropColumn.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropColumn.java index cc95814ee0e30..4bd8c3aa7b544 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropColumn.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropColumn.java @@ -19,6 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -75,8 +83,8 @@ public boolean isView() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitDropColumn(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitDropColumn(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropDB.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropDB.java index 8f1ea9b191654..f7d45ae3123c9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropDB.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropDB.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -50,8 +57,8 @@ public boolean isExists() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitDropDB(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitDropDB(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropExternalService.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropExternalService.java index 602554fa16bd9..e4906c60a1521 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropExternalService.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropExternalService.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -50,8 +56,8 @@ public boolean isForcedly() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitDropExternalService(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitDropExternalService(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropFunction.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropFunction.java index 58c37c8db2a6c..09b198cfd7663 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropFunction.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropFunction.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -44,8 +50,8 @@ public String getUdfName() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitDropFunction(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitDropFunction(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropIndex.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropIndex.java index e19308d4259e7..7b3772d80247a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropIndex.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropIndex.java @@ -19,6 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -57,8 +65,8 @@ public Identifier getIndexName() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitDropIndex(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitDropIndex(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropModel.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropModel.java index cea9eee32820c..e716bb745b5cc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropModel.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropModel.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.List; @@ -40,8 +45,8 @@ public String getModelId() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitDropModel(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitDropModel(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropPipe.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropPipe.java index f2ce39bc0fbe4..030465ccdc0a4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropPipe.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropPipe.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Objects; @@ -46,8 +49,8 @@ public boolean hasIfExistsCondition() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitDropPipe(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitDropPipe(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropPipePlugin.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropPipePlugin.java index 368fb9b63c623..b2d61dde6f75d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropPipePlugin.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropPipePlugin.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Objects; @@ -47,8 +50,8 @@ public boolean hasIfExistsCondition() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitDropPipePlugin(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitDropPipePlugin(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropSubscription.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropSubscription.java index 940e6cd8e600d..92f5427822bef 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropSubscription.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropSubscription.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Objects; @@ -47,8 +50,8 @@ public boolean hasIfExistsCondition() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitDropSubscription(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitDropSubscription(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropTable.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropTable.java index 4b7e8f31f7db1..8f182d3bbc68d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropTable.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropTable.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -61,8 +68,8 @@ public boolean isView() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitDropTable(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitDropTable(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropTopic.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropTopic.java index 28b21ecf55837..f4b9f954a7c5e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropTopic.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DropTopic.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Objects; @@ -47,8 +50,8 @@ public boolean hasIfExistsCondition() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitDropTopic(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitDropTopic(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Execute.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Execute.java index 7ae15183dab95..87cc96ac4fdd6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Execute.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Execute.java @@ -19,6 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -59,8 +67,8 @@ public List getParameters() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitExecute(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitExecute(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExecuteImmediate.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExecuteImmediate.java index 342d018f63144..5b6494407200e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExecuteImmediate.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExecuteImmediate.java @@ -19,6 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -67,8 +75,8 @@ public List getParameters() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitExecuteImmediate(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitExecuteImmediate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Explain.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Explain.java index f3a50175269e8..0e98aabfd1273 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Explain.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Explain.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -49,8 +55,8 @@ public Statement getStatement() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitExplain(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitExplain(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExplainAnalyze.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExplainAnalyze.java index cd3df879fc55e..1c158a1b279bf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExplainAnalyze.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExplainAnalyze.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -57,8 +63,8 @@ public boolean isVerbose() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitExplainAnalyze(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitExplainAnalyze(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExtendRegion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExtendRegion.java index 21bc09daf3dba..e43c4bee39cc1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExtendRegion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExtendRegion.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -66,8 +71,8 @@ public String toString() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitExtendRegion(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitExtendRegion(this, context); } public List getRegionIds() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FetchDevice.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FetchDevice.java index 12d5d43ec3c26..66c84f5a297b2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FetchDevice.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FetchDevice.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import org.apache.tsfile.file.metadata.IDeviceID; import org.apache.tsfile.utils.RamUsageEstimator; @@ -69,8 +74,8 @@ public List getPartitionKeyList() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitFetchDevice(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitFetchDevice(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Flush.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Flush.java index a005a121c6a70..9438700a46d0b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Flush.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Flush.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.statement.Statement; @@ -29,7 +30,7 @@ public Flush(final Statement innerTreeStatement, final MPPQueryContext context) } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitFlush(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitFlush(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Insert.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Insert.java index 6a499e958129c..fb42445e6d8a5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Insert.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Insert.java @@ -19,6 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import com.google.common.collect.ImmutableList; @@ -78,8 +86,8 @@ public Query getQuery() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitInsert(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitInsert(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InsertRow.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InsertRow.java index 70b2e06236506..b5440ba1d8c4c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InsertRow.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InsertRow.java @@ -19,7 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableDeviceSchemaValidator; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement; @@ -38,8 +39,8 @@ public InsertRow(InsertRowStatement insertRowStatement, MPPQueryContext context) } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitInsertRow(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitInsertRow(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InsertRows.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InsertRows.java index d35e68efcf52c..0e53064e95282 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InsertRows.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InsertRows.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.AnalyzeUtils; import org.apache.iotdb.db.queryengine.plan.relational.metadata.ITableDeviceSchemaValidation; @@ -47,8 +48,8 @@ public InsertRows(InsertRowsStatement insertRowsStatement, MPPQueryContext conte } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitInsertRows(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitInsertRows(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InsertTablet.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InsertTablet.java index 8c1bccf28aba9..f77bd3aa143d7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InsertTablet.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InsertTablet.java @@ -19,7 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableDeviceSchemaValidator; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; @@ -43,8 +44,8 @@ public InsertTablet(InsertTabletStatement insertTabletStatement, MPPQueryContext } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitInsertTablet(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitInsertTablet(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/KillQuery.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/KillQuery.java index 144fe957b867c..653a41a72360e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/KillQuery.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/KillQuery.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -52,8 +58,8 @@ public List getChildren() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitKillQuery(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitKillQuery(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LoadConfiguration.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LoadConfiguration.java index b67ed2b3acf98..298adfb570b47 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LoadConfiguration.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LoadConfiguration.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.statement.Statement; @@ -28,7 +29,7 @@ public LoadConfiguration(Statement innerTreeStatement, MPPQueryContext context) } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitLoadConfiguration(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitLoadConfiguration(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LoadModel.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LoadModel.java index 0fe11ebeeec7c..d6f8b1f0f2e39 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LoadModel.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LoadModel.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.List; @@ -47,8 +52,8 @@ public List getDeviceIdList() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitLoadModel(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitLoadModel(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LoadTsFile.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LoadTsFile.java index 8deb97c2e5af6..03de9a9ccb10d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LoadTsFile.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LoadTsFile.java @@ -19,8 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; import org.apache.iotdb.db.storageengine.load.config.LoadTsFileConfigurator; @@ -307,8 +312,8 @@ public List getSubStatements() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitLoadTsFile(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitLoadTsFile(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/MigrateRegion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/MigrateRegion.java index e1cb03de65452..3a305c961360d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/MigrateRegion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/MigrateRegion.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -75,8 +81,8 @@ public String toString() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitMigrateRegion(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitMigrateRegion(this, context); } public int getRegionId() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PipeEnriched.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PipeEnriched.java index 2d88c41e3fe34..ba4dcbd6aaeae 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PipeEnriched.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PipeEnriched.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import org.apache.tsfile.utils.RamUsageEstimator; import javax.validation.constraints.NotNull; @@ -39,8 +44,8 @@ public PipeEnriched(final @NotNull Statement innerstatement) { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitPipeEnriched(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitPipeEnriched(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PipeStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PipeStatement.java index 2a7c9279f7e4b..74737f28ece35 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PipeStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PipeStatement.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Prepare.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Prepare.java index 5b6cdbc431358..0a40033aa8663 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Prepare.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Prepare.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -57,8 +64,8 @@ public Statement getSql() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitPrepare(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitPrepare(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Property.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Property.java index 87557737477ef..bb4f4ae7a202c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Property.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Property.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -87,8 +94,8 @@ public Expression getNonDefaultValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitProperty(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitProperty(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ReconstructRegion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ReconstructRegion.java index 991f78f4bca3f..3ac17c5f15c35 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ReconstructRegion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ReconstructRegion.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -65,8 +70,8 @@ public String toString() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitReconstructRegion(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitReconstructRegion(this, context); } public int getDataNodeId() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RelationalAuthorStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RelationalAuthorStatement.java index f77910254925e..171f9916052da 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RelationalAuthorStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RelationalAuthorStatement.java @@ -20,6 +20,10 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.auth.entity.PrivilegeType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.commons.schema.table.Audit; import org.apache.iotdb.commons.schema.table.InformationSchema; import org.apache.iotdb.db.auth.AuthorityChecker; @@ -215,8 +219,8 @@ public boolean equals(Object o) { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitRelationalAuthorPlan(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitRelationalAuthorPlan(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveAINode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveAINode.java index ad1cff33b440b..1d9213b47019f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveAINode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveAINode.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -37,8 +42,8 @@ public RemoveAINode() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitRemoveAINode(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitRemoveAINode(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveConfigNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveConfigNode.java index d1f31ef53f4cd..7113ce52540d1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveConfigNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveConfigNode.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -42,8 +47,8 @@ public Integer getNodeId() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitRemoveConfigNode(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitRemoveConfigNode(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveDataNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveDataNode.java index c231541d554ff..906dd4d4227b5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveDataNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveDataNode.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -42,8 +47,8 @@ public List getNodeIds() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitRemoveDataNode(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitRemoveDataNode(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveRegion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveRegion.java index 75e52918b74d9..703c3174eb5a9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveRegion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RemoveRegion.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -66,8 +71,8 @@ public String toString() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitRemoveRegion(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitRemoveRegion(this, context); } public List getRegionIds() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RenameColumn.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RenameColumn.java index 5e1277316a439..8f7d3f7ca76e6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RenameColumn.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RenameColumn.java @@ -19,7 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -87,8 +94,8 @@ public boolean isView() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitRenameColumn(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitRenameColumn(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RenameTable.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RenameTable.java index 77c3296fee00b..5ee6cad4ab381 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RenameTable.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RenameTable.java @@ -19,7 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -73,8 +80,8 @@ public boolean isView() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitRenameTable(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitRenameTable(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetColumnComment.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetColumnComment.java index 8feefe9b637f6..90c82f0a541d0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetColumnComment.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetColumnComment.java @@ -19,6 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -76,8 +84,8 @@ public String getComment() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitSetColumnComment(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitSetColumnComment(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetConfiguration.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetConfiguration.java index 040452a511571..2ff07a3b6bb12 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetConfiguration.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetConfiguration.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.statement.Statement; @@ -28,7 +29,7 @@ public SetConfiguration(Statement innerTreeStatement, MPPQueryContext context) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSetConfiguration(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitSetConfiguration(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetProperties.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetProperties.java index 08289e31eaf53..d8f7e83ad37f4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetProperties.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetProperties.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -75,8 +82,8 @@ public boolean ifExists() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitSetProperties(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitSetProperties(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetSqlDialect.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetSqlDialect.java index fb0d7b763e323..95475c2c2b2dd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetSqlDialect.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetSqlDialect.java @@ -19,7 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.protocol.session.IClientSession; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -32,14 +37,14 @@ public class SetSqlDialect extends Statement { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(SetSqlDialect.class); - private final IClientSession.SqlDialect sqlDialect; + private final SqlDialect sqlDialect; - public SetSqlDialect(IClientSession.SqlDialect sqlDialect, @Nullable NodeLocation location) { + public SetSqlDialect(SqlDialect sqlDialect, @Nullable NodeLocation location) { super(location); this.sqlDialect = sqlDialect; } - public IClientSession.SqlDialect getSqlDialect() { + public SqlDialect getSqlDialect() { return sqlDialect; } @@ -49,8 +54,8 @@ public List getChildren() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSetSqlDialect(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitSetSqlDialect(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetSystemStatus.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetSystemStatus.java index c767b67c96f95..0a74765c275b8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetSystemStatus.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetSystemStatus.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.statement.Statement; @@ -28,7 +29,7 @@ public SetSystemStatus(Statement innerTreeStatement, MPPQueryContext context) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSetSystemStatus(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitSetSystemStatus(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetTableComment.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetTableComment.java index ffc5491502790..b1dd078f708f5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetTableComment.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetTableComment.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -69,8 +76,8 @@ public boolean isView() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitSetTableComment(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitSetTableComment(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowAIDevices.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowAIDevices.java index b65d716459f4b..58e6847e29332 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowAIDevices.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowAIDevices.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.List; @@ -35,8 +40,8 @@ public ShowAIDevices() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowAIDevices(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowAIDevices(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowAINodes.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowAINodes.java index 04fa5089ee653..c681dbdc2b8ee 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowAINodes.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowAINodes.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -41,8 +47,8 @@ public ShowAINodes(NodeLocation location) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowAINodes(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowAINodes(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowAvailableUrls.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowAvailableUrls.java index e33e0bf8df23b..f41e2982e8a54 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowAvailableUrls.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowAvailableUrls.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -36,8 +41,8 @@ public ShowAvailableUrls() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowAvailableUrls(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowAvailableUrls(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCluster.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCluster.java index a12a9eef06aca..8b6628bb614b5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCluster.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCluster.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -61,8 +67,8 @@ public Optional getDetails() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowCluster(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowCluster(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowClusterId.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowClusterId.java index a754a0542eab4..ef744b5c0987a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowClusterId.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowClusterId.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -41,8 +47,8 @@ public List getChildren() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowClusterId(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowClusterId(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowConfigNodes.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowConfigNodes.java index 7c5bfb12829b4..8985a998d81f5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowConfigNodes.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowConfigNodes.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -41,8 +47,8 @@ public ShowConfigNodes(NodeLocation location) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowConfigNodes(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowConfigNodes(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowConfiguration.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowConfiguration.java index 2b9a3d7796a49..f4c00e2065418 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowConfiguration.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowConfiguration.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.statement.Statement; @@ -28,7 +29,7 @@ public ShowConfiguration(Statement innerTreeStatement, MPPQueryContext context) } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowConfiguration(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowConfiguration(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentDatabase.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentDatabase.java index 26c09f32c8fee..462ed02b34aff 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentDatabase.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentDatabase.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -41,8 +47,8 @@ public List getChildren() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowCurrentDatabase(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowCurrentDatabase(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentSqlDialect.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentSqlDialect.java index a9d6af80c4ae9..6e6653478b129 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentSqlDialect.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentSqlDialect.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -41,8 +47,8 @@ public List getChildren() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowCurrentSqlDialect(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowCurrentSqlDialect(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentTimestamp.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentTimestamp.java index 18a7f48dd2735..b57b90b41b926 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentTimestamp.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentTimestamp.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -41,8 +47,8 @@ public List getChildren() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowCurrentTimestamp(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowCurrentTimestamp(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentUser.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentUser.java index ede46f87a3fd7..028d9a541bb09 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentUser.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowCurrentUser.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -41,8 +47,8 @@ public List getChildren() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowCurrentUser(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowCurrentUser(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowDB.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowDB.java index a19c3b9eca025..5a141658ce22e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowDB.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowDB.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -42,8 +48,8 @@ public boolean isDetails() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitShowDB(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitShowDB(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowDataNodes.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowDataNodes.java index b06e326fb9294..26d791718d064 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowDataNodes.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowDataNodes.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -41,8 +47,8 @@ public ShowDataNodes(NodeLocation location) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowDataNodes(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowDataNodes(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowDevice.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowDevice.java index f83b7df9837c8..2a929cec5410b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowDevice.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowDevice.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Offset; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.table.TreeViewSchema; import org.apache.iotdb.commons.schema.table.TsTable; @@ -135,8 +142,8 @@ public TsBlock getTsBlock(final Analysis analysis) { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitShowDevice(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitShowDevice(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowExternalService.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowExternalService.java index ca713507e13b0..4fb8700e22f67 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowExternalService.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowExternalService.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Offset; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; + import java.util.Optional; public class ShowExternalService extends ShowStatement { @@ -34,7 +41,7 @@ public ShowExternalService( } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowExternalService(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowExternalService(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowFunctions.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowFunctions.java index 8dc8311e22d1d..dd8d6510cff3a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowFunctions.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowFunctions.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -40,8 +46,8 @@ public ShowFunctions(NodeLocation location) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowFunctions(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowFunctions(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowIndex.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowIndex.java index ea2733ce58359..0b013d4b38fdf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowIndex.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowIndex.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -49,8 +56,8 @@ public QualifiedName getTableName() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowIndex(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowIndex(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowLoadedModels.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowLoadedModels.java index 5b37071ebed40..b6185debfad70 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowLoadedModels.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowLoadedModels.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.List; @@ -41,8 +46,8 @@ public List getDeviceIdList() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowLoadedModels(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowLoadedModels(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowModels.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowModels.java index 9b5a47fb5fcdd..0e757ac711591 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowModels.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowModels.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -51,8 +56,8 @@ public String getModelId() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowModels(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowModels(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowPipePlugins.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowPipePlugins.java index 009b89d97dcfe..0745175206f00 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowPipePlugins.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowPipePlugins.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import static com.google.common.base.MoreObjects.toStringHelper; @@ -29,8 +32,8 @@ public class ShowPipePlugins extends PipeStatement { RamUsageEstimator.shallowSizeOfInstance(ShowPipePlugins.class); @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowPipePlugins(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowPipePlugins(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowPipes.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowPipes.java index 3dd581034e720..aef298b2b73cb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowPipes.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowPipes.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import javax.annotation.Nullable; @@ -49,8 +52,8 @@ public boolean hasWhereClause() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitShowPipes(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitShowPipes(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowQueriesStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowQueriesStatement.java index 32a07e58fed9d..aa34f2d85245d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowQueriesStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowQueriesStatement.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Offset; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; + import java.util.Optional; public class ShowQueriesStatement extends ShowStatement { @@ -34,7 +41,7 @@ public ShowQueriesStatement( } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowQueriesStatement(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowQueriesStatement(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowRegions.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowRegions.java index daca5026f5b71..cfdc1587ebed9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowRegions.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowRegions.java @@ -20,6 +20,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -59,8 +63,8 @@ public List getNodeIds() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitShowRegions(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitShowRegions(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowStatement.java index 670e84c8b1d2d..ea2870c094c41 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowStatement.java @@ -19,6 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Offset; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -76,8 +85,8 @@ public Optional getLimit() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowStatement(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowStatement(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowSubscriptions.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowSubscriptions.java index cb9456d362922..81af08652d984 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowSubscriptions.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowSubscriptions.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Objects; @@ -41,8 +44,8 @@ public String getTopicName() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitShowSubscriptions(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitShowSubscriptions(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowTables.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowTables.java index 47d94b7c0d88a..1c9032d5b8300 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowTables.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowTables.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -61,8 +68,8 @@ public boolean isDetails() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitShowTables(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitShowTables(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowTopics.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowTopics.java index c630c1c51bf21..8dd224f3fe396 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowTopics.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowTopics.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Objects; @@ -41,8 +44,8 @@ public String getTopicName() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitShowTopics(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitShowTopics(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowVariables.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowVariables.java index dc0b0e8869e78..ab0f4f6da5853 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowVariables.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowVariables.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -41,8 +47,8 @@ public List getChildren() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowVariables(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowVariables(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowVersion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowVersion.java index 75ecf86e449a8..accc7ed0f8235 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowVersion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ShowVersion.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -41,8 +47,8 @@ public List getChildren() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitShowVersion(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitShowVersion(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StackableAstVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StackableAstVisitor.java index 92579dfc51633..e1a7d2bca6161 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StackableAstVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StackableAstVisitor.java @@ -19,17 +19,19 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; + import java.util.LinkedList; import java.util.Optional; public class StackableAstVisitor - extends AstVisitor> { + implements AstVisitor> { @Override public R process(Node node, StackableAstVisitorContext context) { context.push(node); try { - return node.accept(this, context); + return AstVisitor.super.process(node, context); } finally { context.pop(); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StartExternalService.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StartExternalService.java index 3c72ecce395e3..1b1c484b0aade 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StartExternalService.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StartExternalService.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -44,8 +50,8 @@ public String getServiceName() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitStartExternalService(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitStartExternalService(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StartPipe.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StartPipe.java index 01410b7f3b1ce..4221b290a385c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StartPipe.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StartPipe.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Objects; @@ -41,8 +44,8 @@ public String getPipeName() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitStartPipe(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitStartPipe(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StartRepairData.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StartRepairData.java index 61623f8252331..f6e0cb0b3770f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StartRepairData.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StartRepairData.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.statement.Statement; @@ -28,7 +29,7 @@ public StartRepairData(Statement innerTreeStatement, MPPQueryContext context) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitStartRepairData(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitStartRepairData(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StopExternalService.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StopExternalService.java index 039c2c9b55905..85639375d492b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StopExternalService.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StopExternalService.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -44,8 +50,8 @@ public String getServiceName() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitStopExternalService(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitStopExternalService(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StopPipe.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StopPipe.java index 5c1fca6cb87da..b911abd0155dc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StopPipe.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StopPipe.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Objects; @@ -40,8 +43,8 @@ public String getPipeName() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitStopPipe(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitStopPipe(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StopRepairData.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StopRepairData.java index 92934a97e4ebb..1dff2b3a1e971 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StopRepairData.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StopRepairData.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.statement.Statement; @@ -28,7 +29,7 @@ public StopRepairData(Statement innerTreeStatement, MPPQueryContext context) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitStopRepairData(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitStopRepairData(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SubscriptionStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SubscriptionStatement.java index 077ab4be887b3..4ecd52267d753 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SubscriptionStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SubscriptionStatement.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TimeRange.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TimeRange.java index 9b756b61d048a..252cd7d0c4580 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TimeRange.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TimeRange.java @@ -19,6 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.Collections; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/UnloadModel.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/UnloadModel.java index f5bbb2d4989f5..6540e906e2b6a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/UnloadModel.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/UnloadModel.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import org.apache.tsfile.utils.RamUsageEstimator; import java.util.List; @@ -47,8 +52,8 @@ public List getDeviceIdList() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitUnloadModel(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitUnloadModel(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Update.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Update.java index 1d4b3a8742efe..1509e5cd3c981 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Update.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Update.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -63,8 +70,8 @@ public List getChildren() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitUpdate(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitUpdate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/UpdateAssignment.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/UpdateAssignment.java index a1db1cc694075..196af0df2851a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/UpdateAssignment.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/UpdateAssignment.java @@ -19,6 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -59,8 +65,8 @@ public Expression getValue() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitUpdateAssignment(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((AstVisitor) visitor).visitUpdateAssignment(this, context); } public void serialize(final ByteBuffer byteBuffer) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Use.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Use.java index 1ada10d2aef93..10e375f84ed8b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Use.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Use.java @@ -19,6 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AstMemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; + import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -51,8 +58,8 @@ public Identifier getDatabaseId() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitUse(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitUse(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ViewFieldDefinition.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ViewFieldDefinition.java index 376a8634f8bf7..eecca1cd177ed 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ViewFieldDefinition.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ViewFieldDefinition.java @@ -19,6 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericDataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import javax.annotation.Nullable; @@ -52,8 +57,8 @@ public Identifier getFrom() { return from; } - public R accept(final AstVisitor visitor, C context) { - return visitor.visitViewFieldDefinition(this, context); + public R accept(final IAstVisitor visitor, C context) { + return ((AstVisitor) visitor).visitViewFieldDefinition(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WrappedInsertStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WrappedInsertStatement.java index c301bb9190606..f3151fbfe10fe 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WrappedInsertStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WrappedInsertStatement.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.commons.schema.table.InsertNodeMeasurementInfo; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.metadata.DataTypeMismatchException; import org.apache.iotdb.db.exception.metadata.PathNotExistException; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.AnalyzeUtils; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.ITableDeviceSchemaValidation; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertBaseStatement; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement; import org.apache.iotdb.db.utils.TypeInferenceUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WrappedStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WrappedStatement.java index 1e7a8c92baafa..2e10766926efb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WrappedStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WrappedStatement.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import java.util.Collections; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java index 9bd99771f53ba..7372323d3c57a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java @@ -19,12 +19,130 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.parser; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType; import org.apache.iotdb.commons.auth.entity.PrivilegeType; import org.apache.iotdb.commons.cluster.NodeStatus; import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AliasedRelation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AllColumns; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AllRows; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AnchorPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Columns; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentDatabase; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentTime; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentUser; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataTypeParameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.EmptyPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Except; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExcludedPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExistsPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Fill; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericDataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupingElement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupingSets; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Intersect; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinCriteria; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinOn; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinUsing; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Limit; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.MeasureDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NaturalJoin; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NumericParameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Offset; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OneOrMoreQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternAlternation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternConcatenation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternPermutation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternVariable; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ProcessingMode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QueryBody; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuerySpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RangeQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Relation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Select; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SelectItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleGroupBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SingleColumn; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubsetDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableExpressionType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableFunctionArgument; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableFunctionInvocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableFunctionTableArgument; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableSubquery; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TimeDurationLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Trim; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TypeParameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Union; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Values; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.VariableDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Window; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.With; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WithQuery; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ZeroOrMoreQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ZeroOrOneQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.ParsingException; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.commons.schema.cache.CacheClearOptions; import org.apache.iotdb.commons.schema.table.InformationSchema; import org.apache.iotdb.commons.schema.table.TsTable; @@ -33,30 +151,15 @@ import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction; import org.apache.iotdb.commons.utils.CommonDateTimeUtils; import org.apache.iotdb.commons.utils.PathUtils; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.execution.operator.process.copyto.CopyToOptions; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AddColumn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AliasedRelation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AllColumns; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AllRows; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AlterColumnDataType; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AlterDB; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AlterPipe; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AnchorPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AsofJoinOn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ClearCache; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ColumnDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Columns; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CopyTo; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CountDevice; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CountStatement; @@ -70,17 +173,10 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateTopic; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateTraining; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateView; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentDatabase; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentTime; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentUser; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataTypeParameter; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Deallocate; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Delete; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DeleteDevice; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DescribeTable; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropColumn; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropDB; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropFunction; @@ -91,79 +187,22 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropSubscription; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropTable; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropTopic; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.EmptyPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Except; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExcludedPattern; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Execute; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExecuteImmediate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExistsPredicate; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Explain; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExplainAnalyze; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExtendRegion; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Fill; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Flush; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericDataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GroupBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GroupingElement; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GroupingSets; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Insert; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRows; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Intersect; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinCriteria; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinOn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinUsing; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.KillQuery; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Limit; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadConfiguration; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadModel; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.MeasureDefinition; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.MigrateRegion; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NaturalJoin; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NodeLocation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NumericParameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Offset; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OneOrMoreQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OrderBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternAlternation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternConcatenation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternPermutation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternVariable; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Prepare; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ProcessingMode; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Property; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QueryBody; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuerySpecification; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RangeQuantifier; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ReconstructRegion; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Relation; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RelationalAuthorStatement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RemoveAINode; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RemoveConfigNode; @@ -171,11 +210,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RemoveRegion; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RenameColumn; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RenameTable; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Row; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Select; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SelectItem; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetColumnComment; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetConfiguration; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetProperties; @@ -211,46 +245,15 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowTopics; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowVariables; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowVersion; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleGroupBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SingleColumn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StartPipe; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StartRepairData; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StopPipe; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StopRepairData; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubsetDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableExpressionType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableFunctionArgument; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableFunctionInvocation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableFunctionTableArgument; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableSubquery; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TimeDurationLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Trim; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TypeParameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Union; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.UnloadModel; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Update; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.UpdateAssignment; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Use; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Values; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.VariableDefinition; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ViewFieldDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Window; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.With; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WithQuery; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ZeroOrMoreQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ZeroOrOneQuantifier; import org.apache.iotdb.db.queryengine.plan.relational.sql.util.AstUtil; import org.apache.iotdb.db.queryengine.plan.relational.sql.util.QueryUtil; import org.apache.iotdb.db.queryengine.plan.relational.type.AuthorRType; @@ -269,8 +272,7 @@ import org.apache.iotdb.db.relational.grammar.sql.RelationalSqlParser; import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; import org.apache.iotdb.db.storageengine.load.config.LoadTsFileConfigurator; -import org.apache.iotdb.db.utils.DateTimeUtils; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; +import org.apache.iotdb.db.utils.DataNodeDateTimeUtils; import com.google.common.collect.ImmutableList; import org.antlr.v4.runtime.ParserRuleContext; @@ -309,6 +311,25 @@ import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.toList; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.APPROX_COUNT_DISTINCT; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.APPROX_MOST_FREQUENT; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.APPROX_PERCENTILE; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AnchorPattern.Type.PARTITION_END; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AnchorPattern.Type.PARTITION_START; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupingSets.Type.CUBE; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupingSets.Type.EXPLICIT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupingSets.Type.ROLLUP; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch.ALL_OMIT_EMPTY; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch.ALL_SHOW_EMPTY; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch.ALL_WITH_UNMATCHED; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch.ONE; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ProcessingMode.Mode.FINAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ProcessingMode.Mode.RUNNING; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName.mapIdentifier; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo.skipPastLastRow; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo.skipToFirst; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo.skipToLast; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo.skipToNextRow; import static org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.DATA_NODE_ID_TABLE_MODEL; import static org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory.ATTRIBUTE; import static org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory.FIELD; @@ -321,28 +342,9 @@ import static org.apache.iotdb.db.queryengine.plan.parser.ASTVisitor.parseIdentifier; import static org.apache.iotdb.db.queryengine.plan.parser.ASTVisitor.parseNodeString; import static org.apache.iotdb.db.queryengine.plan.parser.ASTVisitor.parseStringLiteral; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AnchorPattern.Type.PARTITION_END; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AnchorPattern.Type.PARTITION_START; import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AsofJoinOn.constructAsofJoinOn; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GroupingSets.Type.CUBE; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GroupingSets.Type.EXPLICIT; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GroupingSets.Type.ROLLUP; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch.ALL_OMIT_EMPTY; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch.ALL_SHOW_EMPTY; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch.ALL_WITH_UNMATCHED; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation.RowsPerMatch.ONE; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ProcessingMode.Mode.FINAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ProcessingMode.Mode.RUNNING; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName.mapIdentifier; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo.skipPastLastRow; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo.skipToFirst; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo.skipToLast; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo.skipToNextRow; import static org.apache.iotdb.db.queryengine.plan.relational.sql.util.QueryUtil.selectList; import static org.apache.iotdb.db.queryengine.plan.relational.sql.util.QueryUtil.table; -import static org.apache.iotdb.db.utils.constant.SqlConstant.APPROX_COUNT_DISTINCT; -import static org.apache.iotdb.db.utils.constant.SqlConstant.APPROX_MOST_FREQUENT; -import static org.apache.iotdb.db.utils.constant.SqlConstant.APPROX_PERCENTILE; public class AstBuilder extends RelationalSqlBaseVisitor { @@ -1653,8 +1655,7 @@ public Node visitShowCurrentSqlDialectStatement( @Override public Node visitSetSqlDialectStatement(RelationalSqlParser.SetSqlDialectStatementContext ctx) { return new SetSqlDialect( - ctx.TABLE() == null ? IClientSession.SqlDialect.TREE : IClientSession.SqlDialect.TABLE, - getLocation(ctx)); + ctx.TABLE() == null ? SqlDialect.TREE : SqlDialect.TABLE, getLocation(ctx)); } @Override @@ -2356,7 +2357,8 @@ public Node visitPreviousFill(RelationalSqlParser.PreviousFillContext ctx) { List fillGroupingElements = null; if (ctx.timeBoundClause() != null) { timeBound = - DateTimeUtils.constructTimeDuration(ctx.timeBoundClause().timeDuration().getText()); + DataNodeDateTimeUtils.constructTimeDuration( + ctx.timeBoundClause().timeDuration().getText()); if (timeBound.monthDuration != 0 && timeBound.nonMonthDuration != 0) { throw new SemanticException( @@ -2747,7 +2749,8 @@ public Node visitJoinRelation(RelationalSqlParser.JoinRelationContext ctx) { if (ctx.joinCriteria().ON() != null) { if (ctx.ASOF() != null) { if (ctx.timeDuration() != null) { - timeDuration = DateTimeUtils.constructTimeDuration(ctx.timeDuration().getText()); + timeDuration = + DataNodeDateTimeUtils.constructTimeDuration(ctx.timeDuration().getText()); if (timeDuration.monthDuration != 0) { throw new SemanticException( @@ -3059,7 +3062,7 @@ public Node visitScalarArgument(RelationalSqlParser.ScalarArgumentContext ctx) { return visit(ctx.expression()); } else { return new TimeDurationLiteral( - DateTimeUtils.constructTimeDuration(ctx.timeDuration().getText())); + DataNodeDateTimeUtils.constructTimeDuration(ctx.timeDuration().getText())); } } @@ -3359,9 +3362,13 @@ private Long parseDateExpression( time = parseDateTimeFormat(ctx.getChild(0).getText(), currentTime, zoneId); for (int i = 1; i < ctx.getChildCount(); i = i + 2) { if ("+".equals(ctx.getChild(i).getText())) { - time += DateTimeUtils.convertDurationStrToLong(time, ctx.getChild(i + 1).getText(), false); + time += + DataNodeDateTimeUtils.convertDurationStrToLong( + time, ctx.getChild(i + 1).getText(), false); } else { - time -= DateTimeUtils.convertDurationStrToLong(time, ctx.getChild(i + 1).getText(), false); + time -= + DataNodeDateTimeUtils.convertDurationStrToLong( + time, ctx.getChild(i + 1).getText(), false); } } return time; @@ -3601,7 +3608,8 @@ public Node visitFunctionCall(RelationalSqlParser.FunctionCallContext ctx) { @Override public Node visitDateBinGapFill(RelationalSqlParser.DateBinGapFillContext ctx) { - TimeDuration timeDuration = DateTimeUtils.constructTimeDuration(ctx.timeDuration().getText()); + TimeDuration timeDuration = + DataNodeDateTimeUtils.constructTimeDuration(ctx.timeDuration().getText()); if (timeDuration.monthDuration != 0 && timeDuration.nonMonthDuration != 0) { throw new SemanticException( @@ -3634,7 +3642,8 @@ public Node visitDateBinGapFill(RelationalSqlParser.DateBinGapFillContext ctx) { @Override public Node visitDateBin(RelationalSqlParser.DateBinContext ctx) { - TimeDuration timeDuration = DateTimeUtils.constructTimeDuration(ctx.timeDuration().getText()); + TimeDuration timeDuration = + DataNodeDateTimeUtils.constructTimeDuration(ctx.timeDuration().getText()); if (timeDuration.monthDuration != 0 && timeDuration.nonMonthDuration != 0) { throw new SemanticException( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/ErrorHandler.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/ErrorHandler.java index e663ac5bcf3ff..07e8817964b10 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/ErrorHandler.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/ErrorHandler.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.parser; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.ParsingException; + import com.google.common.collect.ImmutableSet; import org.antlr.v4.runtime.BaseErrorListener; import org.antlr.v4.runtime.NoViableAltException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/SqlParser.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/SqlParser.java index 377c88dfdb7ae..6f41536ba74e2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/SqlParser.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/SqlParser.java @@ -19,13 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.parser; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.CaseInsensitiveStream; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.ParsingException; import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics; import org.apache.iotdb.db.protocol.session.IClientSession; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NodeLocation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.relational.grammar.sql.RelationalSqlBaseListener; import org.apache.iotdb.db.relational.grammar.sql.RelationalSqlLexer; import org.apache.iotdb.db.relational.grammar.sql.RelationalSqlParser; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/rewrite/ShowRewrite.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/rewrite/ShowRewrite.java index d0e386e5926dc..ca7f60de5edb8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/rewrite/ShowRewrite.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/rewrite/ShowRewrite.java @@ -19,26 +19,26 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite; -import org.apache.iotdb.db.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AllColumns; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Relation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Select; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SingleColumn; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.StatementAnalyzerFactory; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AllColumns; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CountStatement; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Relation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Select; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowExternalService; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowQueriesStatement; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowStatement; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SingleColumn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import java.util.Collections; import java.util.List; @@ -64,15 +64,15 @@ public Statement rewrite( return (Statement) visitor.process(node, null); } - private static class Visitor extends AstVisitor { + private static class Visitor implements AstVisitor { @Override - protected Node visitShowQueriesStatement(ShowQueriesStatement node, Void context) { + public Node visitShowQueriesStatement(ShowQueriesStatement node, Void context) { return visitShowStatement(node, context); } @Override - protected Node visitShowStatement(final ShowStatement showStatement, final Void context) { + public Node visitShowStatement(final ShowStatement showStatement, final Void context) { return simpleQuery( selectList(new AllColumns()), from(INFORMATION_DATABASE, showStatement.getTableName()), @@ -86,7 +86,7 @@ protected Node visitShowStatement(final ShowStatement showStatement, final Void } @Override - protected Node visitShowExternalService(ShowExternalService node, Void context) { + public Node visitShowExternalService(ShowExternalService node, Void context) { return simpleQuery( selectList(new AllColumns()), from(INFORMATION_DATABASE, node.getTableName()), @@ -100,7 +100,7 @@ protected Node visitShowExternalService(ShowExternalService node, Void context) } @Override - protected Node visitCountStatement(final CountStatement countStatement, final Void context) { + public Node visitCountStatement(final CountStatement countStatement, final Void context) { return simpleQuery( new Select( false, @@ -125,7 +125,7 @@ private static Relation from(final String db, final String table) { } @Override - protected Node visitNode(final Node node, final Void context) { + public Node visitNode(final Node node, final Void context) { return node; } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/rewrite/StatementRewrite.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/rewrite/StatementRewrite.java index 66bcd5f4ef1a3..f5785879b1116 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/rewrite/StatementRewrite.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/rewrite/StatementRewrite.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite; -import org.apache.iotdb.db.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.analyzer.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; -import org.apache.iotdb.db.queryengine.plan.relational.analyzer.NodeRef; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.StatementAnalyzerFactory; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/AstUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/AstUtil.java index cb17a90c04f3c..76406fdc07112 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/AstUtil.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/AstUtil.java @@ -19,15 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.util; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; import org.apache.iotdb.commons.utils.CommonDateTimeUtils; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; import com.google.common.graph.SuccessorsFunction; import com.google.common.graph.Traverser; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/DataNodeSqlFormatter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/DataNodeSqlFormatter.java new file mode 100644 index 0000000000000..399c5a393fab4 --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/DataNodeSqlFormatter.java @@ -0,0 +1,1095 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.db.queryengine.plan.relational.sql.util; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Relation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.util.CommonQuerySqlFormatter; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AddColumn; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AlterDB; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AlterPipe; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ColumnDefinition; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CopyTo; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateDB; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateFunction; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreatePipe; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreatePipePlugin; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateTable; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateTopic; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateView; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Delete; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropColumn; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropDB; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropFunction; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropPipe; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropPipePlugin; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropSubscription; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropTable; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropTopic; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Explain; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExplainAnalyze; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Insert; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Property; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RelationalAuthorStatement; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RenameColumn; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RenameTable; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetColumnComment; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetProperties; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetTableComment; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowClusterId; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowCurrentDatabase; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowCurrentSqlDialect; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowCurrentTimestamp; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowCurrentUser; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDB; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowFunctions; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowPipePlugins; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowPipes; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowSubscriptions; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowTables; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowTopics; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowVariables; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowVersion; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StartPipe; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StopPipe; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Update; +import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.UpdateAssignment; + +import com.google.common.base.Joiner; + +import java.util.List; +import java.util.Objects; + +import static java.util.stream.Collectors.joining; + +public final class DataNodeSqlFormatter extends CommonQuerySqlFormatter + implements AstVisitor { + + public static String formatDataNodeSql(Node root) { + StringBuilder builder = new StringBuilder(); + new DataNodeSqlFormatter(builder).process(root, 0); + return builder.toString(); + } + + private DataNodeSqlFormatter(StringBuilder builder) { + super(builder); + } + + @Override + public Void visitExplain(Explain node, Integer indent) { + builder.append("EXPLAIN "); + builder.append("\n"); + process(node.getStatement(), indent); + return null; + } + + @Override + public Void visitCopyTo(CopyTo node, Integer context) { + builder.append("COPY\n"); + builder.append("(\n"); + process(node.getQueryStatement(), context); + builder.append("\n) "); + builder.append("TO "); + builder.append('\''); + builder.append(node.getTargetFileName()); + builder.append('\''); + builder.append("\n"); + builder.append(node.getOptions().toString()); + return null; + } + + @Override + public Void visitExplainAnalyze(ExplainAnalyze node, Integer indent) { + builder.append("EXPLAIN ANALYZE"); + if (node.isVerbose()) { + builder.append(" VERBOSE"); + } + builder.append("\n"); + process(node.getStatement(), indent); + return null; + } + + @Override + public Void visitShowDB(ShowDB node, Integer indent) { + builder.append("SHOW DATABASE"); + return null; + } + + @Override + public Void visitShowTables(ShowTables node, Integer indent) { + builder.append("SHOW TABLES"); + + if (node.isDetails()) { + builder.append(" DETAILS"); + } + + node.getDbName() + .ifPresent(db -> builder.append(" FROM ").append(CommonQuerySqlFormatter.formatName(db))); + + return null; + } + + @Override + public Void visitShowFunctions(ShowFunctions node, Integer indent) { + builder.append("SHOW FUNCTIONS"); + return null; + } + + @Override + public Void visitShowCurrentSqlDialect(ShowCurrentSqlDialect node, Integer context) { + builder.append(node.toString()); + return null; + } + + @Override + public Void visitShowCurrentDatabase(ShowCurrentDatabase node, Integer context) { + builder.append(node.toString()); + return null; + } + + @Override + public Void visitShowCurrentUser(ShowCurrentUser node, Integer context) { + builder.append(node.toString()); + return null; + } + + @Override + public Void visitShowVersion(ShowVersion node, Integer context) { + builder.append(node.toString()); + return null; + } + + @Override + public Void visitShowVariables(ShowVariables node, Integer context) { + builder.append(node.toString()); + return null; + } + + @Override + public Void visitShowClusterId(ShowClusterId node, Integer context) { + builder.append(node.toString()); + return null; + } + + @Override + public Void visitShowCurrentTimestamp(ShowCurrentTimestamp node, Integer context) { + builder.append(node.toString()); + return null; + } + + @Override + public Void visitDelete(Delete node, Integer indent) { + builder + .append("DELETE FROM ") + .append(CommonQuerySqlFormatter.formatName(node.getTable().getName())); + node.getWhere() + .ifPresent( + where -> + builder.append(" WHERE ").append(CommonQuerySqlFormatter.formatExpression(where))); + return null; + } + + @Override + public Void visitCreateDB(CreateDB node, Integer indent) { + builder.append("CREATE DATABASE "); + if (node.exists()) { + builder.append("IF NOT EXISTS "); + } + builder.append(node.getDbName()).append(" "); + builder.append(formatPropertiesMultiLine(node.getProperties())); + return null; + } + + @Override + public Void visitAlterDB(AlterDB node, Integer indent) { + builder.append("ALTER DATABASE "); + if (node.exists()) { + builder.append("IF EXISTS "); + } + builder.append(node.getDbName()).append(" "); + builder.append(formatPropertiesMultiLine(node.getProperties())); + return null; + } + + @Override + public Void visitDropDB(DropDB node, Integer indent) { + builder.append("DROP DATABASE "); + if (node.isExists()) { + builder.append("IF EXISTS "); + } + builder.append(CommonQuerySqlFormatter.formatName(node.getDbName())); + return null; + } + + @Override + public Void visitCreateTable(CreateTable node, Integer indent) { + builder.append("CREATE TABLE "); + if (node.isIfNotExists()) { + builder.append("IF NOT EXISTS "); + } + String tableName = CommonQuerySqlFormatter.formatName(node.getName()); + builder.append(tableName).append(" (\n"); + + String elementIndent = indentString(indent + 1); + String columnList = + node.getElements().stream() + .map( + element -> { + if (element != null) { + return elementIndent + formatColumnDefinition(element); + } + throw new UnsupportedOperationException("unknown table element: " + element); + }) + .collect(joining(",\n")); + builder.append(columnList); + builder.append("\n").append(")"); + + node.getCharsetName().ifPresent(charset -> builder.append(" CHARSET ").append(charset)); + + if (Objects.nonNull(node.getComment())) { + builder.append(" COMMENT '").append(node.getComment()).append("'"); + } + + builder.append(formatPropertiesMultiLine(node.getProperties())); + return null; + } + + @Override + public Void visitCreateView(CreateView node, Integer indent) { + builder.append("CREATE "); + if (node.isReplace()) { + builder.append("OR REPLACE "); + } + builder.append("VIEW "); + String tableName = CommonQuerySqlFormatter.formatName(node.getName()); + builder.append(tableName).append(" (\n"); + + String elementIndent = indentString(indent + 1); + String columnList = + node.getElements().stream() + .map( + element -> { + if (element != null) { + return elementIndent + formatColumnDefinition(element); + } + throw new UnsupportedOperationException("unknown table element: " + element); + }) + .collect(joining(",\n")); + builder.append(columnList); + builder.append("\n").append(")"); + + if (Objects.nonNull(node.getComment())) { + builder.append(" COMMENT '").append(node.getComment()).append("'"); + } + + if (node.isRestrict()) { + builder.append(" RESTRICT"); + } + + builder.append(formatPropertiesMultiLine(node.getProperties())); + builder.append(" AS ").append(node.getPrefixPath().toString()); + + return null; + } + + @Override + public Void visitDropTable(DropTable node, Integer indent) { + builder.append("DROP"); + builder.append(node.isView() ? " VIEW " : " TABLE "); + if (node.isExists()) { + builder.append("IF EXISTS "); + } + builder.append(CommonQuerySqlFormatter.formatName(node.getTableName())); + + return null; + } + + @Override + public Void visitRenameTable(RenameTable node, Integer indent) { + builder.append("ALTER"); + builder.append(node.isView() ? " VIEW " : " TABLE "); + if (node.tableIfExists()) { + builder.append("IF EXISTS "); + } + + builder + .append(CommonQuerySqlFormatter.formatName(node.getSource())) + .append(" RENAME TO ") + .append(CommonQuerySqlFormatter.formatName(node.getTarget())); + + return null; + } + + @Override + public Void visitSetProperties(SetProperties node, Integer context) { + SetProperties.Type type = node.getType(); + builder.append("ALTER "); + switch (type) { + case TABLE: + builder.append("TABLE "); + case MATERIALIZED_VIEW: + builder.append("MATERIALIZED VIEW "); + case TREE_VIEW: + builder.append("VIEW "); + } + if (node.ifExists()) { + builder.append("IF EXISTS "); + } + + builder + .append(CommonQuerySqlFormatter.formatName(node.getName())) + .append(" SET PROPERTIES ") + .append(joinProperties(node.getProperties())); + + return null; + } + + @Override + public Void visitRenameColumn(RenameColumn node, Integer indent) { + builder.append("ALTER"); + builder.append(node.isView() ? " VIEW " : " TABLE "); + if (node.tableIfExists()) { + builder.append("IF EXISTS "); + } + + builder.append(CommonQuerySqlFormatter.formatName(node.getTable())).append("RENAME COLUMN "); + if (node.columnIfExists()) { + builder.append("IF EXISTS "); + } + + builder + .append(CommonQuerySqlFormatter.formatName(node.getSource())) + .append(" TO ") + .append(CommonQuerySqlFormatter.formatName(node.getTarget())); + + return null; + } + + @Override + public Void visitDropColumn(DropColumn node, Integer indent) { + builder.append("ALTER"); + builder.append(node.isView() ? " VIEW " : " TABLE "); + if (node.tableIfExists()) { + builder.append("IF EXISTS "); + } + + builder.append(CommonQuerySqlFormatter.formatName(node.getTable())).append("DROP COLUMN "); + if (node.columnIfExists()) { + builder.append("IF EXISTS "); + } + + builder.append(CommonQuerySqlFormatter.formatName(node.getField())); + + return null; + } + + @Override + public Void visitAddColumn(AddColumn node, Integer indent) { + builder.append("ALTER"); + builder.append(node.isView() ? " VIEW " : " TABLE "); + if (node.tableIfExists()) { + builder.append("IF EXISTS "); + } + + builder.append(CommonQuerySqlFormatter.formatName(node.getTableName())).append("ADD COLUMN "); + if (node.columnIfNotExists()) { + builder.append("IF NOT EXISTS "); + } + + builder.append(formatColumnDefinition(node.getColumn())); + + return null; + } + + @Override + public Void visitSetTableComment(SetTableComment node, Integer indent) { + builder + .append("COMMENT ON") + .append(node.isView() ? " VIEW " : " TABLE ") + .append(CommonQuerySqlFormatter.formatName(node.getTableName())) + .append(" IS ") + .append(node.getComment()); + + return null; + } + + @Override + public Void visitSetColumnComment(SetColumnComment node, Integer indent) { + builder + .append("COMMENT ON COLUMN ") + .append(CommonQuerySqlFormatter.formatName(node.getTable())) + .append(".") + .append(CommonQuerySqlFormatter.formatName(node.getField())) + .append(" IS ") + .append(node.getComment()); + return null; + } + + @Override + public Void visitInsert(Insert node, Integer indent) { + builder.append("INSERT INTO ").append(CommonQuerySqlFormatter.formatName(node.getTarget())); + + node.getColumns() + .ifPresent( + columns -> builder.append(" (").append(Joiner.on(", ").join(columns)).append(")")); + + builder.append("\n"); + + process(node.getQuery(), indent); + + return null; + } + + @Override + public Void visitUpdate(Update node, Integer indent) { + builder + .append("UPDATE ") + .append(CommonQuerySqlFormatter.formatName(node.getTable().getName())) + .append(" SET"); + int setCounter = node.getAssignments().size() - 1; + for (UpdateAssignment assignment : node.getAssignments()) { + builder + .append("\n") + .append(indentString(indent + 1)) + .append(((Identifier) assignment.getName()).getValue()) + .append(" = ") + .append(CommonQuerySqlFormatter.formatExpression(assignment.getValue())); + if (setCounter > 0) { + builder.append(","); + } + setCounter--; + } + node.getWhere() + .ifPresent( + where -> + builder + .append("\n") + .append(indentString(indent)) + .append("WHERE ") + .append(CommonQuerySqlFormatter.formatExpression(where))); + return null; + } + + @Override + public Void visitCreateFunction(CreateFunction node, Integer indent) { + builder + .append("CREATE FUNCTION ") + .append(node.getUdfName()) + .append(" AS ") + .append(node.getClassName()); + node.getUriString().ifPresent(uri -> builder.append(" USING URI ").append(uri)); + return null; + } + + @Override + public Void visitDropFunction(DropFunction node, Integer indent) { + builder.append("DROP FUNCTION "); + builder.append(node.getUdfName()); + return null; + } + + @Override + public Void visitLoadTsFile(LoadTsFile node, Integer indent) { + builder.append("LOAD "); + builder.append("\"" + node.getFilePath() + "\""); + builder.append(" \n"); + + if (!node.getLoadAttributes().isEmpty()) { + builder + .append("WITH (") + .append("\n") + .append( + node.getLoadAttributes().entrySet().stream() + .map( + entry -> + indentString(1) + + "\"" + + entry.getKey() + + "\" = \"" + + entry.getValue() + + "\"") + .collect(joining(", " + "\n"))) + .append(")\n"); + } + return null; + } + + @Override + public Void visitCreatePipe(CreatePipe node, Integer context) { + builder.append("CREATE PIPE "); + if (node.hasIfNotExistsCondition()) { + builder.append("IF NOT EXISTS "); + } + builder.append(node.getPipeName()); + builder.append(" \n"); + + if (!node.getSourceAttributes().isEmpty()) { + builder + .append("WITH SOURCE (") + .append("\n") + .append( + node.getSourceAttributes().entrySet().stream() + .map( + entry -> + indentString(1) + + "\"" + + entry.getKey() + + "\" = \"" + + entry.getValue() + + "\"") + .collect(joining(", " + "\n"))) + .append(")\n"); + } + + if (!node.getProcessorAttributes().isEmpty()) { + builder + .append("WITH PROCESSOR (") + .append("\n") + .append( + node.getProcessorAttributes().entrySet().stream() + .map( + entry -> + indentString(1) + + "\"" + + entry.getKey() + + "\" = \"" + + entry.getValue() + + "\"") + .collect(joining(", " + "\n"))) + .append(")\n"); + } + + if (!node.getSinkAttributes().isEmpty()) { + builder + .append("WITH SINK (") + .append("\n") + .append( + node.getSinkAttributes().entrySet().stream() + .map( + entry -> + indentString(1) + + "\"" + + entry.getKey() + + "\" = \"" + + entry.getValue() + + "\"") + .collect(joining(", " + "\n"))) + .append(")"); + } + + return null; + } + + @Override + public Void visitAlterPipe(AlterPipe node, Integer context) { + builder.append("ALTER PIPE "); + if (node.hasIfExistsCondition()) { + builder.append("IF EXISTS "); + } + builder.append(node.getPipeName()); + builder.append(" \n"); + + builder + .append(node.isReplaceAllExtractorAttributes() ? "REPLACE" : "MODIFY") + .append(" SOURCE (") + .append("\n") + .append( + node.getExtractorAttributes().entrySet().stream() + .map( + entry -> + indentString(1) + + "\"" + + entry.getKey() + + "\" = \"" + + entry.getValue() + + "\"") + .collect(joining(", " + "\n"))) + .append(")\n"); + + builder + .append(node.isReplaceAllProcessorAttributes() ? "REPLACE" : "MODIFY") + .append(" PROCESSOR (") + .append("\n") + .append( + node.getProcessorAttributes().entrySet().stream() + .map( + entry -> + indentString(1) + + "\"" + + entry.getKey() + + "\" = \"" + + entry.getValue() + + "\"") + .collect(joining(", " + "\n"))) + .append(")\n"); + + builder + .append(node.isReplaceAllConnectorAttributes() ? "REPLACE" : "MODIFY") + .append(" SINK (") + .append("\n") + .append( + node.getConnectorAttributes().entrySet().stream() + .map( + entry -> + indentString(1) + + "\"" + + entry.getKey() + + "\" = \"" + + entry.getValue() + + "\"") + .collect(joining(", " + "\n"))) + .append(")"); + + return null; + } + + @Override + public Void visitDropPipe(DropPipe node, Integer context) { + builder.append("DROP PIPE "); + if (node.hasIfExistsCondition()) { + builder.append("IF EXISTS "); + } + builder.append(node.getPipeName()); + + return null; + } + + @Override + public Void visitStartPipe(StartPipe node, Integer context) { + builder.append("START PIPE ").append(node.getPipeName()); + return null; + } + + @Override + public Void visitStopPipe(StopPipe node, Integer context) { + builder.append("STOP PIPE ").append(node.getPipeName()); + return null; + } + + @Override + public Void visitShowPipes(ShowPipes node, Integer context) { + builder.append("SHOW PIPES"); + return null; + } + + @Override + public Void visitCreatePipePlugin(CreatePipePlugin node, Integer context) { + builder.append("CREATE PIPEPLUGIN "); + if (node.hasIfNotExistsCondition()) { + builder.append("IF NOT EXISTS "); + } + builder.append(node.getPluginName()); + builder.append("\n"); + + builder.append("AS \""); + builder.append(node.getClassName()); + builder.append("\"\n"); + + builder.append("USING URI \""); + builder.append(node.getUriString()); + builder.append("\""); + + return null; + } + + @Override + public Void visitDropPipePlugin(DropPipePlugin node, Integer context) { + builder.append("DROP PIPEPLUGIN "); + if (node.hasIfExistsCondition()) { + builder.append("IF EXISTS "); + } + builder.append(node.getPluginName()); + + return null; + } + + @Override + public Void visitShowPipePlugins(ShowPipePlugins node, Integer context) { + builder.append("SHOW PIPEPLUGINS"); + return null; + } + + @Override + public Void visitCreateTopic(CreateTopic node, Integer context) { + builder.append("CREATE TOPIC "); + if (node.hasIfNotExistsCondition()) { + builder.append("IF NOT EXISTS "); + } + builder.append(node.getTopicName()); + builder.append(" \n"); + + if (!node.getTopicAttributes().isEmpty()) { + builder + .append("WITH (") + .append("\n") + .append( + node.getTopicAttributes().entrySet().stream() + .map( + entry -> + indentString(1) + + "\"" + + entry.getKey() + + "\" = \"" + + entry.getValue() + + "\"") + .collect(joining(", " + "\n"))) + .append(")\n"); + } + + return null; + } + + @Override + public Void visitDropTopic(DropTopic node, Integer context) { + builder.append("DROP TOPIC "); + if (node.hasIfExistsCondition()) { + builder.append("IF EXISTS "); + } + builder.append(node.getTopicName()); + + return null; + } + + @Override + public Void visitShowTopics(ShowTopics node, Integer context) { + if (Objects.isNull(node.getTopicName())) { + builder.append("SHOW TOPICS"); + } else { + builder.append("SHOW TOPIC ").append(node.getTopicName()); + } + + return null; + } + + @Override + public Void visitShowSubscriptions(ShowSubscriptions node, Integer context) { + if (Objects.isNull(node.getTopicName())) { + builder.append("SHOW SUBSCRIPTIONS"); + } else { + builder.append("SHOW SUBSCRIPTIONS ON ").append(node.getTopicName()); + } + + return null; + } + + @Override + public Void visitDropSubscription(DropSubscription node, Integer context) { + builder.append("DROP SUBSCRIPTION "); + if (node.hasIfExistsCondition()) { + builder.append("IF EXISTS "); + } + builder.append(node.getSubscriptionId()); + + return null; + } + + @Override + public Void visitRelationalAuthorPlan(RelationalAuthorStatement node, Integer context) { + switch (node.getAuthorType()) { + case GRANT_USER_ANY: + builder.append( + "GRANT " + + node.getPrivilegesString() + + " ON ANY" + + " TO USER " + + node.getUserName() + + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); + break; + case GRANT_USER_ALL: + builder.append( + "GRANT ALL TO USER " + + node.getUserName() + + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); + break; + case GRANT_USER_DB: + builder.append( + "GRANT " + + node.getPrivilegesString() + + " ON DATABASE " + + node.getDatabase() + + " TO USER " + + node.getUserName() + + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); + break; + case GRANT_USER_SYS: + builder.append( + "GRANT " + + node.getPrivilegesString() + + " TO USER " + + node.getUserName() + + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); + break; + case GRANT_USER_TB: + builder.append( + "GRANT " + + node.getPrivilegesString() + + " ON TABLE " + + node.getDatabase() + + "." + + node.getTableName() + + " TO USER " + + node.getUserName() + + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); + break; + case GRANT_ROLE_ANY: + builder.append( + "GRANT " + + node.getPrivilegesString() + + " ON ANY" + + " TO ROLE " + + node.getRoleName() + + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); + break; + case GRANT_ROLE_ALL: + builder.append( + "GRANT ALL TO ROLE " + + node.getRoleName() + + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); + break; + case GRANT_ROLE_DB: + builder.append( + "GRANT " + + node.getPrivilegesString() + + " ON DATABASE " + + node.getDatabase() + + " TO ROLE " + + node.getRoleName() + + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); + break; + case GRANT_ROLE_SYS: + builder.append( + "GRANT " + + node.getPrivilegesString() + + " TO ROLE " + + node.getRoleName() + + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); + break; + case GRANT_ROLE_TB: + builder.append( + "GRANT " + + node.getPrivilegesString() + + " ON TABLE " + + node.getDatabase() + + "." + + node.getTableName() + + " TO ROLE " + + node.getRoleName() + + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); + break; + case REVOKE_USER_ANY: + builder.append( + "REVOKE " + + (node.isGrantOption() ? "GRANT OPTION FOR " : "") + + node.getPrivilegesString() + + " ON ANY FROM USER " + + node.getUserName()); + break; + case REVOKE_USER_ALL: + builder.append( + "REVOKE" + + (node.isGrantOption() ? "GRANT OPTION FOR ALL" : "ALL") + + " FROM USER " + + node.getUserName()); + break; + case REVOKE_USER_DB: + builder.append( + "REVOKE " + + (node.isGrantOption() ? "GRANT OPTION FOR " : "") + + node.getPrivilegesString() + + " ON DATABASE " + + node.getDatabase() + + " FROM USER " + + node.getUserName()); + break; + case REVOKE_USER_SYS: + builder.append( + "REVOKE " + + (node.isGrantOption() ? "GRANT OPTION FOR " : "") + + node.getPrivilegesString() + + "FROM USER " + + node.getUserName()); + break; + case REVOKE_USER_TB: + builder.append( + "REVOKE " + + (node.isGrantOption() ? "GRANT OPTION FOR " : "") + + node.getPrivilegesString() + + " ON TABLE " + + node.getDatabase() + + "." + + node.getTableName() + + " FROM USER " + + node.getUserName()); + break; + case REVOKE_ROLE_ANY: + builder.append( + "REVOKE " + + (node.isGrantOption() ? "GRANT OPTION FOR " : "") + + node.getPrivilegesString() + + " ON ANY FROM ROLE " + + node.getRoleName()); + break; + case REVOKE_ROLE_ALL: + builder.append( + "REVOKE " + + (node.isGrantOption() ? "GRANT OPTION FOR ALL" : "ALL") + + " FROM ROLE " + + node.getRoleName()); + break; + case REVOKE_ROLE_DB: + builder.append( + "REVOKE " + + (node.isGrantOption() ? "GRANT OPTION FOR " : "") + + node.getPrivilegesString() + + " ON DATABASE " + + node.getDatabase() + + " FROM ROLE " + + node.getRoleName()); + break; + case REVOKE_ROLE_SYS: + builder.append( + "REVOKE " + + (node.isGrantOption() ? "GRANT OPTION FOR " : "") + + node.getPrivilegesString() + + " FROM ROLE " + + node.getRoleName()); + break; + case REVOKE_ROLE_TB: + builder.append( + "REVOKE " + + (node.isGrantOption() ? "GRANT OPTION FOR " : "") + + node.getPrivilegesString() + + " ON TABLE " + + node.getDatabase() + + "." + + node.getTableName() + + " FROM ROLE " + + node.getRoleName()); + break; + case GRANT_USER_ROLE: + builder.append("GRANT ROLE " + node.getRoleName() + " TO " + node.getUserName()); + break; + case REVOKE_USER_ROLE: + builder.append("REVOKE ROLE " + node.getRoleName() + " FROM " + node.getUserName()); + break; + case CREATE_USER: + builder.append("CREATE USER " + node.getUserName()); + break; + case CREATE_ROLE: + builder.append("CREATE ROLE " + node.getRoleName()); + break; + case UPDATE_USER: + builder.append("ALTER USER " + node.getUserName() + " SET PASSWORD"); + break; + case LIST_USER: + builder.append("LIST USER "); + break; + case LIST_ROLE: + builder.append("LIST ROLE "); + break; + case LIST_USER_PRIV: + builder.append("LIST PRIVILEGES OF USER " + node.getUserName()); + break; + case LIST_ROLE_PRIV: + builder.append("LIST PRIVILEGES OF ROLE " + node.getRoleName()); + break; + case DROP_ROLE: + builder.append("DROP ROLE " + node.getRoleName()); + break; + case DROP_USER: + builder.append("DROP USER " + node.getUserName()); + break; + default: + break; + } + return null; + } + + @Override + protected boolean needsParenthesesForRelationSuffix(Relation relation) { + return super.needsParenthesesForRelationSuffix(relation) + || relation instanceof PatternRecognitionRelation; + } + + @Override + protected boolean isSimpleTableRelation(Relation relation) { + return relation instanceof Table; + } + + @Override + protected String formatSimpleTableRelationName(Relation relation) { + return CommonQuerySqlFormatter.formatName(((Table) relation).getName()); + } + + private String formatPropertiesMultiLine(List properties) { + if (properties.isEmpty()) { + return ""; + } + + String propertyList = + properties.stream() + .map( + element -> + CommonQuerySqlFormatter.INDENT + + CommonQuerySqlFormatter.formatName(element.getName()) + + " = " + + (element.isSetToDefault() + ? "DEFAULT" + : CommonQuerySqlFormatter.formatExpression( + element.getNonDefaultValue()))) + .collect(joining(",\n")); + + return "\nWITH (\n" + propertyList + "\n)"; + } + + private String formatColumnDefinition(ColumnDefinition column) { + StringBuilder stringBuilder = + new StringBuilder() + .append(CommonQuerySqlFormatter.formatName(column.getName())) + .append(" ") + .append(column.getType()) + .append(" ") + .append(column.getColumnCategory()); + + column.getCharsetName().ifPresent(charset -> stringBuilder.append(" CHARSET ").append(charset)); + + if (Objects.nonNull(column.getComment())) { + stringBuilder.append(" COMMENT '").append(column.getComment()).append("'"); + } + return stringBuilder.toString(); + } + + private String joinProperties(List properties) { + return properties.stream() + .map( + element -> + CommonQuerySqlFormatter.formatName(element.getName()) + + " = " + + (element.isSetToDefault() + ? "DEFAULT" + : CommonQuerySqlFormatter.formatExpression(element.getNonDefaultValue()))) + .collect(joining(", ")); + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/QueryUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/QueryUtil.java index f0bd840453e2e..93cb99766de90 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/QueryUtil.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/QueryUtil.java @@ -19,34 +19,34 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.util; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AliasedRelation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Fill; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GroupBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Offset; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OrderBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QueryBody; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuerySpecification; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Relation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Select; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SelectItem; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SingleColumn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableSubquery; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowDefinition; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AliasedRelation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Fill; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Offset; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QueryBody; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuerySpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Relation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Select; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SelectItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SingleColumn; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableSubquery; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowDefinition; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ReservedIdentifiers.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ReservedIdentifiers.java deleted file mode 100644 index cf4aaa5b86b9c..0000000000000 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ReservedIdentifiers.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.iotdb.db.queryengine.plan.relational.sql.util; - -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.ParsingException; -import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; - -import java.time.ZoneId; -import java.util.Set; - -import static com.google.common.collect.ImmutableSet.toImmutableSet; -import static org.apache.iotdb.db.relational.grammar.sql.RelationalSqlKeywords.sqlKeywords; - -public final class ReservedIdentifiers { - private static final SqlParser PARSER = new SqlParser(); - - public static Set reservedIdentifiers() { - return sqlKeywords().stream() - .filter(ReservedIdentifiers::reserved) - .sorted() - .collect(toImmutableSet()); - } - - public static boolean reserved(final String name) { - try { - return !(PARSER.createExpression(name, ZoneId.systemDefault()) instanceof Identifier); - } catch (final ParsingException ignored) { - return true; - } - } -} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/SqlFormatter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/SqlFormatter.java deleted file mode 100644 index 5c259594c8b74..0000000000000 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/SqlFormatter.java +++ /dev/null @@ -1,1767 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.iotdb.db.queryengine.plan.relational.sql.util; - -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AddColumn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AliasedRelation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AllColumns; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AlterDB; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AlterPipe; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ColumnDefinition; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CopyTo; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateDB; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateFunction; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreatePipe; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreatePipePlugin; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateTable; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateTopic; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CreateView; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Delete; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropColumn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropDB; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropFunction; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropPipe; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropPipePlugin; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropSubscription; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropTable; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DropTopic; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Except; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Explain; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExplainAnalyze; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Fill; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Insert; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Intersect; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Join; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinCriteria; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinOn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.JoinUsing; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Limit; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NaturalJoin; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Offset; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OrderBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternRecognitionRelation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Property; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Query; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuerySpecification; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Relation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RelationalAuthorStatement; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RenameColumn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RenameTable; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Row; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Select; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SelectItem; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetColumnComment; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetProperties; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SetTableComment; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowClusterId; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowCurrentDatabase; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowCurrentSqlDialect; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowCurrentTimestamp; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowCurrentUser; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowDB; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowFunctions; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowPipePlugins; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowPipes; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowSubscriptions; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowTables; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowTopics; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowVariables; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ShowVersion; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SingleColumn; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StartPipe; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StopPipe; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Table; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableFunctionArgument; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableFunctionInvocation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableFunctionTableArgument; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TableSubquery; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Union; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Update; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.UpdateAssignment; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Values; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WithQuery; -import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy; - -import com.google.common.base.Joiner; -import com.google.common.base.Strings; -import com.google.errorprone.annotations.CanIgnoreReturnValue; - -import java.util.Iterator; -import java.util.List; -import java.util.Objects; -import java.util.Optional; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkState; -import static com.google.common.collect.ImmutableList.toImmutableList; -import static com.google.common.collect.Iterables.getOnlyElement; -import static java.util.Objects.requireNonNull; -import static java.util.stream.Collectors.joining; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.util.ExpressionFormatter.formatGroupBy; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.util.ExpressionFormatter.formatOrderBy; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.util.RowPatternFormatter.formatPattern; - -public final class SqlFormatter { - - private static final String INDENT = " "; - - private SqlFormatter() {} - - public static String formatSql(Node root) { - StringBuilder builder = new StringBuilder(); - new Formatter(builder).process(root, 0); - return builder.toString(); - } - - private static String formatName(Identifier identifier) { - return ExpressionFormatter.formatExpression(identifier); - } - - public static String formatName(QualifiedName name) { - return name.getOriginalParts().stream().map(SqlFormatter::formatName).collect(joining(".")); - } - - private static String formatExpression(Expression expression) { - return ExpressionFormatter.formatExpression(expression); - } - - private static class Formatter extends AstVisitor { - private static class SqlBuilder { - private final StringBuilder builder; - - public SqlBuilder(StringBuilder builder) { - this.builder = requireNonNull(builder, "builder is null"); - } - - @CanIgnoreReturnValue - public SqlBuilder append(CharSequence value) { - builder.append(value); - return this; - } - - @CanIgnoreReturnValue - public SqlBuilder append(char c) { - builder.append(c); - return this; - } - } - - private final SqlBuilder builder; - - public Formatter(StringBuilder builder) { - this.builder = new SqlBuilder(builder); - } - - @Override - protected Void visitNode(Node node, Integer indent) { - throw new UnsupportedOperationException("not yet implemented: " + node); - } - - @Override - protected Void visitExpression(Expression node, Integer indent) { - checkArgument(indent == 0, "visitExpression should only be called at root"); - builder.append(formatExpression(node)); - return null; - } - - @Override - protected Void visitRowPattern(RowPattern node, Integer indent) { - checkArgument(indent == 0, "visitRowPattern should only be called at root"); - builder.append(formatPattern(node)); - return null; - } - - @Override - protected Void visitQuery(Query node, Integer indent) { - - node.getWith() - .ifPresent( - with -> { - append(indent, "WITH"); - if (with.isRecursive()) { - builder.append(" RECURSIVE"); - } - builder.append("\n "); - Iterator queries = with.getQueries().iterator(); - while (queries.hasNext()) { - WithQuery query = queries.next(); - append(indent, formatName(query.getName())); - query - .getColumnNames() - .ifPresent(columnNames -> appendAliasColumns(builder, columnNames)); - builder.append(" AS "); - process(new TableSubquery(query.getQuery()), indent); - builder.append('\n'); - if (queries.hasNext()) { - builder.append(", "); - } - } - }); - - processRelation(node.getQueryBody(), indent); - node.getOrderBy().ifPresent(orderBy -> process(orderBy, indent)); - node.getOffset().ifPresent(offset -> process(offset, indent)); - node.getLimit().ifPresent(limit -> process(limit, indent)); - return null; - } - - @Override - protected Void visitQuerySpecification(QuerySpecification node, Integer indent) { - process(node.getSelect(), indent); - - node.getFrom() - .ifPresent( - from -> { - append(indent, "FROM"); - builder.append('\n'); - append(indent, " "); - process(from, indent); - }); - - builder.append('\n'); - - node.getWhere() - .ifPresent(where -> append(indent, "WHERE " + formatExpression(where)).append('\n')); - - node.getGroupBy() - .ifPresent( - groupBy -> - append( - indent, - "GROUP BY " - + (groupBy.isDistinct() ? " DISTINCT " : "") - + formatGroupBy(groupBy.getGroupingElements())) - .append('\n')); - - node.getHaving() - .ifPresent(having -> append(indent, "HAVING " + formatExpression(having)).append('\n')); - - node.getOrderBy().ifPresent(orderBy -> process(orderBy, indent)); - node.getOffset().ifPresent(offset -> process(offset, indent)); - node.getLimit().ifPresent(limit -> process(limit, indent)); - return null; - } - - @Override - protected Void visitFill(Fill node, Integer indent) { - append(indent, "FILL METHOD ").append(node.getFillMethod().name()); - - if (node.getFillMethod() == FillPolicy.CONSTANT) { - builder.append(formatExpression(node.getFillValue().get())); - } else if (node.getFillMethod() == FillPolicy.LINEAR) { - node.getTimeColumnIndex() - .ifPresent(index -> builder.append(" TIME_COLUMN ").append(String.valueOf(index))); - node.getFillGroupingElements() - .ifPresent( - elements -> - builder - .append(" FILL_GROUP ") - .append( - elements.stream() - .map(SqlFormatter::formatExpression) - .collect(joining(", ")))); - } else if (node.getFillMethod() == FillPolicy.PREVIOUS) { - node.getTimeBound() - .ifPresent(timeBound -> builder.append(" TIME_BOUND ").append(timeBound.toString())); - node.getTimeColumnIndex() - .ifPresent(index -> builder.append(" TIME_COLUMN ").append(String.valueOf(index))); - node.getFillGroupingElements() - .ifPresent( - elements -> - builder - .append(" FILL_GROUP ") - .append( - elements.stream() - .map(SqlFormatter::formatExpression) - .collect(joining(", ")))); - } else { - throw new IllegalArgumentException("Unknown fill method: " + node.getFillMethod()); - } - return null; - } - - @Override - protected Void visitOrderBy(OrderBy node, Integer indent) { - append(indent, formatOrderBy(node)).append('\n'); - return null; - } - - @Override - protected Void visitOffset(Offset node, Integer indent) { - append(indent, "OFFSET ").append(formatExpression(node.getRowCount())).append(" ROWS\n"); - return null; - } - - @Override - protected Void visitLimit(Limit node, Integer indent) { - append(indent, "LIMIT ").append(formatExpression(node.getRowCount())).append('\n'); - return null; - } - - @Override - protected Void visitSelect(Select node, Integer indent) { - append(indent, "SELECT"); - if (node.isDistinct()) { - builder.append(" DISTINCT"); - } - - if (node.getSelectItems().size() > 1) { - boolean first = true; - for (SelectItem item : node.getSelectItems()) { - builder.append("\n").append(indentString(indent)).append(first ? " " : ", "); - - process(item, indent); - first = false; - } - } else { - builder.append(' '); - process(getOnlyElement(node.getSelectItems()), indent); - } - - builder.append('\n'); - - return null; - } - - @Override - protected Void visitSingleColumn(SingleColumn node, Integer indent) { - builder.append(formatExpression(node.getExpression())); - node.getAlias().ifPresent(alias -> builder.append(' ').append(formatName(alias))); - - return null; - } - - @Override - protected Void visitAllColumns(AllColumns node, Integer indent) { - node.getTarget().ifPresent(value -> builder.append(formatExpression(value)).append(".")); - builder.append("*"); - - if (!node.getAliases().isEmpty()) { - builder - .append(" AS (") - .append( - Joiner.on(", ") - .join( - node.getAliases().stream() - .map(SqlFormatter::formatName) - .collect(toImmutableList()))) - .append(")"); - } - - return null; - } - - @Override - protected Void visitTable(Table node, Integer indent) { - builder.append(formatName(node.getName())); - return null; - } - - @Override - protected Void visitJoin(Join node, Integer indent) { - JoinCriteria criteria = node.getCriteria().orElse(null); - String type = node.getType().toString(); - if (criteria instanceof NaturalJoin) { - type = "NATURAL " + type; - } - - if (node.getType() != Join.Type.IMPLICIT) { - builder.append('('); - } - process(node.getLeft(), indent); - - builder.append('\n'); - if (node.getType() == Join.Type.IMPLICIT) { - append(indent, ", "); - } else { - append(indent, type).append(" JOIN "); - } - - process(node.getRight(), indent); - - if (node.getType() != Join.Type.CROSS && node.getType() != Join.Type.IMPLICIT) { - if (criteria instanceof JoinUsing) { - JoinUsing using = (JoinUsing) criteria; - builder.append(" USING (").append(Joiner.on(", ").join(using.getColumns())).append(")"); - } else if (criteria instanceof JoinOn) { - JoinOn on = (JoinOn) criteria; - builder.append(" ON ").append(formatExpression(on.getExpression())); - } else if (!(criteria instanceof NaturalJoin)) { - throw new UnsupportedOperationException("unknown join criteria: " + criteria); - } - } - - if (node.getType() != Join.Type.IMPLICIT) { - builder.append(")"); - } - - return null; - } - - @Override - protected Void visitAliasedRelation(AliasedRelation node, Integer indent) { - processRelationSuffix(node.getRelation(), indent); - - builder.append(' ').append(formatName(node.getAlias())); - appendAliasColumns(builder, node.getColumnNames()); - - return null; - } - - @Override - protected Void visitPatternRecognitionRelation( - PatternRecognitionRelation node, Integer indent) { - processRelationSuffix(node.getInput(), indent); - - builder.append(" MATCH_RECOGNIZE (\n"); - if (!node.getPartitionBy().isEmpty()) { - append(indent + 1, "PARTITION BY ") - .append( - node.getPartitionBy().stream() - .map(ExpressionFormatter::formatExpression) - .collect(joining(", "))) - .append("\n"); - } - if (node.getOrderBy().isPresent()) { - process(node.getOrderBy().get(), indent + 1); - } - if (!node.getMeasures().isEmpty()) { - append(indent + 1, "MEASURES"); - formatDefinitionList( - node.getMeasures().stream() - .map( - measure -> - formatExpression(measure.getExpression()) - + " AS " - + formatExpression(measure.getName())) - .collect(toImmutableList()), - indent + 2); - } - if (node.getRowsPerMatch().isPresent()) { - String rowsPerMatch; - switch (node.getRowsPerMatch().get()) { - case ONE: - rowsPerMatch = "ONE ROW PER MATCH"; - break; - case ALL_SHOW_EMPTY: - rowsPerMatch = "ALL ROWS PER MATCH SHOW EMPTY MATCHES"; - break; - case ALL_OMIT_EMPTY: - rowsPerMatch = "ALL ROWS PER MATCH OMIT EMPTY MATCHES"; - break; - case ALL_WITH_UNMATCHED: - rowsPerMatch = "ALL ROWS PER MATCH WITH UNMATCHED ROWS"; - break; - default: - // RowsPerMatch of type WINDOW cannot occur in MATCH_RECOGNIZE clause - throw new IllegalStateException( - "unexpected rowsPerMatch: " + node.getRowsPerMatch().get()); - } - append(indent + 1, rowsPerMatch).append("\n"); - } - if (node.getAfterMatchSkipTo().isPresent()) { - String skipTo; - switch (node.getAfterMatchSkipTo().get().getPosition()) { - case PAST_LAST: - skipTo = "AFTER MATCH SKIP PAST LAST ROW"; - break; - case NEXT: - skipTo = "AFTER MATCH SKIP TO NEXT ROW"; - break; - case LAST: - checkState( - node.getAfterMatchSkipTo().get().getIdentifier().isPresent(), - "missing identifier in AFTER MATCH SKIP TO LAST"); - skipTo = - "AFTER MATCH SKIP TO LAST " - + formatExpression(node.getAfterMatchSkipTo().get().getIdentifier().get()); - break; - case FIRST: - checkState( - node.getAfterMatchSkipTo().get().getIdentifier().isPresent(), - "missing identifier in AFTER MATCH SKIP TO FIRST"); - skipTo = - "AFTER MATCH SKIP TO FIRST " - + formatExpression(node.getAfterMatchSkipTo().get().getIdentifier().get()); - break; - default: - throw new IllegalStateException( - "unexpected skipTo: " + node.getAfterMatchSkipTo().get()); - } - append(indent + 1, skipTo).append("\n"); - } - append(indent + 1, "PATTERN (").append(formatPattern(node.getPattern())).append(")\n"); - if (!node.getSubsets().isEmpty()) { - append(indent + 1, "SUBSET"); - formatDefinitionList( - node.getSubsets().stream() - .map( - subset -> - formatExpression(subset.getName()) - + " = " - + subset.getIdentifiers().stream() - .map(ExpressionFormatter::formatExpression) - .collect(joining(", ", "(", ")"))) - .collect(toImmutableList()), - indent + 2); - } - append(indent + 1, "DEFINE"); - formatDefinitionList( - node.getVariableDefinitions().stream() - .map( - variable -> - formatExpression(variable.getName()) - + " AS " - + formatExpression(variable.getExpression())) - .collect(toImmutableList()), - indent + 2); - - builder.append(")"); - - return null; - } - - private void processRelationSuffix(Relation relation, Integer indent) { - if ((relation instanceof AliasedRelation) - || (relation instanceof PatternRecognitionRelation)) { - builder.append("( "); - process(relation, indent + 1); - append(indent, ")"); - } else { - process(relation, indent); - } - } - - @Override - protected Void visitValues(Values node, Integer indent) { - builder.append(" VALUES "); - - boolean first = true; - for (Expression row : node.getRows()) { - builder.append("\n").append(indentString(indent)).append(first ? " " : ", "); - - builder.append(formatExpression(row)); - first = false; - } - builder.append('\n'); - - return null; - } - - @Override - protected Void visitTableSubquery(TableSubquery node, Integer indent) { - builder.append('(').append('\n'); - - process(node.getQuery(), indent + 1); - - append(indent, ") "); - - return null; - } - - @Override - protected Void visitUnion(Union node, Integer indent) { - Iterator relations = node.getRelations().iterator(); - - while (relations.hasNext()) { - processRelation(relations.next(), indent); - - if (relations.hasNext()) { - builder.append("UNION "); - if (!node.isDistinct()) { - builder.append("ALL "); - } - } - } - - return null; - } - - @Override - protected Void visitExcept(Except node, Integer indent) { - processRelation(node.getLeft(), indent); - - builder.append("EXCEPT "); - if (!node.isDistinct()) { - builder.append("ALL "); - } - - processRelation(node.getRight(), indent); - - return null; - } - - @Override - protected Void visitIntersect(Intersect node, Integer indent) { - Iterator relations = node.getRelations().iterator(); - - while (relations.hasNext()) { - processRelation(relations.next(), indent); - - if (relations.hasNext()) { - builder.append("INTERSECT "); - if (!node.isDistinct()) { - builder.append("ALL "); - } - } - } - - return null; - } - - @Override - protected Void visitExplain(Explain node, Integer indent) { - builder.append("EXPLAIN "); - - builder.append("\n"); - - process(node.getStatement(), indent); - - return null; - } - - @Override - protected Void visitCopyTo(CopyTo node, Integer context) { - builder.append("COPY\n"); - builder.append("(\n"); - process(node.getQueryStatement(), context); - builder.append("\n) "); - builder.append("TO "); - builder.append('\''); - builder.append(node.getTargetFileName()); - builder.append('\''); - builder.append("\n"); - builder.append(node.getOptions().toString()); - return null; - } - - @Override - protected Void visitExplainAnalyze(ExplainAnalyze node, Integer indent) { - builder.append("EXPLAIN ANALYZE"); - if (node.isVerbose()) { - builder.append(" VERBOSE"); - } - builder.append("\n"); - - process(node.getStatement(), indent); - - return null; - } - - @Override - protected Void visitShowDB(ShowDB node, Integer indent) { - builder.append("SHOW DATABASE"); - - return null; - } - - @Override - protected Void visitShowTables(final ShowTables node, final Integer indent) { - builder.append("SHOW TABLES"); - - if (node.isDetails()) { - builder.append(" DETAILS"); - } - - node.getDbName().ifPresent(db -> builder.append(" FROM ").append(formatName(db))); - - return null; - } - - @Override - protected Void visitShowFunctions(ShowFunctions node, Integer indent) { - builder.append("SHOW FUNCTIONS"); - - return null; - } - - @Override - protected Void visitShowCurrentSqlDialect(ShowCurrentSqlDialect node, Integer context) { - builder.append(node.toString()); - return null; - } - - @Override - protected Void visitShowCurrentDatabase(ShowCurrentDatabase node, Integer context) { - builder.append(node.toString()); - return null; - } - - @Override - protected Void visitShowCurrentUser(ShowCurrentUser node, Integer context) { - builder.append(node.toString()); - return null; - } - - @Override - protected Void visitShowVersion(ShowVersion node, Integer context) { - builder.append(node.toString()); - return null; - } - - @Override - protected Void visitShowVariables(ShowVariables node, Integer context) { - builder.append(node.toString()); - return null; - } - - @Override - protected Void visitShowClusterId(ShowClusterId node, Integer context) { - builder.append(node.toString()); - return null; - } - - @Override - protected Void visitShowCurrentTimestamp(ShowCurrentTimestamp node, Integer context) { - builder.append(node.toString()); - return null; - } - - @Override - protected Void visitDelete(final Delete node, final Integer indent) { - builder.append("DELETE FROM ").append(formatName(node.getTable().getName())); - - node.getWhere().ifPresent(where -> builder.append(" WHERE ").append(formatExpression(where))); - - return null; - } - - @Override - protected Void visitCreateDB(final CreateDB node, final Integer indent) { - builder.append("CREATE DATABASE "); - if (node.exists()) { - builder.append("IF NOT EXISTS "); - } - builder.append(node.getDbName()).append(" "); - - builder.append(formatPropertiesMultiLine(node.getProperties())); - - return null; - } - - @Override - protected Void visitAlterDB(final AlterDB node, final Integer indent) { - builder.append("ALTER DATABASE "); - if (node.exists()) { - builder.append("IF EXISTS "); - } - builder.append(node.getDbName()).append(" "); - - builder.append(formatPropertiesMultiLine(node.getProperties())); - - return null; - } - - @Override - protected Void visitDropDB(final DropDB node, final Integer indent) { - builder.append("DROP DATABASE "); - if (node.isExists()) { - builder.append("IF EXISTS "); - } - builder.append(formatName(node.getDbName())); - return null; - } - - @Override - protected Void visitCreateTable(final CreateTable node, final Integer indent) { - builder.append("CREATE TABLE "); - if (node.isIfNotExists()) { - builder.append("IF NOT EXISTS "); - } - final String tableName = formatName(node.getName()); - builder.append(tableName).append(" (\n"); - - final String elementIndent = indentString(indent + 1); - final String columnList = - node.getElements().stream() - .map( - element -> { - if (element != null) { - return elementIndent + formatColumnDefinition(element); - } - - throw new UnsupportedOperationException("unknown table element: " + element); - }) - .collect(joining(",\n")); - builder.append(columnList); - builder.append("\n").append(")"); - - node.getCharsetName().ifPresent(charset -> builder.append(" CHARSET ").append(charset)); - - if (Objects.nonNull(node.getComment())) { - builder.append(" COMMENT '").append(node.getComment()).append("'"); - } - - builder.append(formatPropertiesMultiLine(node.getProperties())); - - return null; - } - - @Override - protected Void visitCreateView(final CreateView node, final Integer indent) { - builder.append("CREATE "); - if (node.isReplace()) { - builder.append("OR REPLACE "); - } - builder.append("VIEW "); - final String tableName = formatName(node.getName()); - builder.append(tableName).append(" (\n"); - - final String elementIndent = indentString(indent + 1); - final String columnList = - node.getElements().stream() - .map( - element -> { - if (element != null) { - return elementIndent + formatColumnDefinition(element); - } - - throw new UnsupportedOperationException("unknown table element: " + element); - }) - .collect(joining(",\n")); - builder.append(columnList); - builder.append("\n").append(")"); - - if (Objects.nonNull(node.getComment())) { - builder.append(" COMMENT '").append(node.getComment()).append("'"); - } - - if (node.isRestrict()) { - builder.append(" RESTRICT"); - } - - builder.append(formatPropertiesMultiLine(node.getProperties())); - - builder.append(" AS ").append(node.getPrefixPath().toString()); - - return null; - } - - private String formatPropertiesMultiLine(List properties) { - if (properties.isEmpty()) { - return ""; - } - - String propertyList = - properties.stream() - .map( - element -> - INDENT - + formatName(element.getName()) - + " = " - + (element.isSetToDefault() - ? "DEFAULT" - : formatExpression(element.getNonDefaultValue()))) - .collect(joining(",\n")); - - return "\nWITH (\n" + propertyList + "\n)"; - } - - private String formatPropertiesSingleLine(List properties) { - if (properties.isEmpty()) { - return ""; - } - - return " WITH ( " + joinProperties(properties) + " )"; - } - - private String formatColumnDefinition(ColumnDefinition column) { - StringBuilder stringBuilder = - new StringBuilder() - .append(formatName(column.getName())) - .append(" ") - .append(column.getType()) - .append(" ") - .append(column.getColumnCategory()); - - column - .getCharsetName() - .ifPresent(charset -> stringBuilder.append(" CHARSET ").append(charset)); - - if (Objects.nonNull(column.getComment())) { - stringBuilder.append(" COMMENT '").append(column.getComment()).append("'"); - } - return stringBuilder.toString(); - } - - @Override - protected Void visitDropTable(final DropTable node, final Integer indent) { - builder.append("DROP"); - builder.append(node.isView() ? " VIEW " : " TABLE "); - if (node.isExists()) { - builder.append("IF EXISTS "); - } - builder.append(formatName(node.getTableName())); - - return null; - } - - @Override - protected Void visitRenameTable(final RenameTable node, final Integer indent) { - builder.append("ALTER"); - builder.append(node.isView() ? " VIEW " : " TABLE "); - if (node.tableIfExists()) { - builder.append("IF EXISTS "); - } - - builder - .append(formatName(node.getSource())) - .append(" RENAME TO ") - .append(formatName(node.getTarget())); - - return null; - } - - @Override - protected Void visitSetProperties(final SetProperties node, final Integer context) { - final SetProperties.Type type = node.getType(); - builder.append("ALTER "); - switch (type) { - case TABLE: - builder.append("TABLE "); - case MATERIALIZED_VIEW: - builder.append("MATERIALIZED VIEW "); - case TREE_VIEW: - builder.append("VIEW "); - } - if (node.ifExists()) { - builder.append("IF EXISTS "); - } - - builder - .append(formatName(node.getName())) - .append(" SET PROPERTIES ") - .append(joinProperties(node.getProperties())); - - return null; - } - - private String joinProperties(List properties) { - return properties.stream() - .map( - element -> - formatName(element.getName()) - + " = " - + (element.isSetToDefault() - ? "DEFAULT" - : formatExpression(element.getNonDefaultValue()))) - .collect(joining(", ")); - } - - @Override - protected Void visitRenameColumn(RenameColumn node, Integer indent) { - builder.append("ALTER"); - builder.append(node.isView() ? " VIEW " : " TABLE "); - if (node.tableIfExists()) { - builder.append("IF EXISTS "); - } - - builder.append(formatName(node.getTable())).append("RENAME COLUMN "); - if (node.columnIfExists()) { - builder.append("IF EXISTS "); - } - - builder - .append(formatName(node.getSource())) - .append(" TO ") - .append(formatName(node.getTarget())); - - return null; - } - - @Override - protected Void visitDropColumn(final DropColumn node, final Integer indent) { - builder.append("ALTER"); - builder.append(node.isView() ? " VIEW " : " TABLE "); - if (node.tableIfExists()) { - builder.append("IF EXISTS "); - } - - builder.append(formatName(node.getTable())).append("DROP COLUMN "); - if (node.columnIfExists()) { - builder.append("IF EXISTS "); - } - - builder.append(formatName(node.getField())); - - return null; - } - - @Override - protected Void visitAddColumn(final AddColumn node, final Integer indent) { - builder.append("ALTER"); - builder.append(node.isView() ? " VIEW " : " TABLE "); - if (node.tableIfExists()) { - builder.append("IF EXISTS "); - } - - builder.append(formatName(node.getTableName())).append("ADD COLUMN "); - if (node.columnIfNotExists()) { - builder.append("IF NOT EXISTS "); - } - - builder.append(formatColumnDefinition(node.getColumn())); - - return null; - } - - @Override - protected Void visitSetTableComment(final SetTableComment node, final Integer indent) { - builder - .append("COMMENT ON") - .append(node.isView() ? " VIEW " : " TABLE ") - .append(formatName(node.getTableName())) - .append(" IS ") - .append(node.getComment()); - return null; - } - - @Override - protected Void visitSetColumnComment(final SetColumnComment node, final Integer indent) { - builder - .append("COMMENT ON COLUMN ") - .append(formatName(node.getTable())) - .append(".") - .append(formatName(node.getField())) - .append(" IS ") - .append(node.getComment()); - return null; - } - - @Override - protected Void visitInsert(Insert node, Integer indent) { - builder.append("INSERT INTO ").append(formatName(node.getTarget())); - - node.getColumns() - .ifPresent( - columns -> builder.append(" (").append(Joiner.on(", ").join(columns)).append(")")); - - builder.append("\n"); - - process(node.getQuery(), indent); - - return null; - } - - @Override - protected Void visitUpdate(Update node, Integer indent) { - builder.append("UPDATE ").append(formatName(node.getTable().getName())).append(" SET"); - int setCounter = node.getAssignments().size() - 1; - for (UpdateAssignment assignment : node.getAssignments()) { - builder - .append("\n") - .append(indentString(indent + 1)) - .append(((Identifier) assignment.getName()).getValue()) - .append(" = ") - .append(formatExpression(assignment.getValue())); - if (setCounter > 0) { - builder.append(","); - } - setCounter--; - } - node.getWhere() - .ifPresent( - where -> - builder - .append("\n") - .append(indentString(indent)) - .append("WHERE ") - .append(formatExpression(where))); - return null; - } - - @Override - protected Void visitRow(Row node, Integer indent) { - builder.append("ROW("); - boolean firstItem = true; - for (Expression item : node.getItems()) { - if (!firstItem) { - builder.append(", "); - } - process(item, indent); - firstItem = false; - } - builder.append(")"); - return null; - } - - @Override - protected Void visitCreateFunction(CreateFunction node, Integer indent) { - builder - .append("CREATE FUNCTION ") - .append(node.getUdfName()) - .append(" AS ") - .append(node.getClassName()); - node.getUriString().ifPresent(uri -> builder.append(" USING URI ").append(uri)); - return null; - } - - @Override - protected Void visitDropFunction(DropFunction node, Integer indent) { - builder.append("DROP FUNCTION "); - builder.append(node.getUdfName()); - return null; - } - - @Override - protected Void visitLoadTsFile(final LoadTsFile node, final Integer indent) { - builder.append("LOAD "); - builder.append("\"" + node.getFilePath() + "\""); - builder.append(" \n"); - - if (!node.getLoadAttributes().isEmpty()) { - builder - .append("WITH (") - .append("\n") - .append( - node.getLoadAttributes().entrySet().stream() - .map( - entry -> - indentString(1) - + "\"" - + entry.getKey() - + "\" = \"" - + entry.getValue() - + "\"") - .collect(joining(", " + "\n"))) - .append(")\n"); - } - return null; - } - - @Override - protected Void visitCreatePipe(CreatePipe node, Integer context) { - builder.append("CREATE PIPE "); - if (node.hasIfNotExistsCondition()) { - builder.append("IF NOT EXISTS "); - } - builder.append(node.getPipeName()); - builder.append(" \n"); - - if (!node.getSourceAttributes().isEmpty()) { - builder - .append("WITH SOURCE (") - .append("\n") - .append( - node.getSourceAttributes().entrySet().stream() - .map( - entry -> - indentString(1) - + "\"" - + entry.getKey() - + "\" = \"" - + entry.getValue() - + "\"") - .collect(joining(", " + "\n"))) - .append(")\n"); - } - - if (!node.getProcessorAttributes().isEmpty()) { - builder - .append("WITH PROCESSOR (") - .append("\n") - .append( - node.getProcessorAttributes().entrySet().stream() - .map( - entry -> - indentString(1) - + "\"" - + entry.getKey() - + "\" = \"" - + entry.getValue() - + "\"") - .collect(joining(", " + "\n"))) - .append(")\n"); - } - - if (!node.getSinkAttributes().isEmpty()) { - builder - .append("WITH SINK (") - .append("\n") - .append( - node.getSinkAttributes().entrySet().stream() - .map( - entry -> - indentString(1) - + "\"" - + entry.getKey() - + "\" = \"" - + entry.getValue() - + "\"") - .collect(joining(", " + "\n"))) - .append(")"); - } - - return null; - } - - @Override - protected Void visitAlterPipe(AlterPipe node, Integer context) { - builder.append("ALTER PIPE "); - if (node.hasIfExistsCondition()) { - builder.append("IF EXISTS "); - } - builder.append(node.getPipeName()); - builder.append(" \n"); - - builder - .append(node.isReplaceAllExtractorAttributes() ? "REPLACE" : "MODIFY") - .append(" SOURCE (") - .append("\n") - .append( - node.getExtractorAttributes().entrySet().stream() - .map( - entry -> - indentString(1) - + "\"" - + entry.getKey() - + "\" = \"" - + entry.getValue() - + "\"") - .collect(joining(", " + "\n"))) - .append(")\n"); - - builder - .append(node.isReplaceAllProcessorAttributes() ? "REPLACE" : "MODIFY") - .append(" PROCESSOR (") - .append("\n") - .append( - node.getProcessorAttributes().entrySet().stream() - .map( - entry -> - indentString(1) - + "\"" - + entry.getKey() - + "\" = \"" - + entry.getValue() - + "\"") - .collect(joining(", " + "\n"))) - .append(")\n"); - - builder - .append(node.isReplaceAllConnectorAttributes() ? "REPLACE" : "MODIFY") - .append(" SINK (") - .append("\n") - .append( - node.getConnectorAttributes().entrySet().stream() - .map( - entry -> - indentString(1) - + "\"" - + entry.getKey() - + "\" = \"" - + entry.getValue() - + "\"") - .collect(joining(", " + "\n"))) - .append(")"); - - return null; - } - - @Override - protected Void visitDropPipe(DropPipe node, Integer context) { - builder.append("DROP PIPE "); - if (node.hasIfExistsCondition()) { - builder.append("IF EXISTS "); - } - builder.append(node.getPipeName()); - - return null; - } - - @Override - protected Void visitStartPipe(StartPipe node, Integer context) { - builder.append("START PIPE ").append(node.getPipeName()); - - return null; - } - - @Override - protected Void visitStopPipe(StopPipe node, Integer context) { - builder.append("STOP PIPE ").append(node.getPipeName()); - - return null; - } - - @Override - protected Void visitShowPipes(ShowPipes node, Integer context) { - builder.append("SHOW PIPES"); - - // TODO: consider pipeName and hasWhereClause in node - - return null; - } - - @Override - protected Void visitCreatePipePlugin(CreatePipePlugin node, Integer context) { - builder.append("CREATE PIPEPLUGIN "); - if (node.hasIfNotExistsCondition()) { - builder.append("IF NOT EXISTS "); - } - builder.append(node.getPluginName()); - builder.append("\n"); - - builder.append("AS \""); - builder.append(node.getClassName()); - builder.append("\"\n"); - - builder.append("USING URI \""); - builder.append(node.getUriString()); - builder.append("\""); - - return null; - } - - @Override - protected Void visitDropPipePlugin(DropPipePlugin node, Integer context) { - builder.append("DROP PIPEPLUGIN "); - if (node.hasIfExistsCondition()) { - builder.append("IF EXISTS "); - } - builder.append(node.getPluginName()); - - return null; - } - - @Override - protected Void visitShowPipePlugins(ShowPipePlugins node, Integer context) { - builder.append("SHOW PIPEPLUGINS"); - - return null; - } - - @Override - protected Void visitCreateTopic(CreateTopic node, Integer context) { - builder.append("CREATE TOPIC "); - if (node.hasIfNotExistsCondition()) { - builder.append("IF NOT EXISTS "); - } - builder.append(node.getTopicName()); - builder.append(" \n"); - - if (!node.getTopicAttributes().isEmpty()) { - builder - .append("WITH (") - .append("\n") - .append( - node.getTopicAttributes().entrySet().stream() - .map( - entry -> - indentString(1) - + "\"" - + entry.getKey() - + "\" = \"" - + entry.getValue() - + "\"") - .collect(joining(", " + "\n"))) - .append(")\n"); - } - - return null; - } - - @Override - protected Void visitDropTopic(DropTopic node, Integer context) { - builder.append("DROP TOPIC "); - if (node.hasIfExistsCondition()) { - builder.append("IF EXISTS "); - } - builder.append(node.getTopicName()); - - return null; - } - - @Override - protected Void visitShowTopics(ShowTopics node, Integer context) { - if (Objects.isNull(node.getTopicName())) { - builder.append("SHOW TOPICS"); - } else { - builder.append("SHOW TOPIC ").append(node.getTopicName()); - } - - return null; - } - - @Override - protected Void visitShowSubscriptions(ShowSubscriptions node, Integer context) { - if (Objects.isNull(node.getTopicName())) { - builder.append("SHOW SUBSCRIPTIONS"); - } else { - builder.append("SHOW SUBSCRIPTIONS ON ").append(node.getTopicName()); - } - - return null; - } - - @Override - protected Void visitDropSubscription(DropSubscription node, Integer context) { - builder.append("DROP SUBSCRIPTION "); - if (node.hasIfExistsCondition()) { - builder.append("IF EXISTS "); - } - builder.append(node.getSubscriptionId()); - - return null; - } - - @Override - protected Void visitRelationalAuthorPlan(RelationalAuthorStatement node, Integer context) { - switch (node.getAuthorType()) { - case GRANT_USER_ANY: - builder.append( - "GRANT " - + node.getPrivilegesString() - + " ON ANY" - + " TO USER " - + node.getUserName() - + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); - break; - case GRANT_USER_ALL: - builder.append( - "GRANT ALL TO USER " - + node.getUserName() - + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); - break; - case GRANT_USER_DB: - builder.append( - "GRANT " - + node.getPrivilegesString() - + " ON DATABASE " - + node.getDatabase() - + " TO USER " - + node.getUserName() - + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); - break; - case GRANT_USER_SYS: - builder.append( - "GRANT " - + node.getPrivilegesString() - + " TO USER " - + node.getUserName() - + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); - break; - case GRANT_USER_TB: - builder.append( - "GRANT " - + node.getPrivilegesString() - + " ON TABLE " - + node.getDatabase() - + "." - + node.getTableName() - + " TO USER " - + node.getUserName() - + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); - break; - case GRANT_ROLE_ANY: - builder.append( - "GRANT " - + node.getPrivilegesString() - + " ON ANY" - + " TO ROLE " - + node.getRoleName() - + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); - break; - case GRANT_ROLE_ALL: - builder.append( - "GRANT ALL TO ROLE " - + node.getRoleName() - + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); - break; - case GRANT_ROLE_DB: - builder.append( - "GRANT " - + node.getPrivilegesString() - + " ON DATABASE " - + node.getDatabase() - + " TO ROLE " - + node.getRoleName() - + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); - break; - case GRANT_ROLE_SYS: - builder.append( - "GRANT " - + node.getPrivilegesString() - + " TO ROLE " - + node.getRoleName() - + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); - break; - case GRANT_ROLE_TB: - builder.append( - "GRANT " - + node.getPrivilegesString() - + " ON TABLE " - + node.getDatabase() - + "." - + node.getTableName() - + " TO ROLE " - + node.getRoleName() - + (node.isGrantOption() ? " WITH GRANT OPTION" : "")); - break; - case REVOKE_USER_ANY: - builder.append( - "REVOKE " - + (node.isGrantOption() ? "GRANT OPTION FOR " : "") - + node.getPrivilegesString() - + " ON ANY FROM USER " - + node.getUserName()); - break; - case REVOKE_USER_ALL: - builder.append( - "REVOKE" - + (node.isGrantOption() ? "GRANT OPTION FOR ALL" : "ALL") - + " FROM USER " - + node.getUserName()); - break; - case REVOKE_USER_DB: - builder.append( - "REVOKE " - + (node.isGrantOption() ? "GRANT OPTION FOR " : "") - + node.getPrivilegesString() - + " ON DATABASE " - + node.getDatabase() - + " FROM USER " - + node.getUserName()); - break; - case REVOKE_USER_SYS: - builder.append( - "REVOKE " - + (node.isGrantOption() ? "GRANT OPTION FOR " : "") - + node.getPrivilegesString() - + "FROM USER " - + node.getUserName()); - break; - case REVOKE_USER_TB: - builder.append( - "REVOKE " - + (node.isGrantOption() ? "GRANT OPTION FOR " : "") - + node.getPrivilegesString() - + " ON TABLE " - + node.getDatabase() - + "." - + node.getTableName() - + " FROM USER " - + node.getUserName()); - break; - case REVOKE_ROLE_ANY: - builder.append( - "REVOKE " - + (node.isGrantOption() ? "GRANT OPTION FOR " : "") - + node.getPrivilegesString() - + " ON ANY FROM ROLE " - + node.getRoleName()); - break; - case REVOKE_ROLE_ALL: - builder.append( - "REVOKE " - + (node.isGrantOption() ? "GRANT OPTION FOR ALL" : "ALL") - + " FROM ROLE " - + node.getRoleName()); - break; - case REVOKE_ROLE_DB: - builder.append( - "REVOKE " - + (node.isGrantOption() ? "GRANT OPTION FOR " : "") - + node.getPrivilegesString() - + " ON DATABASE " - + node.getDatabase() - + " FROM ROLE " - + node.getRoleName()); - break; - case REVOKE_ROLE_SYS: - builder.append( - "REVOKE " - + (node.isGrantOption() ? "GRANT OPTION FOR " : "") - + node.getPrivilegesString() - + " FROM ROLE " - + node.getRoleName()); - break; - case REVOKE_ROLE_TB: - builder.append( - "REVOKE " - + (node.isGrantOption() ? "GRANT OPTION FOR " : "") - + node.getPrivilegesString() - + " ON TABLE " - + node.getDatabase() - + "." - + node.getTableName() - + " FROM ROLE " - + node.getRoleName()); - break; - case GRANT_USER_ROLE: - builder.append("GRANT ROLE " + node.getRoleName() + " TO " + node.getUserName()); - break; - case REVOKE_USER_ROLE: - builder.append("REVOKE ROLE " + node.getRoleName() + " FROM " + node.getUserName()); - break; - case CREATE_USER: - builder.append("CREATE USER " + node.getUserName()); - break; - case CREATE_ROLE: - builder.append("CREATE ROLE " + node.getRoleName()); - break; - case UPDATE_USER: - builder.append("ALTER USER " + node.getUserName() + " SET PASSWORD"); - break; - case LIST_USER: - builder.append("LIST USER "); - break; - case LIST_ROLE: - builder.append("LIST ROLE "); - break; - case LIST_USER_PRIV: - builder.append("LIST PRIVILEGES OF USER " + node.getUserName()); - break; - case LIST_ROLE_PRIV: - builder.append("LIST PRIVILEGES OF ROLE " + node.getRoleName()); - break; - case DROP_ROLE: - builder.append("DROP ROLE " + node.getRoleName()); - break; - case DROP_USER: - builder.append("DROP USER " + node.getUserName()); - break; - default: - break; - } - return null; - } - - private void appendBeginLabel(Optional label) { - label.ifPresent(value -> builder.append(formatName(value)).append(": ")); - } - - private void processRelation(Relation relation, Integer indent) { - // TODO: handle this properly - if (relation instanceof Table) { - builder.append("TABLE ").append(formatName(((Table) relation).getName())).append('\n'); - } else { - process(relation, indent); - } - } - - private SqlBuilder append(int indent, String value) { - return builder.append(indentString(indent)).append(value); - } - - private static String indentString(int indent) { - return Strings.repeat(INDENT, indent); - } - - private void formatDefinitionList(List elements, int indent) { - if (elements.size() == 1) { - builder.append(" ").append(getOnlyElement(elements)).append("\n"); - } else { - builder.append("\n"); - for (int i = 0; i < elements.size() - 1; i++) { - append(indent, elements.get(i)).append(",\n"); - } - append(indent, elements.get(elements.size() - 1)).append("\n"); - } - } - - private void appendAliasColumns(Formatter.SqlBuilder builder, List columns) { - if ((columns != null) && !columns.isEmpty()) { - String formattedColumns = - columns.stream().map(SqlFormatter::formatName).collect(joining(", ")); - - builder.append(" (").append(formattedColumns).append(')'); - } - } - - @Override - public Void visitTableFunctionInvocation(TableFunctionInvocation node, Integer indent) { - append(indent, "TABLE("); - appendTableFunctionInvocation(node, indent + 1); - builder.append(")"); - return null; - } - - private void appendTableFunctionInvocation(TableFunctionInvocation node, Integer indent) { - builder.append(formatName(node.getName())).append("(\n"); - appendTableFunctionArguments(node.getArguments(), indent + 1); - builder.append(")"); - } - - private void appendTableFunctionArguments(List arguments, int indent) { - for (int i = 0; i < arguments.size(); i++) { - TableFunctionArgument argument = arguments.get(i); - if (argument.getName().isPresent()) { - append(indent, formatName(argument.getName().get())); - builder.append(" => "); - } else { - append(indent, ""); - } - Node value = argument.getValue(); - if (value instanceof Expression) { - builder.append(formatExpression((Expression) value)); - } else { - process(value, indent + 1); - } - if (i < arguments.size() - 1) { - builder.append(",\n"); - } - } - } - - @Override - public Void visitTableArgument(TableFunctionTableArgument node, Integer indent) { - Relation relation = node.getTable(); - Node unaliased = - relation instanceof AliasedRelation - ? ((AliasedRelation) relation).getRelation() - : relation; - if (unaliased instanceof TableSubquery) { - // unpack the relation from TableSubquery to avoid adding another pair of parentheses - unaliased = ((TableSubquery) unaliased).getQuery(); - } - builder.append("TABLE("); - process(unaliased, indent); - builder.append(")"); - if (relation instanceof AliasedRelation) { - AliasedRelation aliasedRelation = (AliasedRelation) relation; - builder.append(" AS ").append(formatName(aliasedRelation.getAlias())); - appendAliasColumns(builder, aliasedRelation.getColumnNames()); - } - if (node.getPartitionBy().isPresent()) { - builder.append("\n"); - append(indent, "PARTITION BY ") - .append( - node.getPartitionBy().get().stream() - .map(SqlFormatter::formatExpression) - .collect(joining(", "))); - } - node.getOrderBy() - .ifPresent( - orderBy -> { - builder.append("\n"); - append(indent, formatOrderBy(orderBy)); - }); - - return null; - } - } -} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeCoercion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeCoercion.java index 8f243ef4b0fce..b838bed9555f1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeCoercion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeCoercion.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.type; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignature; + import org.apache.tsfile.read.common.type.Type; import java.util.function.Function; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/NodeUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/NodeUtils.java index b7518d2411517..042b8c9b4487f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/NodeUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/NodeUtils.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.utils; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OrderBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/ClusterScheduler.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/ClusterScheduler.java index d4b4263e407e5..9eedde8ca7414 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/ClusterScheduler.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/ClusterScheduler.java @@ -18,6 +18,7 @@ */ package org.apache.iotdb.db.queryengine.plan.scheduler; +import org.apache.iotdb.calc.metric.QueryExecutionMetricSet; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.client.IClientManager; @@ -26,7 +27,6 @@ import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.execution.QueryStateMachine; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInfo; -import org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet; import org.apache.iotdb.db.queryengine.plan.analyze.QueryType; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; @@ -42,7 +42,7 @@ import java.util.concurrent.Future; import java.util.concurrent.ScheduledExecutorService; -import static org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet.WAIT_FOR_DISPATCH; +import static org.apache.iotdb.calc.metric.QueryExecutionMetricSet.WAIT_FOR_DISPATCH; /** * QueryScheduler is used to dispatch the fragment instances of a query to target nodes. And it will diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/FragmentInstanceDispatcherImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/FragmentInstanceDispatcherImpl.java index c52f8f94eb2a7..b8c47425db80e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/FragmentInstanceDispatcherImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/FragmentInstanceDispatcherImpl.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.scheduler; +import org.apache.iotdb.calc.metric.QueryExecutionMetricSet; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.common.rpc.thrift.TSStatus; @@ -29,6 +30,7 @@ import org.apache.iotdb.commons.conf.CommonConfig; import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.consensus.ConsensusGroupId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics; import org.apache.iotdb.commons.utils.RetryUtils; import org.apache.iotdb.consensus.exception.ConsensusGroupNotExistException; @@ -39,12 +41,10 @@ import org.apache.iotdb.db.queryengine.execution.executor.RegionExecutionResult; import org.apache.iotdb.db.queryengine.execution.executor.RegionReadExecutor; import org.apache.iotdb.db.queryengine.execution.executor.RegionWriteExecutor; -import org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.analyze.QueryType; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; import org.apache.iotdb.db.queryengine.plan.planner.plan.SubPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableSchemaQuerySuccessfulCallbackVisitor; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableSchemaQueryWriteVisitor; import org.apache.iotdb.db.utils.SetThreadName; @@ -77,7 +77,7 @@ import java.util.stream.Collectors; import static com.google.common.util.concurrent.Futures.immediateFuture; -import static org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet.DISPATCH_READ; +import static org.apache.iotdb.calc.metric.QueryExecutionMetricSet.DISPATCH_READ; public class FragmentInstanceDispatcherImpl implements IFragInstanceDispatcher { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/load/LoadTsFileDispatcherImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/load/LoadTsFileDispatcherImpl.java index 87fc8f2e5eff0..3dcef495815a9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/load/LoadTsFileDispatcherImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/load/LoadTsFileDispatcherImpl.java @@ -31,14 +31,14 @@ import org.apache.iotdb.commons.consensus.DataRegionId; import org.apache.iotdb.commons.consensus.index.ProgressIndex; import org.apache.iotdb.commons.consensus.index.ProgressIndexType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.load.LoadFileException; import org.apache.iotdb.db.exception.mpp.FragmentInstanceDispatchException; import org.apache.iotdb.db.pipe.agent.PipeDataNodeAgent; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; import org.apache.iotdb.db.queryengine.plan.planner.plan.SubPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.load.LoadSingleTsFileNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.load.LoadTsFilePieceNode; import org.apache.iotdb.db.queryengine.plan.scheduler.FragInstanceDispatchResult; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/Statement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/Statement.java index 0b2ecff6b5bc5..69d2887262d2c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/Statement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/Statement.java @@ -61,8 +61,8 @@ public boolean isQuery() { public abstract List getPaths(); - public org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement toRelationalStatement( - final MPPQueryContext context) { + public org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement + toRelationalStatement(final MPPQueryContext context) { throw new UnsupportedOperationException("Method not implemented yet"); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/FillComponent.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/FillComponent.java index 9b59269136d68..b7f635ac24030 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/FillComponent.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/FillComponent.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.statement.component; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.plan.statement.StatementNode; import org.apache.iotdb.db.queryengine.plan.statement.literal.Literal; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/IntoComponent.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/IntoComponent.java index 00bd6f01b0a5a..eecb667be54ca 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/IntoComponent.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/IntoComponent.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.statement.component; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.statement.StatementNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertBaseStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertBaseStatement.java index d8786e33959a5..5c0153145cc2a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertBaseStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertBaseStatement.java @@ -19,21 +19,21 @@ package org.apache.iotdb.db.queryengine.plan.statement.crud; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.commons.schema.view.LogicalViewSchema; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.metadata.DataTypeMismatchException; import org.apache.iotdb.db.exception.metadata.DuplicateInsertException; import org.apache.iotdb.db.exception.metadata.PathNotExistException; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.pipe.resource.memory.InsertNodeMemoryEstimator; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.schema.ISchemaValidation; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import org.apache.iotdb.db.schemaengine.schemaregion.attribute.update.UpdateDetailContainer; import org.apache.iotdb.db.utils.CommonUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertMultiTabletsStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertMultiTabletsStatement.java index efccf2719ff42..0ccd115fb2e9c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertMultiTabletsStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertMultiTabletsStatement.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.queryengine.plan.statement.crud; import org.apache.iotdb.commons.conf.CommonDescriptor; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.schema.ISchemaValidation; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertRowStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertRowStatement.java index 1cb5abed66ef5..168f7c7ccc4a0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertRowStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertRowStatement.java @@ -19,23 +19,23 @@ package org.apache.iotdb.db.queryengine.plan.statement.crud; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; import org.apache.iotdb.commons.conf.IoTDBConstant; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.commons.schema.view.LogicalViewSchema; import org.apache.iotdb.commons.utils.TimePartitionUtils; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.metadata.DataTypeMismatchException; import org.apache.iotdb.db.exception.metadata.PathNotExistException; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.pipe.resource.memory.InsertNodeMemoryEstimator; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.schematree.IMeasurementSchemaInfo; import org.apache.iotdb.db.queryengine.plan.analyze.schema.ISchemaValidation; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRow; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; import org.apache.iotdb.db.queryengine.plan.statement.StatementVisitor; import org.apache.iotdb.db.utils.CommonUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertRowsOfOneDeviceStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertRowsOfOneDeviceStatement.java index 3336695ff0e86..e4052e505607c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertRowsOfOneDeviceStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertRowsOfOneDeviceStatement.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.statement.crud; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.utils.TimePartitionUtils; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.schema.ISchemaValidation; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertRowsStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertRowsStatement.java index 0dc884ea110a4..01f07a6c75403 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertRowsStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertRowsStatement.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.statement.crud; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.schema.ISchemaValidation; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRows; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; import org.apache.iotdb.db.queryengine.plan.statement.StatementVisitor; import org.apache.iotdb.db.schemaengine.schemaregion.attribute.update.UpdateDetailContainer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertTabletStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertTabletStatement.java index 12369d81bfd30..b155b5b635e1a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertTabletStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/InsertTabletStatement.java @@ -22,13 +22,16 @@ import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.commons.schema.view.LogicalViewSchema; import org.apache.iotdb.commons.utils.TimePartitionUtils; import org.apache.iotdb.db.exception.metadata.DataTypeMismatchException; import org.apache.iotdb.db.exception.metadata.PathNotExistException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.pipe.resource.memory.InsertNodeMemoryEstimator; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.schematree.IMeasurementSchemaInfo; @@ -36,10 +39,7 @@ import org.apache.iotdb.db.queryengine.plan.analyze.schema.ISchemaValidation; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertTabletNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertTablet; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; import org.apache.iotdb.db.queryengine.plan.statement.StatementVisitor; import org.apache.iotdb.db.utils.CommonUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/LoadTsFileStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/LoadTsFileStatement.java index e45603a14f92f..a9b7ca100d05b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/LoadTsFileStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/LoadTsFileStatement.java @@ -370,8 +370,8 @@ public List getPaths() { @TableModel @Override - public org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement toRelationalStatement( - MPPQueryContext context) { + public org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement + toRelationalStatement(MPPQueryContext context) { final Map loadAttributes = new HashMap<>(); loadAttributes.put(DATABASE_LEVEL_KEY, String.valueOf(databaseLevel)); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/QueryStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/QueryStatement.java index d966903abd392..7d47057d0bd01 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/QueryStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/crud/QueryStatement.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.statement.crud; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.execution.operator.window.WindowType; import org.apache.iotdb.db.queryengine.execution.operator.window.ainode.InferenceWindow; import org.apache.iotdb.db.queryengine.plan.analyze.ExpressionAnalyzer; @@ -55,7 +55,7 @@ import java.util.Map; import java.util.Set; -import static org.apache.iotdb.db.utils.constant.SqlConstant.COUNT_TIME; +import static org.apache.iotdb.calc.utils.constant.SqlConstant.COUNT_TIME; /** * Base class of SELECT statement. diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/literal/BinaryLiteral.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/literal/BinaryLiteral.java index eb18bcc3d1947..733cfb08c9e2f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/literal/BinaryLiteral.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/literal/BinaryLiteral.java @@ -18,7 +18,7 @@ */ package org.apache.iotdb.db.queryengine.plan.statement.literal; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.utils.Binary; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/CreateContinuousQueryStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/CreateContinuousQueryStatement.java index a6261377c8c48..07394e324a1bb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/CreateContinuousQueryStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/CreateContinuousQueryStatement.java @@ -20,9 +20,9 @@ package org.apache.iotdb.db.queryengine.plan.statement.metadata; import org.apache.iotdb.commons.cq.TimeoutPolicy; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.analyze.PredicateUtils; import org.apache.iotdb.db.queryengine.plan.analyze.QueryType; import org.apache.iotdb.db.queryengine.plan.statement.IConfigStatement; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/view/CreateLogicalViewStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/view/CreateLogicalViewStatement.java index e1a122b081620..04c8eccad1878 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/view/CreateLogicalViewStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/view/CreateLogicalViewStatement.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.statement.metadata.view; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression; import org.apache.iotdb.db.exception.metadata.view.UnsupportedViewException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.analyze.SelectIntoUtils; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/pipe/PipeEnrichedStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/pipe/PipeEnrichedStatement.java index c9c125a981efa..3298df0086e6f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/pipe/PipeEnrichedStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/pipe/PipeEnrichedStatement.java @@ -77,8 +77,8 @@ public List getPaths() { @TableModel @Override - public org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement toRelationalStatement( - final MPPQueryContext context) { + public org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement + toRelationalStatement(final MPPQueryContext context) { final PipeEnriched pipeEnriched = new PipeEnriched(innerStatement.toRelationalStatement(context)); if (pipeEnriched.getInnerStatement() instanceof InsertRows) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/SetConfigurationStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/SetConfigurationStatement.java index 58e15e59cefc6..23aaa25acb563 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/SetConfigurationStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/SetConfigurationStatement.java @@ -21,8 +21,8 @@ import org.apache.iotdb.commons.auth.entity.PrivilegeType; import org.apache.iotdb.commons.conf.ConfigurationFileUtils; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.analyze.QueryType; import org.apache.iotdb.db.queryengine.plan.statement.IConfigStatement; import org.apache.iotdb.db.queryengine.plan.statement.Statement; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/SetSqlDialectStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/SetSqlDialectStatement.java index 391301934fecd..ba1469752b90a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/SetSqlDialectStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/SetSqlDialectStatement.java @@ -20,7 +20,7 @@ package org.apache.iotdb.db.queryengine.plan.statement.sys; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.protocol.session.IClientSession; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; import org.apache.iotdb.db.queryengine.plan.analyze.QueryType; import org.apache.iotdb.db.queryengine.plan.statement.IConfigStatement; import org.apache.iotdb.db.queryengine.plan.statement.Statement; @@ -31,13 +31,13 @@ import java.util.Objects; public class SetSqlDialectStatement extends Statement implements IConfigStatement { - private final IClientSession.SqlDialect sqlDialect; + private final SqlDialect sqlDialect; - public SetSqlDialectStatement(IClientSession.SqlDialect sqlDialect) { + public SetSqlDialectStatement(SqlDialect sqlDialect) { this.sqlDialect = sqlDialect; } - public IClientSession.SqlDialect getSqlDialect() { + public SqlDialect getSqlDialect() { return sqlDialect; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/TreeUDFUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/TreeUDFUtils.java index f04cfe08a0aa1..fcfe39cd1b37b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/TreeUDFUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/TreeUDFUtils.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.udf; +import org.apache.iotdb.commons.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.udf.api.UDAF; import org.apache.iotdb.udf.api.UDTF; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java index 5e45c080ae3c9..02999d57b010f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.statistics; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.mpp.rpc.thrift.TFetchFragmentInstanceStatisticsResp; import org.apache.iotdb.mpp.rpc.thrift.TOperatorStatistics; import org.apache.iotdb.mpp.rpc.thrift.TQueryStatistics; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/api/LayerRowWindowReader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/api/LayerRowWindowReader.java index 327f90d10b166..4c369000152c4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/api/LayerRowWindowReader.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/api/LayerRowWindowReader.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.api; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.udf.api.access.RowWindow; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindow.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindow.java index caf44ad66dd26..dc595fd65203a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindow.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindow.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.adapter; +import org.apache.iotdb.calc.transformation.datastructure.row.ElasticSerializableRowList; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; -import org.apache.iotdb.db.queryengine.transformation.datastructure.row.ElasticSerializableRowList; import org.apache.iotdb.udf.api.access.Row; import org.apache.iotdb.udf.api.access.RowIterator; import org.apache.iotdb.udf.api.access.RowWindow; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindowIterator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindowIterator.java index 396b34f3f4008..9ee9ed4f7a4d1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindowIterator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindowIterator.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.adapter; -import org.apache.iotdb.db.queryengine.transformation.datastructure.row.ElasticSerializableRowList; +import org.apache.iotdb.calc.transformation.datastructure.row.ElasticSerializableRowList; import org.apache.iotdb.udf.api.access.Row; import org.apache.iotdb.udf.api.access.RowIterator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnRow.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnRow.java index a6ab722245725..6cfed15f75b99 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnRow.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnRow.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.adapter; +import org.apache.iotdb.calc.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.iotdb.commons.udf.utils.UDFBinaryTransformer; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.iotdb.udf.api.access.Row; import org.apache.iotdb.udf.api.type.Binary; import org.apache.iotdb.udf.api.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindow.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindow.java index 2aa00e1c8bbf5..ce006e76fe8b3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindow.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindow.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.adapter; +import org.apache.iotdb.calc.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.iotdb.udf.api.access.Row; import org.apache.iotdb.udf.api.access.RowIterator; import org.apache.iotdb.udf.api.access.RowWindow; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindowIterator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindowIterator.java index 007f23499c68a..b24d527ce0415 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindowIterator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindowIterator.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.adapter; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.ElasticSerializableTVList; +import org.apache.iotdb.calc.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.iotdb.udf.api.access.Row; import org.apache.iotdb.udf.api.access.RowIterator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/builder/EvaluationDAGBuilder.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/builder/EvaluationDAGBuilder.java index a404a63f8d31e..9e285c0d812fa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/builder/EvaluationDAGBuilder.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/builder/EvaluationDAGBuilder.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.builder; -import org.apache.iotdb.db.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.visitor.IntermediateLayerVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.dag.input.QueryDataSetInputLayer; import org.apache.iotdb.db.queryengine.transformation.dag.intermediate.IntermediateLayer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/input/ConstantInputReader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/input/ConstantInputReader.java index 14643a7b6ac50..28d4f2b2b9f2d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/input/ConstantInputReader.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/input/ConstantInputReader.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.input; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.YieldableState; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/input/QueryDataSetInputLayer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/input/QueryDataSetInputLayer.java index c42f3c8480b57..15b7d76f06208 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/input/QueryDataSetInputLayer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/input/QueryDataSetInputLayer.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.transformation.dag.input; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.transformation.datastructure.iterator.RowListForwardIterator; +import org.apache.iotdb.calc.transformation.datastructure.row.ElasticSerializableRowList; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.YieldableState; import org.apache.iotdb.db.queryengine.transformation.dag.memory.SafetyLine; import org.apache.iotdb.db.queryengine.transformation.dag.memory.SafetyLine.SafetyPile; -import org.apache.iotdb.db.queryengine.transformation.datastructure.iterator.RowListForwardIterator; -import org.apache.iotdb.db.queryengine.transformation.datastructure.row.ElasticSerializableRowList; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/input/TsBlockInputDataSet.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/input/TsBlockInputDataSet.java index 5cc8b083210be..7d61e2ccb11a8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/input/TsBlockInputDataSet.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/input/TsBlockInputDataSet.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.input; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.db.queryengine.transformation.api.YieldableState; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/ConstantIntermediateLayer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/ConstantIntermediateLayer.java index 72127aad5a56e..1d6408de77aa1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/ConstantIntermediateLayer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/ConstantIntermediateLayer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.intermediate; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.LayerRowWindowReader; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/IntermediateLayer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/IntermediateLayer.java index 149485ef3b5b5..13c73485ea801 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/IntermediateLayer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/IntermediateLayer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.intermediate; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.LayerRowWindowReader; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/MultiInputLayer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/MultiInputLayer.java index 78e0c7451b7c6..fc0bf8ba1ee0d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/MultiInputLayer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/MultiInputLayer.java @@ -19,7 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.intermediate; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.transformation.datastructure.iterator.RowListForwardIterator; +import org.apache.iotdb.calc.transformation.datastructure.row.ElasticSerializableRowList; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.LayerRowWindowReader; @@ -28,8 +30,6 @@ import org.apache.iotdb.db.queryengine.transformation.dag.input.IUDFInputDataSet; import org.apache.iotdb.db.queryengine.transformation.dag.util.LayerCacheUtils; import org.apache.iotdb.db.queryengine.transformation.datastructure.TVColumns; -import org.apache.iotdb.db.queryengine.transformation.datastructure.iterator.RowListForwardIterator; -import org.apache.iotdb.db.queryengine.transformation.datastructure.row.ElasticSerializableRowList; import org.apache.iotdb.db.utils.datastructure.TimeSelector; import org.apache.iotdb.udf.api.access.RowWindow; import org.apache.iotdb.udf.api.customizer.strategy.SessionTimeWindowAccessStrategy; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/SingleInputMultiReferenceLayer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/SingleInputMultiReferenceLayer.java index 2bf5f2b3eb84d..e272a1b99b946 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/SingleInputMultiReferenceLayer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/SingleInputMultiReferenceLayer.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.intermediate; +import org.apache.iotdb.calc.transformation.datastructure.iterator.TVListForwardIterator; +import org.apache.iotdb.calc.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.LayerRowWindowReader; @@ -28,8 +30,6 @@ import org.apache.iotdb.db.queryengine.transformation.dag.memory.SafetyLine.SafetyPile; import org.apache.iotdb.db.queryengine.transformation.dag.util.LayerCacheUtils; import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils; -import org.apache.iotdb.db.queryengine.transformation.datastructure.iterator.TVListForwardIterator; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.iotdb.db.queryengine.transformation.datastructure.util.ValueRecorder; import org.apache.iotdb.udf.api.access.RowWindow; import org.apache.iotdb.udf.api.customizer.strategy.SessionTimeWindowAccessStrategy; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/SingleInputSingleReferenceLayer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/SingleInputSingleReferenceLayer.java index e7d67c36349ce..928a2e68b53b1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/SingleInputSingleReferenceLayer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/intermediate/SingleInputSingleReferenceLayer.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.intermediate; +import org.apache.iotdb.calc.transformation.datastructure.iterator.TVListForwardIterator; +import org.apache.iotdb.calc.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.LayerRowWindowReader; @@ -26,8 +28,6 @@ import org.apache.iotdb.db.queryengine.transformation.dag.adapter.ElasticSerializableTVListBackedSingleColumnWindow; import org.apache.iotdb.db.queryengine.transformation.dag.util.LayerCacheUtils; import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils; -import org.apache.iotdb.db.queryengine.transformation.datastructure.iterator.TVListForwardIterator; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.iotdb.db.queryengine.transformation.datastructure.util.ValueRecorder; import org.apache.iotdb.udf.api.access.RowWindow; import org.apache.iotdb.udf.api.customizer.strategy.SessionTimeWindowAccessStrategy; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/memory/SafetyLine.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/memory/SafetyLine.java index e29038f061d54..317b60dbf52ab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/memory/SafetyLine.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/memory/SafetyLine.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.memory; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.ElasticSerializableTVList; +import org.apache.iotdb.calc.transformation.datastructure.tv.ElasticSerializableTVList; /** Tells the {@link ElasticSerializableTVList} if it is safe to remove a cache block. */ public class SafetyLine { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/ArithmeticBinaryTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/ArithmeticBinaryTransformer.java index 971d91a712f0b..0be2013b06ff9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/ArithmeticBinaryTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/ArithmeticBinaryTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/BinaryTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/BinaryTransformer.java index e1819be19f5b8..d166504182730 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/BinaryTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/BinaryTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.YieldableState; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.Transformer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareBinaryTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareBinaryTransformer.java index 7175c311df4bd..109e2f147f81a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareBinaryTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareBinaryTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareEqualToTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareEqualToTransformer.java index 9ae12add71c7f..0aa60cb166fc8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareEqualToTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareEqualToTransformer.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary; +import org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils; import org.apache.tsfile.block.column.Column; @@ -43,7 +43,8 @@ protected Evaluator constructNumberEvaluator() { @Override protected Evaluator constructTextEvaluator() { return (Column leftValues, int leftIndex, Column rightValues, int rightIndex) -> - TransformUtils.compare(leftValues.getBinary(leftIndex), rightValues.getBinary(rightIndex)) + CommonTransformUtils.compare( + leftValues.getBinary(leftIndex), rightValues.getBinary(rightIndex)) == 0; } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterEqualTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterEqualTransformer.java index 218a82c7f30ec..4373ae6030fcc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterEqualTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterEqualTransformer.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary; +import org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils; import org.apache.tsfile.block.column.Column; @@ -43,7 +43,8 @@ protected Evaluator constructNumberEvaluator() { @Override protected Evaluator constructTextEvaluator() { return (Column leftValues, int leftIndex, Column rightValues, int rightIndex) -> - TransformUtils.compare(leftValues.getBinary(leftIndex), rightValues.getBinary(rightIndex)) + CommonTransformUtils.compare( + leftValues.getBinary(leftIndex), rightValues.getBinary(rightIndex)) >= 0; } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterThanTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterThanTransformer.java index a25560965c117..2ebbb5960da7b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterThanTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterThanTransformer.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary; +import org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils; import org.apache.tsfile.block.column.Column; @@ -44,7 +44,8 @@ protected Evaluator constructNumberEvaluator() { @Override protected Evaluator constructTextEvaluator() { return (Column leftValues, int leftIndex, Column rightValues, int rightIndex) -> - TransformUtils.compare(leftValues.getBinary(leftIndex), rightValues.getBinary(rightIndex)) + CommonTransformUtils.compare( + leftValues.getBinary(leftIndex), rightValues.getBinary(rightIndex)) > 0; } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessEqualTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessEqualTransformer.java index 9f2783c6d44af..6c9492539db04 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessEqualTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessEqualTransformer.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary; +import org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils; import org.apache.tsfile.block.column.Column; @@ -43,7 +43,8 @@ protected Evaluator constructNumberEvaluator() { @Override protected Evaluator constructTextEvaluator() { return (Column leftValues, int leftIndex, Column rightValues, int rightIndex) -> - TransformUtils.compare(leftValues.getBinary(leftIndex), rightValues.getBinary(rightIndex)) + CommonTransformUtils.compare( + leftValues.getBinary(leftIndex), rightValues.getBinary(rightIndex)) <= 0; } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessThanTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessThanTransformer.java index ceebcb3326543..ef5f3d0a5e552 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessThanTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessThanTransformer.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary; +import org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils; import org.apache.tsfile.block.column.Column; @@ -44,7 +44,8 @@ protected Evaluator constructNumberEvaluator() { @Override protected Evaluator constructTextEvaluator() { return (Column leftValues, int leftIndex, Column rightValues, int rightIndex) -> - TransformUtils.compare(leftValues.getBinary(leftIndex), rightValues.getBinary(rightIndex)) + CommonTransformUtils.compare( + leftValues.getBinary(leftIndex), rightValues.getBinary(rightIndex)) < 0; } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareNonEqualTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareNonEqualTransformer.java index 2bcd252d16330..6e631e8da7483 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareNonEqualTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareNonEqualTransformer.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary; +import org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.write.UnSupportedDataTypeException; @@ -45,7 +45,8 @@ protected Evaluator constructNumberEvaluator() { @Override protected Evaluator constructTextEvaluator() { return (Column leftValues, int leftIndex, Column rightValues, int rightIndex) -> - TransformUtils.compare(leftValues.getBinary(leftIndex), rightValues.getBinary(rightIndex)) + CommonTransformUtils.compare( + leftValues.getBinary(leftIndex), rightValues.getBinary(rightIndex)) != 0; } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/MappableUDFQueryRowTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/MappableUDFQueryRowTransformer.java index 43d04643a2013..1929a639359a3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/MappableUDFQueryRowTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/MappableUDFQueryRowTransformer.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.multi; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.YieldableState; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.db.queryengine.transformation.dag.util.TypeUtils; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UDFQueryRowTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UDFQueryRowTransformer.java index d219332d0ad32..b8a235e2d9984 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UDFQueryRowTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UDFQueryRowTransformer.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.multi; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.YieldableState; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.db.queryengine.transformation.dag.util.TypeUtils; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UDFQueryRowWindowTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UDFQueryRowWindowTransformer.java index b0b9a438c7765..8981595b4d567 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UDFQueryRowWindowTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UDFQueryRowWindowTransformer.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.multi; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.db.queryengine.transformation.api.LayerRowWindowReader; import org.apache.iotdb.db.queryengine.transformation.api.YieldableState; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.db.queryengine.transformation.dag.util.TypeUtils; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UDFQueryTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UDFQueryTransformer.java index 7ba137fe356f2..d982ef86a8626 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UDFQueryTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UDFQueryTransformer.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.multi; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.Transformer; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.db.queryengine.transformation.dag.util.TypeUtils; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UniversalUDFQueryTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UniversalUDFQueryTransformer.java index 69e879656ddc2..c9ab59bd57a7e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UniversalUDFQueryTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/multi/UniversalUDFQueryTransformer.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.multi; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; +import org.apache.iotdb.calc.transformation.datastructure.iterator.TVListForwardIterator; +import org.apache.iotdb.calc.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.iotdb.db.queryengine.transformation.api.YieldableState; -import org.apache.iotdb.db.queryengine.transformation.dag.udf.UDTFExecutor; -import org.apache.iotdb.db.queryengine.transformation.datastructure.iterator.TVListForwardIterator; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/BetweenTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/BetweenTransformer.java index 1102976bf73fa..bb43bd6646f62 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/BetweenTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/BetweenTransformer.java @@ -21,8 +21,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.ternary; +import org.apache.iotdb.calc.transformation.dag.util.CommonTransformUtils; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; -import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils; import org.apache.tsfile.block.column.Column; @@ -68,10 +68,10 @@ protected Evaluator constructTextEvaluator() { int secondIndex, Column thirdValues, int thirdIndex) -> - ((TransformUtils.compare( + ((CommonTransformUtils.compare( firstValues.getBinary(firstIndex), secondValues.getBinary(secondIndex)) >= 0) - && (TransformUtils.compare( + && (CommonTransformUtils.compare( firstValues.getBinary(firstIndex), thirdValues.getBinary(thirdIndex)) <= 0)) ^ isNotBetween; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/CompareTernaryTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/CompareTernaryTransformer.java index 6e4515878332d..28b07c60365ca 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/CompareTernaryTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/CompareTernaryTransformer.java @@ -21,7 +21,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.ternary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/TernaryTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/TernaryTransformer.java index e2d8980a2c885..c95e9118c27ac 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/TernaryTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/TernaryTransformer.java @@ -21,7 +21,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.ternary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.YieldableState; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.Transformer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/ArithmeticNegationTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/ArithmeticNegationTransformer.java index 59b3dbbc8b636..e2b4b8fac7b37 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/ArithmeticNegationTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/ArithmeticNegationTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/InTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/InTransformer.java index 09cc6e76ad380..b95cdd44461cf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/InTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/InTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/IsNullTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/IsNullTransformer.java index aa6da69532a89..2c9310e480158 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/IsNullTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/IsNullTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/LikeTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/LikeTransformer.java index 80690826d74d6..9b34f58a0355a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/LikeTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/LikeTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/LogicNotTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/LogicNotTransformer.java index 50f9a9e55736f..eec6a290cf94f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/LogicNotTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/LogicNotTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/RegularTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/RegularTransformer.java index 61cfb15d82c93..fad993a6def28 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/RegularTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/RegularTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/TransparentTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/TransparentTransformer.java index da73f54bb64c9..f359423343025 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/TransparentTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/TransparentTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/UnaryTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/UnaryTransformer.java index f9a246ba30739..42e5ed47fd555 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/UnaryTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/UnaryTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.YieldableState; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.Transformer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/CastFunctionTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/CastFunctionTransformer.java index 195acb6de8527..b7c6b0945e50a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/CastFunctionTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/CastFunctionTransformer.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.scalar; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.helper.CastFunctionHelper; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.transformation.dag.util.CastFunctionUtils; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.UnaryTransformer; @@ -168,7 +168,7 @@ private Column[] castLongs(Column[] columns) { builder = new IntColumnBuilder(null, count); for (int i = 0; i < count; i++) { if (!isNulls[i]) { - builder.writeInt(CastFunctionHelper.castLongToInt(values[i])); + builder.writeInt(CastFunctionUtils.castLongToInt(values[i])); } else { builder.appendNull(); } @@ -244,7 +244,7 @@ private Column[] castFloats(Column[] columns) { builder = new IntColumnBuilder(null, count); for (int i = 0; i < count; i++) { if (!isNulls[i]) { - builder.writeInt(CastFunctionHelper.castFloatToInt(values[i])); + builder.writeInt(CastFunctionUtils.castFloatToInt(values[i])); } else { builder.appendNull(); } @@ -254,7 +254,7 @@ private Column[] castFloats(Column[] columns) { builder = new LongColumnBuilder(null, count); for (int i = 0; i < count; i++) { if (!isNulls[i]) { - builder.writeLong(CastFunctionHelper.castFloatToLong(values[i])); + builder.writeLong(CastFunctionUtils.castFloatToLong(values[i])); } else { builder.appendNull(); } @@ -320,7 +320,7 @@ private Column[] castDoubles(Column[] columns) { builder = new IntColumnBuilder(null, count); for (int i = 0; i < count; i++) { if (!isNulls[i]) { - builder.writeInt(CastFunctionHelper.castDoubleToInt(values[i])); + builder.writeInt(CastFunctionUtils.castDoubleToInt(values[i])); } else { builder.appendNull(); } @@ -330,7 +330,7 @@ private Column[] castDoubles(Column[] columns) { builder = new LongColumnBuilder(null, count); for (int i = 0; i < count; i++) { if (!isNulls[i]) { - builder.writeLong(CastFunctionHelper.castDoubleToLong(values[i])); + builder.writeLong(CastFunctionUtils.castDoubleToLong(values[i])); } else { builder.appendNull(); } @@ -340,7 +340,7 @@ private Column[] castDoubles(Column[] columns) { builder = new FloatColumnBuilder(null, count); for (int i = 0; i < count; i++) { if (!isNulls[i]) { - builder.writeFloat(CastFunctionHelper.castDoubleToFloat(values[i])); + builder.writeFloat(CastFunctionUtils.castDoubleToFloat(values[i])); } else { builder.appendNull(); } @@ -495,7 +495,7 @@ private Column[] castBinaries(Column[] columns) { for (int i = 0; i < count; i++) { if (!isNulls[i]) { String str = values[i].getStringValue(TSFileConfig.STRING_CHARSET); - builder.writeFloat(CastFunctionHelper.castTextToFloat(str)); + builder.writeFloat(CastFunctionUtils.castTextToFloat(str)); } else { builder.appendNull(); } @@ -506,7 +506,7 @@ private Column[] castBinaries(Column[] columns) { for (int i = 0; i < count; i++) { if (!isNulls[i]) { String str = values[i].getStringValue(TSFileConfig.STRING_CHARSET); - builder.writeDouble(CastFunctionHelper.castTextToDouble(str)); + builder.writeDouble(CastFunctionUtils.castTextToDouble(str)); } else { builder.appendNull(); } @@ -517,7 +517,7 @@ private Column[] castBinaries(Column[] columns) { for (int i = 0; i < count; i++) { if (!isNulls[i]) { String str = values[i].getStringValue(TSFileConfig.STRING_CHARSET); - builder.writeBoolean(CastFunctionHelper.castTextToBoolean(str)); + builder.writeBoolean(CastFunctionUtils.castTextToBoolean(str)); } else { builder.appendNull(); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/DiffFunctionTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/DiffFunctionTransformer.java index 03081f9206f1f..1dc16f6381195 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/DiffFunctionTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/DiffFunctionTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.scalar; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.UnaryTransformer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/RoundFunctionTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/RoundFunctionTransformer.java index 47e4261807730..9fb43cd40c513 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/RoundFunctionTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/RoundFunctionTransformer.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.scalar; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.UnaryTransformer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/SubStringFunctionColumnTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/SubStringFunctionColumnTransformer.java index 3ea2cbbce2a2a..d6e8be4dc9abe 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/SubStringFunctionColumnTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/SubStringFunctionColumnTransformer.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.transformer.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.UnaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/SubStringFunctionTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/SubStringFunctionTransformer.java index 71312657ce4c2..1bc5c1272c03f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/SubStringFunctionTransformer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/unary/scalar/SubStringFunctionTransformer.java @@ -30,7 +30,7 @@ import org.apache.tsfile.utils.BytesUtils; import org.apache.tsfile.write.UnSupportedDataTypeException; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.SubStringColumnTransformer.EMPTY_STRING; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.SubStringColumnTransformer.EMPTY_STRING; public class SubStringFunctionTransformer extends UnaryTransformer { private int beginPosition; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDAFInformationInferrer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDAFInformationInferrer.java index 9df49931bc8bd..ce5a49f8bd254 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDAFInformationInferrer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDAFInformationInferrer.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.udf; +import org.apache.iotdb.calc.transformation.dag.udf.UDFParametersFactory; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.udf.api.UDAF; import org.apache.iotdb.udf.api.customizer.config.UDAFConfigurations; import org.apache.iotdb.udf.api.customizer.parameter.UDFParameterValidator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDTFContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDTFContext.java index 771ecbd9b96ad..c9dd4bb0620a6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDTFContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDTFContext.java @@ -19,10 +19,11 @@ package org.apache.iotdb.db.queryengine.transformation.dag.udf; +import org.apache.iotdb.calc.service.AbstractTemporaryQueryDataFileService; +import org.apache.iotdb.calc.transformation.dag.udf.UDTFExecutor; import org.apache.iotdb.commons.udf.service.UDFClassLoaderManager; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; -import org.apache.iotdb.db.service.TemporaryQueryDataFileService; import java.time.ZoneId; import java.util.HashMap; @@ -52,7 +53,7 @@ public void finalizeUDFExecutors(String queryId) { } finally { UDFClassLoaderManager.getInstance().finalizeUDFQuery(queryId); // close and delete UDF temp files - TemporaryQueryDataFileService.getInstance().deregister(queryId); + AbstractTemporaryQueryDataFileService.getInstance().deregister(queryId); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDTFInformationInferrer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDTFInformationInferrer.java index 08b1e11c653ae..a20105b12abab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDTFInformationInferrer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDTFInformationInferrer.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.udf; +import org.apache.iotdb.calc.transformation.dag.udf.UDFParametersFactory; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.udf.api.UDTF; import org.apache.iotdb.udf.api.customizer.config.UDTFConfigurations; import org.apache.iotdb.udf.api.customizer.parameter.UDFParameterValidator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/LayerCacheUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/LayerCacheUtils.java index e63b01403c255..a42c906606d9d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/LayerCacheUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/LayerCacheUtils.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.transformation.dag.util; +import org.apache.iotdb.calc.transformation.datastructure.row.ElasticSerializableRowList; +import org.apache.iotdb.calc.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.api.YieldableState; import org.apache.iotdb.db.queryengine.transformation.dag.input.IUDFInputDataSet; -import org.apache.iotdb.db.queryengine.transformation.datastructure.row.ElasticSerializableRowList; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/TransformUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/TransformUtils.java index 015904399c201..6018a6c7181b9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/TransformUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/TransformUtils.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.util; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand; import org.apache.iotdb.db.queryengine.transformation.datastructure.util.ValueRecorder; import org.apache.iotdb.db.utils.CommonUtils; @@ -44,14 +44,6 @@ private TransformUtils() { throw new IllegalStateException("TransformUtils should not be instantiated."); } - public static int compare(Binary first, Binary second) { - if (Objects.requireNonNull(first) == Objects.requireNonNull(second)) { - return 0; - } - - return first.compareTo(second); - } - public static Column transformConstantOperandToColumn(ConstantOperand constantOperand) { Objects.requireNonNull(constantOperand); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/TypeUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/TypeUtils.java index c3d7d13b5113a..3042864f24360 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/TypeUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/TypeUtils.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.dag.util; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/attribute/update/GeneralRegionAttributeSecurityService.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/attribute/update/GeneralRegionAttributeSecurityService.java index 408cc1215900c..e564fc9ababcb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/attribute/update/GeneralRegionAttributeSecurityService.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/attribute/update/GeneralRegionAttributeSecurityService.java @@ -29,6 +29,7 @@ import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.consensus.SchemaRegionId; import org.apache.iotdb.commons.exception.StartupException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.service.AbstractPeriodicalServiceWithAdvance; import org.apache.iotdb.commons.service.IService; import org.apache.iotdb.commons.service.ServiceType; @@ -42,7 +43,6 @@ import org.apache.iotdb.db.protocol.client.dn.DnToDnInternalServiceAsyncRequestManager; import org.apache.iotdb.db.protocol.client.dn.DnToDnRequestType; import org.apache.iotdb.db.queryengine.execution.executor.RegionWriteExecutor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceAttributeCommitUpdateNode; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; import org.apache.iotdb.db.schemaengine.schemaregion.impl.SchemaRegionMemoryImpl; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionMemoryImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionMemoryImpl.java index 2e200cf8e8c55..270623b23ee27 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionMemoryImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/impl/SchemaRegionMemoryImpl.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.schemaengine.schemaregion.impl; +import org.apache.iotdb.calc.execution.relational.ColumnTransformerBuilder; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; import org.apache.iotdb.commons.consensus.SchemaRegionId; import org.apache.iotdb.commons.exception.MetadataException; @@ -26,6 +29,11 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.commons.schema.filter.SchemaFilterType; import org.apache.iotdb.commons.schema.node.role.IMeasurementMNode; @@ -43,21 +51,17 @@ import org.apache.iotdb.db.exception.metadata.SchemaDirCreationFailureException; import org.apache.iotdb.db.exception.metadata.SchemaQuotaExceededException; import org.apache.iotdb.db.exception.metadata.SeriesOverflowException; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.common.schematree.ClusterSchemaTree; import org.apache.iotdb.db.queryengine.execution.operator.schema.source.DeviceAttributeUpdater; import org.apache.iotdb.db.queryengine.execution.operator.schema.source.DeviceBlackListConstructor; import org.apache.iotdb.db.queryengine.execution.operator.schema.source.TableDeviceQuerySource; -import org.apache.iotdb.db.queryengine.execution.relational.ColumnTransformerBuilder; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanner; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.AlterEncodingCompressorNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.CreateTimeSeriesNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceSchemaCache; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.ConstructTableDevicesBlackListNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.DeleteTableDeviceNode; @@ -68,10 +72,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceAttributeUpdateNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableNodeLocationAddNode; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DeleteDevice; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.LeafColumnTransformer; import org.apache.iotdb.db.schemaengine.metric.ISchemaRegionMetric; import org.apache.iotdb.db.schemaengine.metric.SchemaRegionMemMetric; import org.apache.iotdb.db.schemaengine.rescon.DataNodeSchemaQuotaManager; @@ -156,7 +156,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; -import static org.apache.iotdb.db.queryengine.plan.planner.TableOperatorGenerator.makeLayout; +import static org.apache.iotdb.calc.plan.planner.TableOperatorGenerator.makeLayout; import static org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableDeviceSchemaFetcher.convertTagValuesToDeviceID; import static org.apache.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR; @@ -1574,8 +1574,7 @@ private DeviceAttributeUpdater constructDevicePredicateUpdater( ImmutableList.of(), 0, mockTypeProvider, - metadata, - null)) + metadata)) : null; final List filterOutputDataTypes = @@ -1602,8 +1601,7 @@ private DeviceAttributeUpdater constructDevicePredicateUpdater( filterOutputDataTypes, inputLocations.size(), mockTypeProvider, - metadata, - null); + metadata); final List attributeNames = updateNode.getAssignments().stream() diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/visitor/SchemaRegionPlanDeserializer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/visitor/SchemaRegionPlanDeserializer.java index 163ccb4e59de8..dfc91575a5797 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/visitor/SchemaRegionPlanDeserializer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/visitor/SchemaRegionPlanDeserializer.java @@ -23,8 +23,8 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathDeserializeUtil; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.AlterEncodingCompressorNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.ConstructTableDevicesBlackListNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/visitor/SchemaRegionPlanSerializer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/visitor/SchemaRegionPlanSerializer.java index b7b7d9758ca4b..b7fb1f0a7214f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/visitor/SchemaRegionPlanSerializer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/logfile/visitor/SchemaRegionPlanSerializer.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.schemaengine.schemaregion.logfile.visitor; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.AlterEncodingCompressorNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.ConstructTableDevicesBlackListNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/read/resp/reader/impl/TimeseriesReaderWithViewFetch.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/read/resp/reader/impl/TimeseriesReaderWithViewFetch.java index b4f37815d748e..da4790e104bde 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/read/resp/reader/impl/TimeseriesReaderWithViewFetch.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/read/resp/reader/impl/TimeseriesReaderWithViewFetch.java @@ -21,12 +21,12 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.common.NodeRef; import org.apache.iotdb.commons.schema.filter.SchemaFilter; import org.apache.iotdb.commons.schema.filter.SchemaFilterType; import org.apache.iotdb.commons.schema.tree.SchemaIterator; import org.apache.iotdb.commons.schema.view.LogicalViewSchema; import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression; -import org.apache.iotdb.db.queryengine.common.NodeRef; import org.apache.iotdb.db.queryengine.common.schematree.ISchemaTree; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceManager; import org.apache.iotdb.db.queryengine.plan.analyze.ExpressionTypeAnalyzer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/utils/ResourceByPathUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/utils/ResourceByPathUtils.java index adb76d9bbddc3..1f177864dd17b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/utils/ResourceByPathUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/utils/ResourceByPathUtils.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.schemaengine.schemaregion.utils; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; import org.apache.iotdb.commons.path.AlignedFullPath; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; import org.apache.iotdb.db.storageengine.dataregion.memtable.AlignedReadOnlyMemChunk; import org.apache.iotdb.db.storageengine.dataregion.memtable.AlignedWritableMemChunk; import org.apache.iotdb.db.storageengine.dataregion.memtable.AlignedWritableMemChunkGroup; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/view/visitor/TransformToExpressionVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/view/visitor/TransformToExpressionVisitor.java index 0b3bce049c26d..622a62b06c753 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/view/visitor/TransformToExpressionVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/view/visitor/TransformToExpressionVisitor.java @@ -73,6 +73,14 @@ import org.apache.iotdb.db.queryengine.plan.expression.leaf.NullOperand; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimestampOperand; +import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; +import org.apache.iotdb.db.queryengine.plan.expression.ternary.BetweenExpression; +import org.apache.iotdb.db.queryengine.plan.expression.unary.InExpression; +import org.apache.iotdb.db.queryengine.plan.expression.unary.IsNullExpression; +import org.apache.iotdb.db.queryengine.plan.expression.unary.LikeExpression; +import org.apache.iotdb.db.queryengine.plan.expression.unary.LogicNotExpression; +import org.apache.iotdb.db.queryengine.plan.expression.unary.NegationExpression; +import org.apache.iotdb.db.queryengine.plan.expression.unary.RegularExpression; import org.apache.tsfile.utils.Pair; @@ -134,21 +142,19 @@ public Expression visitUnaryExpression(UnaryViewExpression unaryViewExpression, @Override public Expression visitInExpression(InViewExpression inExpression, Void context) { Expression child = this.process(inExpression.getExpression(), context); - return new org.apache.iotdb.db.queryengine.plan.expression.unary.InExpression( - child, inExpression.isNotIn(), inExpression.getValuesInLinkedHashSet()); + return new InExpression(child, inExpression.isNotIn(), inExpression.getValuesInLinkedHashSet()); } @Override public Expression visitIsNullExpression(IsNullViewExpression isNullExpression, Void context) { Expression child = this.process(isNullExpression.getExpression(), context); - return new org.apache.iotdb.db.queryengine.plan.expression.unary.IsNullExpression( - child, isNullExpression.isNot()); + return new IsNullExpression(child, isNullExpression.isNot()); } @Override public Expression visitLikeExpression(LikeViewExpression likeExpression, Void context) { Expression child = this.process(likeExpression.getExpression(), context); - return new org.apache.iotdb.db.queryengine.plan.expression.unary.LikeExpression( + return new LikeExpression( child, likeExpression.getPattern(), likeExpression.getEscape(), likeExpression.isNot()); } @@ -156,20 +162,20 @@ public Expression visitLikeExpression(LikeViewExpression likeExpression, Void co public Expression visitLogicNotExpression( LogicNotViewExpression logicNotExpression, Void context) { Expression child = this.process(logicNotExpression.getExpression(), context); - return new org.apache.iotdb.db.queryengine.plan.expression.unary.LogicNotExpression(child); + return new LogicNotExpression(child); } @Override public Expression visitNegationExpression( NegationViewExpression negationExpression, Void context) { Expression child = this.process(negationExpression.getExpression(), context); - return new org.apache.iotdb.db.queryengine.plan.expression.unary.NegationExpression(child); + return new NegationExpression(child); } @Override public Expression visitRegularExpression(RegularViewExpression regularExpression, Void context) { Expression child = this.process(regularExpression.getExpression(), context); - return new org.apache.iotdb.db.queryengine.plan.expression.unary.RegularExpression( + return new RegularExpression( child, regularExpression.getPatternString(), regularExpression.getPattern(), @@ -307,8 +313,7 @@ public Expression visitBetweenExpression( Expression first = this.process(betweenViewExpression.getFirstExpression(), null); Expression second = this.process(betweenViewExpression.getSecondExpression(), null); Expression third = this.process(betweenViewExpression.getThirdExpression(), null); - return new org.apache.iotdb.db.queryengine.plan.expression.ternary.BetweenExpression( - first, second, third, betweenViewExpression.isNotBetween()); + return new BetweenExpression(first, second, third, betweenViewExpression.isNotBetween()); } // endregion @@ -321,7 +326,7 @@ public Expression visitFunctionExpression( for (ViewExpression viewExpression : viewExpressionList) { expressionList.add(this.process(viewExpression, null)); } - return new org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression( + return new FunctionExpression( functionViewExpression.getFunctionName(), functionViewExpression.getFunctionAttributes(), expressionList); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/table/DataNodeTableCache.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/table/DataNodeTableCache.java index 64fa5f34ac49b..e782914b76cf6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/table/DataNodeTableCache.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/table/DataNodeTableCache.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.schemaengine.table; +import org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils; import org.apache.iotdb.commons.schema.table.NonCommittableTsTable; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.TsTableInternalRPCUtil; @@ -27,7 +28,6 @@ import org.apache.iotdb.confignode.rpc.thrift.TFetchTableResp; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.plan.execution.config.executor.ClusterConfigTaskExecutor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; import org.apache.iotdb.rpc.TSStatusCode; import org.apache.tsfile.utils.Pair; @@ -334,7 +334,7 @@ public TsTable getTable(String database, final String tableName, final boolean f } final TsTable table = getTableInCache(database, tableName); if (Objects.isNull(table) && force) { - TableMetadataImpl.throwTableNotExistsException(database, tableName); + CommonMetadataUtils.throwTableNotExistsException(database, tableName); } return table; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/table/DataNodeTreeViewSchemaUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/table/DataNodeTreeViewSchemaUtils.java index 0d402d9b89d07..816e84a9509d0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/table/DataNodeTreeViewSchemaUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/table/DataNodeTreeViewSchemaUtils.java @@ -20,9 +20,9 @@ package org.apache.iotdb.db.schemaengine.table; import org.apache.iotdb.commons.exception.IoTDBException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.schema.table.TsTable; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.storageengine.dataregion.memtable.DeviceIDFactory; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/table/InformationSchemaUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/table/InformationSchemaUtils.java index 337b0ffd78fe3..cbc13532689a2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/table/InformationSchemaUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/table/InformationSchemaUtils.java @@ -21,13 +21,13 @@ import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.exception.IoTDBException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.exception.table.TableNotExistsException; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.commons.schema.table.TableType; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.common.header.DatasetHeaderFactory; import org.apache.iotdb.db.queryengine.plan.execution.config.ConfigTaskResult; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/DataNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/DataNode.java index 7004d09872db5..5db478c6a097d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/DataNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/DataNode.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.service; +import org.apache.iotdb.calc.service.AbstractTemporaryQueryDataFileService; import org.apache.iotdb.common.rpc.thrift.Model; import org.apache.iotdb.common.rpc.thrift.TConfigNodeLocation; import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType; @@ -45,6 +46,7 @@ import org.apache.iotdb.commons.exception.StartupException; import org.apache.iotdb.commons.pipe.agent.plugin.meta.PipePluginMeta; import org.apache.iotdb.commons.pipe.config.PipeConfig; +import org.apache.iotdb.commons.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.commons.service.JMXService; import org.apache.iotdb.commons.service.RegisterManager; import org.apache.iotdb.commons.service.ServiceType; @@ -95,7 +97,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.distribution.DistributionPlanContext; import org.apache.iotdb.db.queryengine.plan.planner.distribution.SourceRewriter; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.db.schemaengine.SchemaEngine; import org.apache.iotdb.db.schemaengine.schemaregion.attribute.update.GeneralRegionAttributeSecurityService; import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; @@ -146,9 +147,9 @@ import java.util.stream.Collectors; import static org.apache.iotdb.commons.conf.IoTDBConstant.DEFAULT_CLUSTER_NAME; +import static org.apache.iotdb.commons.queryengine.utils.DateTimeUtils.initTimestampPrecision; import static org.apache.iotdb.commons.utils.StatusUtils.retrieveExitStatusCode; import static org.apache.iotdb.db.conf.IoTDBStartCheck.PROPERTIES_FILE_NAME; -import static org.apache.iotdb.db.utils.DateTimeUtils.initTimestampPrecision; public class DataNode extends ServerCommandLine implements DataNodeMBean { @@ -995,7 +996,7 @@ private boolean isUsingIoTConsensusV2() { } private void registerUdfServices() throws StartupException { - registerManager.register(TemporaryQueryDataFileService.getInstance()); + registerManager.register(AbstractTemporaryQueryDataFileService.getInstance()); registerManager.register(UDFClassLoaderManager.setupAndGetInstance(config.getUdfDir())); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/DataNodeTemporaryQueryDataFileServiceProvider.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/DataNodeTemporaryQueryDataFileServiceProvider.java new file mode 100644 index 0000000000000..63a79bfb87ecc --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/DataNodeTemporaryQueryDataFileServiceProvider.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.db.service; + +import org.apache.iotdb.calc.service.AbstractTemporaryQueryDataFileService; +import org.apache.iotdb.calc.service.ITemporaryQueryDataFileServiceProvider; + +public class DataNodeTemporaryQueryDataFileServiceProvider + implements ITemporaryQueryDataFileServiceProvider { + + @Override + public AbstractTemporaryQueryDataFileService getService() { + return TemporaryQueryDataFileService.getInstance(); + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/TemporaryQueryDataFileService.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/TemporaryQueryDataFileService.java index c8150ea929588..8cc142926b2f7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/TemporaryQueryDataFileService.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/TemporaryQueryDataFileService.java @@ -19,29 +19,12 @@ package org.apache.iotdb.db.service; -import org.apache.iotdb.commons.exception.StartupException; -import org.apache.iotdb.commons.file.SystemFileFactory; -import org.apache.iotdb.commons.service.IService; -import org.apache.iotdb.commons.service.ServiceType; +import org.apache.iotdb.calc.service.AbstractTemporaryQueryDataFileService; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.transformation.datastructure.SerializableList.SerializationRecorder; - -import org.apache.tsfile.external.commons.io.FileUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicLong; - -public class TemporaryQueryDataFileService implements IService { - private static final Logger logger = LoggerFactory.getLogger(TemporaryQueryDataFileService.class); +public class TemporaryQueryDataFileService extends AbstractTemporaryQueryDataFileService { private static final String TEMPORARY_FILE_DIR = IoTDBDescriptor.getInstance().getConfig().getSystemDir() @@ -50,89 +33,9 @@ public class TemporaryQueryDataFileService implements IService { + File.separator + "tmp"; - private final AtomicLong uniqueDataId; - private final Map> recorders; - - private TemporaryQueryDataFileService() { - uniqueDataId = new AtomicLong(0); - recorders = new ConcurrentHashMap<>(); - } - - public String register(SerializationRecorder recorder) throws IOException { - String queryId = recorder.getQueryId(); - recorders - .computeIfAbsent(queryId, k -> Collections.synchronizedList(new ArrayList<>())) - .add(recorder); - - String dirName = getDirName(queryId); - makeDirIfNecessary(dirName); - return getFileName(dirName, uniqueDataId.getAndIncrement()); - } - - public void deregister(String queryId) { - List recorderList = recorders.remove(queryId); - if (recorderList == null) { - return; - } - for (SerializationRecorder recorder : recorderList) { - try { - recorder.closeFile(); - } catch (IOException e) { - logger.warn( - String.format("Failed to close file in method deregister(%s), because %s", queryId, e)); - } - } - try { - FileUtils.deleteDirectory(SystemFileFactory.INSTANCE.getFile(getDirName(queryId))); - } catch (IOException e) { - logger.warn( - String.format("Failed to clean dir in method deregister(%s), because %s", queryId, e)); - } - } - - private void makeDirIfNecessary(String dir) throws IOException { - File file = SystemFileFactory.INSTANCE.getFile(dir); - if (file.exists() && file.isDirectory()) { - return; - } - FileUtils.forceMkdir(file); - } - - private String getDirName(String queryId) { - return TEMPORARY_FILE_DIR + File.separator + queryId + File.separator; - } - - private String getFileName(String dir, long index) { - return dir + index; - } - - @Override - public void start() throws StartupException { - try { - // Clean up stale temp directories left from previous runs (e.g., after a crash) - File tmpDir = SystemFileFactory.INSTANCE.getFile(TEMPORARY_FILE_DIR); - if (tmpDir.exists()) { - FileUtils.deleteDirectory(tmpDir); - } - makeDirIfNecessary(TEMPORARY_FILE_DIR); - } catch (IOException e) { - throw new StartupException(e); - } - } - - @Override - public void stop() { - recorders.clear(); - try { - FileUtils.deleteDirectory(SystemFileFactory.INSTANCE.getFile(TEMPORARY_FILE_DIR)); - } catch (IOException e) { - logger.warn("Failed to delete temp dir {}.", TEMPORARY_FILE_DIR, e); - } - } - @Override - public ServiceType getID() { - return ServiceType.TEMPORARY_QUERY_DATA_FILE_SERVICE; + protected String getTemporaryFileDir() { + return TEMPORARY_FILE_DIR; } public static TemporaryQueryDataFileService getInstance() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java index 2a99261f57d83..2183d6ac8812b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.service.metrics; +import org.apache.iotdb.calc.metric.QueryExecutionMetricSet; import org.apache.iotdb.commons.client.ClientManagerMetrics; import org.apache.iotdb.commons.concurrent.ThreadModule; import org.apache.iotdb.commons.concurrent.ThreadName; @@ -35,7 +36,6 @@ import org.apache.iotdb.db.queryengine.metric.DataExchangeCostMetricSet; import org.apache.iotdb.db.queryengine.metric.DataExchangeCountMetricSet; import org.apache.iotdb.db.queryengine.metric.DriverSchedulerMetricSet; -import org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet; import org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet; import org.apache.iotdb.db.queryengine.metric.QueryRelatedResourceMetricSet; import org.apache.iotdb.db.queryengine.metric.QueryResourceMetricSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java index 2ba061b0ea28a..dd61d7ddee6a1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.service.metrics; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.audit.UserEntity; import org.apache.iotdb.commons.client.IClientManager; @@ -26,18 +27,17 @@ import org.apache.iotdb.commons.concurrent.threadpool.ScheduledExecutorUtil; import org.apache.iotdb.commons.consensus.ConfigRegionId; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.confignode.rpc.thrift.TDatabaseSchema; import org.apache.iotdb.confignode.rpc.thrift.TGetDatabaseReq; import org.apache.iotdb.confignode.rpc.thrift.TShowDatabaseResp; import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.protocol.client.ConfigNodeClient; import org.apache.iotdb.db.protocol.client.ConfigNodeClientManager; import org.apache.iotdb.db.protocol.client.ConfigNodeInfo; import org.apache.iotdb.db.protocol.session.SessionManager; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.Coordinator; import org.apache.iotdb.db.queryengine.plan.analyze.ClusterPartitionFetcher; import org.apache.iotdb.db.queryengine.plan.analyze.IPartitionFetcher; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java index c65105ae54c8d..933efbae84ccb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java @@ -19,6 +19,9 @@ package org.apache.iotdb.db.storageengine.dataregion; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils; +import org.apache.iotdb.calc.utils.ObjectTypeUtils; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.client.exception.ClientManagerException; import org.apache.iotdb.commons.cluster.NodeStatus; @@ -30,6 +33,8 @@ import org.apache.iotdb.commons.file.SystemFileFactory; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.commons.schema.table.Audit; import org.apache.iotdb.commons.schema.table.InformationSchema; @@ -61,7 +66,6 @@ import org.apache.iotdb.db.exception.WriteProcessRejectException; import org.apache.iotdb.db.exception.load.LoadFileException; import org.apache.iotdb.db.exception.query.OutOfTTLException; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.exception.quota.ExceedQuotaException; import org.apache.iotdb.db.exception.runtime.TableLostRuntimeException; import org.apache.iotdb.db.pipe.consensus.deletion.DeletionResource; @@ -77,7 +81,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; import org.apache.iotdb.db.queryengine.metric.QueryResourceMetricSet; import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeTTLCache; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.ContinuousSameSearchIndexSeparatorNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertMultiTabletsNode; @@ -87,7 +90,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsOfOneDeviceNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalDeleteDataNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.LastCacheLoadStrategy; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TableDeviceSchemaCache; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.cache.TreeDeviceSchemaCacheManager; @@ -160,10 +162,8 @@ import org.apache.iotdb.db.tools.DelayAnalyzer; import org.apache.iotdb.db.tools.settle.TsFileAndModSettleTool; import org.apache.iotdb.db.utils.CommonUtils; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.iotdb.db.utils.EncryptDBUtils; import org.apache.iotdb.db.utils.ModificationUtils; -import org.apache.iotdb.db.utils.ObjectTypeUtils; import org.apache.iotdb.metrics.utils.MetricLevel; import org.apache.iotdb.rpc.RpcUtils; import org.apache.iotdb.rpc.TSStatusCode; @@ -1637,7 +1637,7 @@ private void registerToTsFile(InsertNode node, TsFileProcessor tsFileProcessor) .borrowClient(ConfigNodeInfo.CONFIG_REGION_ID)) { resp = client.describeTable(getDatabaseName(), tableName, false); if (resp == null || resp.tableInfo == null) { - TableMetadataImpl.throwTableNotExistsException(getDatabaseName(), tableName); + CommonMetadataUtils.throwTableNotExistsException(getDatabaseName(), tableName); } // For table schema from ConfigNode, we cannot get version info, // so we don't cache it to avoid version mismatch @@ -1649,7 +1649,7 @@ private void registerToTsFile(InsertNode node, TsFileProcessor tsFileProcessor) logger.error( "Remote request config node failed that judgment if table is exist, occur exception. {}", e.getMessage()); - TableMetadataImpl.throwTableNotExistsException(getDatabaseName(), tableName); + CommonMetadataUtils.throwTableNotExistsException(getDatabaseName(), tableName); return null; // unreachable, throwTableNotExistsException always throws } } else { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/IDataRegionForQuery.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/IDataRegionForQuery.java index b087ab2db544d..5b7205cb40edf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/IDataRegionForQuery.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/IDataRegionForQuery.java @@ -18,9 +18,9 @@ */ package org.apache.iotdb.db.storageengine.dataregion; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.common.DeviceContext; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; import org.apache.iotdb.db.storageengine.dataregion.read.IQueryDataSource; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/VirtualDataRegion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/VirtualDataRegion.java index 6ead0b2eed5e5..dd7eb2bee11bc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/VirtualDataRegion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/VirtualDataRegion.java @@ -18,8 +18,8 @@ */ package org.apache.iotdb.db.storageengine.dataregion; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.path.IFullPath; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.common.DeviceContext; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; import org.apache.iotdb.db.storageengine.dataregion.read.IQueryDataSource; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AbstractMemTable.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AbstractMemTable.java index bcd682435b295..e564d23007c46 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AbstractMemTable.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AbstractMemTable.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.storageengine.dataregion.memtable; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.AlignedFullPath; @@ -29,7 +30,6 @@ import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.DataTypeInconsistentException; import org.apache.iotdb.db.exception.WriteProcessException; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeDevicePathCache; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AbstractWritableMemChunk.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AbstractWritableMemChunk.java index 7a3233d58b638..0f78e0717c3b3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AbstractWritableMemChunk.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AbstractWritableMemChunk.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.storageengine.dataregion.memtable; +import org.apache.iotdb.calc.exception.MemoryNotEnoughException; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; import org.apache.iotdb.common.rpc.thrift.TSStatus; -import org.apache.iotdb.db.queryengine.exception.MemoryNotEnoughException; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.IWALByteBufferView; import org.apache.iotdb.db.utils.datastructure.BatchEncodeInfo; import org.apache.iotdb.db.utils.datastructure.TVList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/IMemTable.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/IMemTable.java index 58a490769819b..b988fc94185e4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/IMemTable.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/IMemTable.java @@ -18,12 +18,12 @@ */ package org.apache.iotdb.db.storageengine.dataregion.memtable; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.db.exception.DataTypeInconsistentException; import org.apache.iotdb.db.exception.WriteProcessException; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/ReadOnlyMemChunk.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/ReadOnlyMemChunk.java index f6fa9403c7b56..811a080c22f65 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/ReadOnlyMemChunk.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/ReadOnlyMemChunk.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.storageengine.dataregion.memtable; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java index cab286aa48fc1..d5c66afaae91d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.storageengine.dataregion.memtable; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.metric.QueryExecutionMetricSet; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IllegalPathException; @@ -34,12 +36,10 @@ import org.apache.iotdb.db.exception.TsFileProcessorException; import org.apache.iotdb.db.exception.WriteProcessException; import org.apache.iotdb.db.exception.WriteProcessRejectException; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.pipe.agent.PipeDataNodeAgent; import org.apache.iotdb.db.pipe.source.dataregion.realtime.listener.PipeInsertionDataNodeListener; import org.apache.iotdb.db.queryengine.common.DeviceContext; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; -import org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet; import org.apache.iotdb.db.queryengine.metric.QueryResourceMetricSet; import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeTTLCache; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; @@ -117,7 +117,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.Function; -import static org.apache.iotdb.db.queryengine.metric.QueryExecutionMetricSet.GET_QUERY_RESOURCE_FROM_MEM; +import static org.apache.iotdb.calc.metric.QueryExecutionMetricSet.GET_QUERY_RESOURCE_FROM_MEM; import static org.apache.iotdb.db.queryengine.metric.QueryResourceMetricSet.FLUSHING_MEMTABLE; import static org.apache.iotdb.db.queryengine.metric.QueryResourceMetricSet.WORKING_MEMTABLE; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TableDeletionEntry.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TableDeletionEntry.java index 61ec2e0d67854..952bcc2eaf6ec 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TableDeletionEntry.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TableDeletionEntry.java @@ -20,7 +20,7 @@ import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.IDPredicateType; import org.apache.iotdb.db.utils.ModificationUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TreeDeletionEntry.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TreeDeletionEntry.java index eefe86e78b322..05436a6c9be94 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TreeDeletionEntry.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/modification/TreeDeletionEntry.java @@ -23,9 +23,9 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternUtil; +import org.apache.iotdb.commons.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.commons.utils.PathUtils; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.queryengine.execution.MemoryEstimationHelper; import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeDevicePathCache; import org.apache.iotdb.db.storageengine.dataregion.modification.v1.Deletion; import org.apache.iotdb.db.utils.ModificationUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskAlignedChunkLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskAlignedChunkLoader.java index dff789bb98501..7c1e9d1263518 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskAlignedChunkLoader.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskAlignedChunkLoader.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.storageengine.dataregion.read.reader.chunk; +import org.apache.iotdb.calc.utils.ObjectTypeUtils; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; import org.apache.iotdb.db.queryengine.metric.SeriesScanCostMetricSet; import org.apache.iotdb.db.storageengine.buffer.ChunkCache; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileID; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; -import org.apache.iotdb.db.utils.ObjectTypeUtils; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.file.metadata.AbstractAlignedChunkMetadata; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskChunkLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskChunkLoader.java index da0779129c754..7d259a9e50534 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskChunkLoader.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskChunkLoader.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.storageengine.dataregion.read.reader.chunk; +import org.apache.iotdb.calc.utils.ObjectTypeUtils; import org.apache.iotdb.db.exception.ChunkTypeInconsistentException; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; import org.apache.iotdb.db.queryengine.metric.SeriesScanCostMetricSet; import org.apache.iotdb.db.storageengine.buffer.ChunkCache; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileID; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; -import org.apache.iotdb.db.utils.ObjectTypeUtils; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.file.MetaMarker; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/common/PriorityMergeReader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/common/PriorityMergeReader.java index 2f9cda7f30f76..26e86ccbb821d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/common/PriorityMergeReader.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/common/PriorityMergeReader.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.storageengine.dataregion.read.reader.common; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; import org.apache.tsfile.read.TimeValuePair; import org.apache.tsfile.read.reader.IPointReader; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/utils/tableDiskUsageIndex/DataRegionTableSizeQueryContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/utils/tableDiskUsageIndex/DataRegionTableSizeQueryContext.java index 6a8551ea147c3..f1a3fd8b9bc7c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/utils/tableDiskUsageIndex/DataRegionTableSizeQueryContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/utils/tableDiskUsageIndex/DataRegionTableSizeQueryContext.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.storageengine.dataregion.utils.tableDiskUsageIndex; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileID; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileManager; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALEntry.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALEntry.java index 4c0ff8809d260..4e1444a8f8136 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALEntry.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALEntry.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.storageengine.dataregion.wal.buffer; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.ContinuousSameSearchIndexSeparatorNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNode.java index 07dd4d78f6605..e9de32a1eb700 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNode.java @@ -21,13 +21,13 @@ import org.apache.iotdb.commons.consensus.DataRegionId; import org.apache.iotdb.commons.file.SystemFileFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; import org.apache.iotdb.consensus.common.request.IndexedConsensusRequest; import org.apache.iotdb.consensus.common.request.IoTConsensusRequest; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.ContinuousSameSearchIndexSeparatorNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/active/ActiveLoadPathHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/active/ActiveLoadPathHelper.java index 7c83f20f36903..81c40f212aac8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/active/ActiveLoadPathHelper.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/active/ActiveLoadPathHelper.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.storageengine.load.active; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.statement.crud.LoadTsFileStatement; import org.apache.iotdb.db.storageengine.load.config.LoadTsFileConfigurator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/config/LoadTsFileConfigurator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/config/LoadTsFileConfigurator.java index 4f0156ac0d3e3..f55b80336902c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/config/LoadTsFileConfigurator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/config/LoadTsFileConfigurator.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.storageengine.load.config; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.tsfile.external.commons.lang3.StringUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTableConvertedInsertTabletStatementExceptionVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTableConvertedInsertTabletStatementExceptionVisitor.java index 495f6ef266285..28dfafcbd414d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTableConvertedInsertTabletStatementExceptionVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTableConvertedInsertTabletStatementExceptionVisitor.java @@ -20,16 +20,16 @@ package org.apache.iotdb.db.storageengine.load.converter; import org.apache.iotdb.common.rpc.thrift.TSStatus; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.exception.auth.AccessDeniedException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; import org.apache.iotdb.db.exception.load.LoadRuntimeOutOfMemoryException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LoadTsFile; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; import org.apache.iotdb.rpc.TSStatusCode; public class LoadTableConvertedInsertTabletStatementExceptionVisitor - extends AstVisitor { + implements AstVisitor { @Override public TSStatus visitNode(final Node node, final Exception context) { if (context instanceof AccessDeniedException) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTableStatementDataTypeConvertExecutionVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTableStatementDataTypeConvertExecutionVisitor.java index 26a7ff6a4fb06..5a09a7eba9429 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTableStatementDataTypeConvertExecutionVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTableStatementDataTypeConvertExecutionVisitor.java @@ -42,7 +42,7 @@ import static org.apache.iotdb.db.storageengine.load.converter.LoadTreeStatementDataTypeConvertExecutionVisitor.handleTSStatus; public class LoadTableStatementDataTypeConvertExecutionVisitor - extends AstVisitor, String> { + implements AstVisitor, String> { private static final Logger LOGGER = LoggerFactory.getLogger(LoadTableStatementDataTypeConvertExecutionVisitor.class); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTreeConvertedInsertTabletStatementExceptionVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTreeConvertedInsertTabletStatementExceptionVisitor.java index 03b80bd812e6e..92445518f08b7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTreeConvertedInsertTabletStatementExceptionVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTreeConvertedInsertTabletStatementExceptionVisitor.java @@ -20,9 +20,9 @@ package org.apache.iotdb.db.storageengine.load.converter; import org.apache.iotdb.common.rpc.thrift.TSStatus; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.exception.auth.AccessDeniedException; import org.apache.iotdb.db.exception.load.LoadRuntimeOutOfMemoryException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.statement.StatementNode; import org.apache.iotdb.db.queryengine.plan.statement.StatementVisitor; import org.apache.iotdb.db.queryengine.plan.statement.crud.LoadTsFileStatement; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTsFileDataTypeConverter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTsFileDataTypeConverter.java index 383ac4a306497..3aab4aac29009 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTsFileDataTypeConverter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/load/converter/LoadTsFileDataTypeConverter.java @@ -21,6 +21,7 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.conf.IoTDBConstant; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.protocol.session.IClientSession; @@ -108,7 +109,7 @@ private TSStatus executeForTableModel(final Statement statement, final String da session.setUsername(AuthorityChecker.SUPER_USER); session.setClientVersion(IoTDBConstant.ClientVersion.V_1_0); session.setZoneId(ZoneId.systemDefault()); - session.setSqlDialect(IClientSession.SqlDialect.TABLE); + session.setSqlDialect(SqlDialect.TABLE); SESSION_MANAGER.registerSession(session); } else { @@ -161,7 +162,7 @@ private TSStatus executeForTreeModel(final Statement statement) { session.setUsername(AuthorityChecker.SUPER_USER); session.setClientVersion(IoTDBConstant.ClientVersion.V_1_0); session.setZoneId(ZoneId.systemDefault()); - session.setSqlDialect(IClientSession.SqlDialect.TREE); + session.setSqlDialect(SqlDialect.TREE); SESSION_MANAGER.registerSession(session); } else { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/IoTDBDataDirViewer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/IoTDBDataDirViewer.java index b850af9513ae2..856b98019bad1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/IoTDBDataDirViewer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/IoTDBDataDirViewer.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.tools; import org.apache.iotdb.commons.file.SystemFileFactory; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.tsfile.file.metadata.IDeviceID; import org.apache.tsfile.fileSystem.FSFactoryProducer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/TsFileResourcePrinter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/TsFileResourcePrinter.java index 530181fd1f321..123bdaeec886b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/TsFileResourcePrinter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/TsFileResourcePrinter.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.tools; import org.apache.iotdb.commons.file.SystemFileFactory; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; -import org.apache.iotdb.db.utils.DateTimeUtils; import org.apache.tsfile.file.metadata.IDeviceID; import org.apache.tsfile.fileSystem.FSFactoryProducer; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerFireVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerFireVisitor.java index 05843c2092aef..b3ff127079a83 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerFireVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerFireVisitor.java @@ -25,6 +25,7 @@ import org.apache.iotdb.commons.client.sync.SyncDataNodeInternalServiceClient; import org.apache.iotdb.commons.consensus.ConfigRegionId; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.trigger.TriggerInformation; import org.apache.iotdb.commons.trigger.TriggerTable; import org.apache.iotdb.commons.trigger.exception.TriggerExecutionException; @@ -34,7 +35,6 @@ import org.apache.iotdb.db.protocol.client.ConfigNodeClientManager; import org.apache.iotdb.db.protocol.client.ConfigNodeInfo; import org.apache.iotdb.db.queryengine.plan.Coordinator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeEnrichedInsertNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertMultiTabletsNode; @@ -69,7 +69,7 @@ import static org.apache.iotdb.commons.schema.table.Audit.includeByAuditTreeDB; -public class TriggerFireVisitor extends PlanVisitor { +public class TriggerFireVisitor implements PlanVisitor { private static final Logger LOGGER = LoggerFactory.getLogger(TriggerFireVisitor.class); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/CommonUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/CommonUtils.java index 784312f9f9cd2..bab65c1b94053 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/CommonUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/CommonUtils.java @@ -19,18 +19,19 @@ package org.apache.iotdb.db.utils; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.utils.constant.SqlConstant; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.commons.service.metric.MetricService; import org.apache.iotdb.commons.service.metric.enums.Metric; import org.apache.iotdb.commons.service.metric.enums.Tag; import org.apache.iotdb.commons.utils.CommonDateTimeUtils; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.protocol.thrift.OperationType; import org.apache.iotdb.db.queryengine.plan.execution.IQueryExecution; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; import org.apache.iotdb.db.queryengine.plan.statement.literal.BinaryLiteral; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.iotdb.metrics.utils.MetricLevel; import org.apache.iotdb.service.rpc.thrift.TSAggregationQueryReq; import org.apache.iotdb.service.rpc.thrift.TSFastLastDataQueryForOneDeviceReq; @@ -104,7 +105,8 @@ public static Object parseValue(TSDataType dataType, String value, ZoneId zoneId if (TypeInferenceUtils.isNumber(value)) { return Long.parseLong(value); } else { - return DateTimeUtils.parseDateTimeExpressionToLong(StringUtils.trim(value), zoneId); + return DataNodeDateTimeUtils.parseDateTimeExpressionToLong( + StringUtils.trim(value), zoneId); } } catch (Throwable e) { throw new NumberFormatException( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/DataNodeDateTimeUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/DataNodeDateTimeUtils.java new file mode 100644 index 0000000000000..fcee3bbf61d15 --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/DataNodeDateTimeUtils.java @@ -0,0 +1,259 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.db.utils; + +import org.apache.iotdb.commons.conf.CommonDescriptor; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; +import org.apache.iotdb.commons.utils.TestOnly; +import org.apache.iotdb.db.protocol.session.SessionManager; +import org.apache.iotdb.db.qp.sql.IoTDBSqlParser; +import org.apache.iotdb.db.qp.sql.SqlLexer; +import org.apache.iotdb.db.queryengine.plan.parser.ASTVisitor; +import org.apache.iotdb.db.queryengine.plan.parser.SqlParseError; + +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.CharStreams; +import org.antlr.v4.runtime.CommonTokenStream; +import org.antlr.v4.runtime.atn.PredictionMode; +import org.apache.tsfile.utils.TimeDuration; + +import java.time.ZoneId; +import java.util.Calendar; + +public class DataNodeDateTimeUtils { + public static Long parseDateTimeExpressionToLong(String dateExpression, ZoneId zoneId) { + ASTVisitor astVisitor = new ASTVisitor(); + astVisitor.setZoneId(zoneId); + + CharStream charStream1 = CharStreams.fromString(dateExpression); + + SqlLexer lexer1 = new SqlLexer(charStream1); + lexer1.removeErrorListeners(); + lexer1.addErrorListener(SqlParseError.INSTANCE); + + CommonTokenStream tokens1 = new CommonTokenStream(lexer1); + + IoTDBSqlParser parser1 = new IoTDBSqlParser(tokens1); + parser1.getInterpreter().setPredictionMode(PredictionMode.SLL); + parser1.removeErrorListeners(); + parser1.addErrorListener(SqlParseError.INSTANCE); + return astVisitor.parseDateExpression( + parser1.dateExpression(), DateTimeUtils.getTimestampPrecision()); + } + + /** convert duration string to millisecond, microsecond or nanosecond. */ + public static long convertDurationStrToLong( + long currentTime, long value, String unit, String timestampPrecision) { + DateTimeUtils.DurationUnit durationUnit = DateTimeUtils.DurationUnit.valueOf(unit); + long res = value; + switch (durationUnit) { + case y: + case year: + res *= 365 * 86_400_000L; + break; + case mo: + case month: + if (currentTime == -1) { + res *= 30 * 86_400_000L; + } else { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeZone(SessionManager.getInstance().getSessionTimeZone()); + calendar.setTimeInMillis(currentTime); + calendar.add(Calendar.MONTH, (int) (value)); + res = calendar.getTimeInMillis() - currentTime; + } + break; + case w: + case week: + res *= 7 * 86_400_000L; + break; + case d: + case day: + res *= 86_400_000L; + break; + case h: + case hour: + res *= 3_600_000L; + break; + case m: + case minute: + res *= 60_000L; + break; + case s: + case second: + res *= 1_000L; + break; + default: + break; + } + + if ("us".equals(timestampPrecision) || "microsecond".equals(timestampPrecision)) { + if (unit.equals(DateTimeUtils.DurationUnit.ns.toString()) + || unit.equals(DateTimeUtils.DurationUnit.nanosecond.toString())) { + return value / 1000; + } else if (unit.equals(DateTimeUtils.DurationUnit.us.toString()) + || unit.equals(DateTimeUtils.DurationUnit.microsecond.toString())) { + return value; + } else { + return res * 1000; + } + } else if ("ns".equals(timestampPrecision) || "nanosecond".equals(timestampPrecision)) { + if (unit.equals(DateTimeUtils.DurationUnit.ns.toString()) + || unit.equals(DateTimeUtils.DurationUnit.nanosecond.toString())) { + return value; + } else if (unit.equals(DateTimeUtils.DurationUnit.us.toString()) + || unit.equals(DateTimeUtils.DurationUnit.microsecond.toString())) { + return value * 1000; + } else { + return res * 1000_000; + } + } else { + if (unit.equals(DateTimeUtils.DurationUnit.ns.toString()) + || unit.equals(DateTimeUtils.DurationUnit.nanosecond.toString())) { + return value / 1000_000; + } else if (unit.equals(DateTimeUtils.DurationUnit.us.toString()) + || unit.equals(DateTimeUtils.DurationUnit.microsecond.toString())) { + return value / 1000; + } else { + return res; + } + } + } + + @TestOnly + public static long convertDurationStrToLongForTest( + long value, String unit, String timestampPrecision) { + return convertDurationStrToLong(-1, value, unit, timestampPrecision); + } + + /** + * convert duration string to time value. + * + * @param duration represent duration string like: 12d8m9ns, 1y1mo, etc. + * @param convertYearToMonth if we need convert year to month. eg: 1y -> 12mo + * @return time in milliseconds, microseconds, or nanoseconds depending on the profile + */ + public static long convertDurationStrToLong( + long currentTime, String duration, String timestampPrecision, boolean convertYearToMonth) { + long total = 0; + long temp = 0; + for (int i = 0; i < duration.length(); i++) { + char ch = duration.charAt(i); + if (Character.isDigit(ch)) { + temp *= 10; + temp += (ch - '0'); + } else { + String unit = String.valueOf(duration.charAt(i)); + // This is to identify units with two letters. + if (i + 1 < duration.length() && !Character.isDigit(duration.charAt(i + 1))) { + i++; + unit += duration.charAt(i); + } + unit = unit.toLowerCase(); + if (convertYearToMonth && unit.equals("y")) { + temp *= 12; + unit = "mo"; + } + total += + convertDurationStrToLong( + currentTime == -1 ? -1 : currentTime + total, temp, unit, timestampPrecision); + temp = 0; + } + } + return total; + } + + public static long convertDurationStrToLong( + long currentTime, String duration, boolean convertYearToMonth) { + return convertDurationStrToLong( + currentTime, + duration, + CommonDescriptor.getInstance().getConfig().getTimestampPrecision(), + convertYearToMonth); + } + + /** + * Convert duration string to time value. CurrentTime is used to calculate the days of natural + * month. If it's set as -1, which means a context free situation, then '1mo' will be thought as + * 30 days. + * + * @param duration represent duration string like: 12d8m9ns, 1y1mo, etc. + * @return time in milliseconds, microseconds, or nanoseconds depending on the profile + */ + public static long convertDurationStrToLong(String duration) { + return convertDurationStrToLong(-1, duration, false); + } + + public static long convertDurationStrToLong(String duration, boolean convertYearToMonth) { + return convertDurationStrToLong(-1, duration, convertYearToMonth); + } + + public static long convertDurationStrToLong( + String duration, String timestampPrecision, boolean convertYearToMonth) { + return convertDurationStrToLong(-1, duration, timestampPrecision, convertYearToMonth); + } + + /** + * Storage the duration into two parts: month part and non-month part, the non-month part's + * precision is depended on current time precision. e.g. ms precision: '1y1mo1ms' -> monthDuration + * = 13, nonMonthDuration = 1, ns precision: '1y1mo1ms' -> monthDuration = 13, nonMonthDuration = + * 1000_000. + * + * @param duration the input duration string + * @return the TimeDuration instance contains month part and non-month part + */ + public static TimeDuration constructTimeDuration(String duration) { + duration = duration.toLowerCase(); + String currTimePrecision = CommonDescriptor.getInstance().getConfig().getTimestampPrecision(); + long temp = 0; + long monthDuration = 0; + long nonMonthDuration = 0; + int i = 0; + for (; i < duration.length(); i++) { + char ch = duration.charAt(i); + if (Character.isDigit(ch)) { + temp *= 10; + temp += (ch - '0'); + } else { + StringBuilder unit = new StringBuilder(String.valueOf(duration.charAt(i))); + i++; + // This is to identify units. + while (i < duration.length() && !Character.isDigit(duration.charAt(i))) { + unit.append(duration.charAt(i)); + i++; + } + i--; + if ("y".contentEquals(unit) || "year".contentEquals(unit)) { + monthDuration += temp * 12; + temp = 0; + continue; + } + if ("mo".contentEquals(unit) || "month".contentEquals(unit)) { + monthDuration += temp; + temp = 0; + continue; + } + nonMonthDuration += convertDurationStrToLong(-1, temp, unit.toString(), currTimePrecision); + temp = 0; + } + } + return new TimeDuration((int) monthDuration, nonMonthDuration); + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/DataNodeObjectFileService.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/DataNodeObjectFileService.java new file mode 100644 index 0000000000000..b852a039c3dbb --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/DataNodeObjectFileService.java @@ -0,0 +1,134 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.db.utils; + +import org.apache.iotdb.calc.utils.IObjectFileService; +import org.apache.iotdb.calc.utils.ObjectTypeUtils; +import org.apache.iotdb.commons.exception.IoTDBRuntimeException; +import org.apache.iotdb.commons.exception.ObjectFileNotExist; +import org.apache.iotdb.db.service.metrics.FileMetrics; +import org.apache.iotdb.db.storageengine.rescon.disk.TierManager; +import org.apache.iotdb.rpc.TSStatusCode; + +import org.apache.tsfile.utils.Binary; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.FileChannel; +import java.nio.file.Files; +import java.nio.file.StandardOpenOption; +import java.util.Objects; +import java.util.Optional; + +public class DataNodeObjectFileService implements IObjectFileService { + + private static final Logger logger = LoggerFactory.getLogger(DataNodeObjectFileService.class); + private static final TierManager TIER_MANAGER = TierManager.getInstance(); + public static final DataNodeObjectFileService INSTANCE = new DataNodeObjectFileService(); + + private DataNodeObjectFileService() {} + + @Override + public ByteBuffer readObjectContent( + String relativePath, long offset, int readSize, boolean mayNotInCurrentNode) { + Optional objectFile = TIER_MANAGER.getAbsoluteObjectFilePath(relativePath, false); + if (objectFile.isPresent()) { + return readObjectContentFromLocalFile(objectFile.get(), offset, readSize); + } + if (mayNotInCurrentNode) { + return readObjectContentFromRemoteFile(relativePath, offset, readSize); + } + throw new ObjectFileNotExist(relativePath); + } + + @Override + public Optional getObjectPathFromBinary(Binary binary, boolean needTempFile) { + String relativeObjectFilePath = + ObjectTypeUtils.parseObjectBinaryToSizeStringPathPair(binary).getRight(); + return TIER_MANAGER.getAbsoluteObjectFilePath(relativeObjectFilePath, needTempFile); + } + + @Override + public void deleteObjectPathFromBinary(Binary binary) { + Optional file = getObjectPathFromBinary(binary, true); + if (file.isPresent()) { + deleteObjectPath(file.get()); + } + } + + @Override + public void deleteObjectPath(File file) { + File tmpFile = new File(file.getPath() + ".tmp"); + File bakFile = new File(file.getPath() + ".back"); + for (int i = 0; i < 2; i++) { + if (file.exists()) { + FileMetrics.getInstance().decreaseObjectFileNum(1); + FileMetrics.getInstance().decreaseObjectFileSize(file.length()); + } + try { + deleteObjectFile(file); + deleteObjectFile(tmpFile); + deleteObjectFile(bakFile); + } catch (IOException e) { + logger.error("Failed to remove object file {}", file.getAbsolutePath(), e); + } + } + deleteEmptyParentDir(file); + } + + private static ByteBuffer readObjectContentFromLocalFile(File file, long offset, long readSize) { + byte[] bytes = new byte[(int) readSize]; + ByteBuffer buffer = ByteBuffer.wrap(bytes); + try (FileChannel fileChannel = FileChannel.open(file.toPath(), StandardOpenOption.READ)) { + fileChannel.read(buffer, offset); + } catch (IOException e) { + throw new IoTDBRuntimeException(e, TSStatusCode.OBJECT_READ_ERROR.getStatusCode()); + } + buffer.flip(); + return buffer; + } + + private static ByteBuffer readObjectContentFromRemoteFile( + final String relativePath, final long offset, final int readSize) { + throw new UnsupportedOperationException("readObjectContentFromRemoteFile"); + } + + private static void deleteEmptyParentDir(File file) { + File dir = file.getParentFile(); + if (dir.isDirectory() && Objects.requireNonNull(dir.list()).length == 0) { + try { + Files.deleteIfExists(dir.toPath()); + deleteEmptyParentDir(dir); + } catch (IOException e) { + logger.error("Failed to remove empty object dir {}", dir.getAbsolutePath(), e); + } + } + } + + private static void deleteObjectFile(File file) throws IOException { + if (file.exists()) { + logger.info("Remove object file {}, size is {}(byte)", file.getAbsolutePath(), file.length()); + } + Files.deleteIfExists(file.toPath()); + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/DataNodeObjectFileServiceProvider.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/DataNodeObjectFileServiceProvider.java new file mode 100644 index 0000000000000..46243900fa30e --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/DataNodeObjectFileServiceProvider.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.db.utils; + +import org.apache.iotdb.calc.utils.IObjectFileService; +import org.apache.iotdb.calc.utils.IObjectFileServiceProvider; + +public class DataNodeObjectFileServiceProvider implements IObjectFileServiceProvider { + + @Override + public IObjectFileService getObjectFileService() { + return DataNodeObjectFileService.INSTANCE; + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/ErrorHandlingUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/ErrorHandlingUtils.java index 34d2e9bf82cbf..369dafa3b06dd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/ErrorHandlingUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/ErrorHandlingUtils.java @@ -19,17 +19,17 @@ package org.apache.iotdb.db.utils; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.exception.IoTDBException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; import org.apache.iotdb.commons.exception.QuerySchemaFetchFailedException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.utils.ErrorHandlingCommonUtils; import org.apache.iotdb.db.exception.BatchProcessException; import org.apache.iotdb.db.exception.QueryInBatchStatementException; import org.apache.iotdb.db.exception.StorageGroupNotReadyException; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.exception.query.QueryTimeoutRuntimeException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.protocol.thrift.OperationType; import org.apache.iotdb.db.queryengine.plan.planner.exceptions.ReplicaSetUnreachableException; import org.apache.iotdb.db.queryengine.plan.planner.exceptions.RootFIPlacementException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java index 281b1be2b353b..b96df4aa957bc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.utils; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; -import org.apache.iotdb.db.utils.constant.SqlConstant; import com.google.common.collect.ImmutableSet; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/TypeInferenceUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/TypeInferenceUtils.java index aa2855f7b0592..d2a096eb3e902 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/TypeInferenceUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/TypeInferenceUtils.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.utils; +import org.apache.iotdb.calc.utils.constant.SqlConstant; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.binary.CompareBinaryExpression; @@ -30,7 +31,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; import org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.BuiltInScalarFunctionHelper; import org.apache.iotdb.db.queryengine.plan.expression.multi.builtin.BuiltInScalarFunctionHelperFactory; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.external.commons.lang3.StringUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/cte/MemoryReader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/cte/MemoryReader.java index a76c27894cae3..7daad8d46e416 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/cte/MemoryReader.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/cte/MemoryReader.java @@ -22,6 +22,7 @@ package org.apache.iotdb.db.utils.cte; import org.apache.iotdb.commons.exception.IoTDBException; +import org.apache.iotdb.commons.queryengine.utils.cte.CteDataStore; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanner; diff --git a/iotdb-core/datanode/src/main/resources/META-INF/services/org.apache.iotdb.calc.service.ITemporaryQueryDataFileServiceProvider b/iotdb-core/datanode/src/main/resources/META-INF/services/org.apache.iotdb.calc.service.ITemporaryQueryDataFileServiceProvider new file mode 100644 index 0000000000000..dbe0c7ff4d8d5 --- /dev/null +++ b/iotdb-core/datanode/src/main/resources/META-INF/services/org.apache.iotdb.calc.service.ITemporaryQueryDataFileServiceProvider @@ -0,0 +1 @@ +org.apache.iotdb.db.service.DataNodeTemporaryQueryDataFileServiceProvider diff --git a/iotdb-core/datanode/src/main/resources/META-INF/services/org.apache.iotdb.calc.utils.IObjectFileServiceProvider b/iotdb-core/datanode/src/main/resources/META-INF/services/org.apache.iotdb.calc.utils.IObjectFileServiceProvider new file mode 100644 index 0000000000000..50d4b02b82b96 --- /dev/null +++ b/iotdb-core/datanode/src/main/resources/META-INF/services/org.apache.iotdb.calc.utils.IObjectFileServiceProvider @@ -0,0 +1 @@ +org.apache.iotdb.db.utils.DataNodeObjectFileServiceProvider diff --git a/iotdb-core/datanode/src/main/resources/META-INF/services/org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanNodeDeserializerProvider b/iotdb-core/datanode/src/main/resources/META-INF/services/org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanNodeDeserializerProvider new file mode 100644 index 0000000000000..bec380fc80195 --- /dev/null +++ b/iotdb-core/datanode/src/main/resources/META-INF/services/org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanNodeDeserializerProvider @@ -0,0 +1 @@ +org.apache.iotdb.db.queryengine.plan.planner.plan.node.DataNodePlanNodeDeserializerProvider diff --git a/iotdb-core/datanode/src/main/resources/META-INF/services/org.apache.iotdb.commons.queryengine.plan.relational.function.ITableFunctionAINodeServiceProvider b/iotdb-core/datanode/src/main/resources/META-INF/services/org.apache.iotdb.commons.queryengine.plan.relational.function.ITableFunctionAINodeServiceProvider new file mode 100644 index 0000000000000..5fb895cd1c9c0 --- /dev/null +++ b/iotdb-core/datanode/src/main/resources/META-INF/services/org.apache.iotdb.commons.queryengine.plan.relational.function.ITableFunctionAINodeServiceProvider @@ -0,0 +1 @@ +org.apache.iotdb.db.protocol.client.an.DataNodeTableFunctionAINodeServiceProvider diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataRegionStateMachineTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataRegionStateMachineTest.java index 7a77eada418ce..c2ccb56fa7237 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataRegionStateMachineTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataRegionStateMachineTest.java @@ -21,7 +21,7 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/mtree/schemafile/SchemaFileTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/mtree/schemafile/SchemaFileTest.java index 75a8ab8bc0000..771caf7504c55 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/mtree/schemafile/SchemaFileTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/mtree/schemafile/SchemaFileTest.java @@ -567,7 +567,8 @@ public void testEstimateSegSize() throws Exception { // to test whether estimation of segment size works on edge cases /** * related methods shall be merged further: {@linkplain SchemaFile#reEstimateSegSize} - * ,{@linkplain PageManager#reEstimateSegSize} + * ,{@linkplain + * org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.pbtree.schemafile.pagemgr.PageManager#reEstimateSegSize} */ ICachedMNode sgNode = nodeFactory.createDatabaseMNode(null, "mma").getAsMNode(); ICachedMNode d1 = fillChildren(sgNode, 300, "d", this::supplyEntity); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionSimpleRecoverTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionSimpleRecoverTest.java index aaed795151859..6cc0fe06aeedf 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionSimpleRecoverTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionSimpleRecoverTest.java @@ -21,6 +21,10 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.filter.impl.singlechild.TagFilter; import org.apache.iotdb.commons.schema.filter.impl.values.InFilter; @@ -30,12 +34,8 @@ import org.apache.iotdb.commons.schema.template.Template; import org.apache.iotdb.consensus.ConsensusFactory; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.common.schematree.ClusterSchemaTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceAttributeUpdateNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.UpdateAssignment; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.IDeviceSchemaInfo; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionTestUtil.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionTestUtil.java index 8a24133d4531f..f83a8214dcd81 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionTestUtil.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/schemaRegion/SchemaRegionTestUtil.java @@ -23,11 +23,11 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.filter.SchemaFilter; import org.apache.iotdb.commons.schema.filter.SchemaFilterFactory; import org.apache.iotdb.commons.schema.filter.impl.DeviceFilterUtil; import org.apache.iotdb.commons.schema.template.Template; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; import org.apache.iotdb.db.schemaengine.schemaregion.read.req.SchemaRegionReadPlanFactory; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionRecoverTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionRecoverTest.java index b69f2d85ef750..bcdc84a1fd02c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionRecoverTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionRecoverTest.java @@ -22,10 +22,10 @@ import org.apache.iotdb.commons.consensus.index.impl.RecoverProgressIndex; import org.apache.iotdb.commons.consensus.index.impl.SimpleProgressIndex; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.utils.FileUtils; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.pipe.consensus.deletion.DeletionResourceManager; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.AbstractDeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalDeleteDataNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionResourceTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionResourceTest.java index 8b4ace5ec2210..8eb43cab0771a 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionResourceTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/consensus/DeletionResourceTest.java @@ -28,6 +28,7 @@ import org.apache.iotdb.commons.pipe.config.constant.PipeSourceConstant; import org.apache.iotdb.commons.pipe.config.plugin.configuraion.PipeTaskRuntimeConfiguration; import org.apache.iotdb.commons.pipe.config.plugin.env.PipeTaskSourceRuntimeEnvironment; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.utils.FileUtils; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.pipe.consensus.deletion.DeletionResource; @@ -38,7 +39,6 @@ import org.apache.iotdb.db.pipe.source.dataregion.realtime.PipeRealtimeDataRegionHybridSource; import org.apache.iotdb.db.pipe.source.dataregion.realtime.PipeRealtimeDataRegionSource; import org.apache.iotdb.db.pipe.source.dataregion.realtime.listener.PipeInsertionDataNodeListener; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.AbstractDeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalDeleteDataNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/event/PipeTabletInsertionEventTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/event/PipeTabletInsertionEventTest.java index 740b5fbbc0f51..62549756d8c70 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/event/PipeTabletInsertionEventTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/event/PipeTabletInsertionEventTest.java @@ -25,12 +25,12 @@ import org.apache.iotdb.commons.pipe.datastructure.pattern.IoTDBTreePattern; import org.apache.iotdb.commons.pipe.datastructure.pattern.PrefixTreePattern; import org.apache.iotdb.commons.pipe.datastructure.pattern.TablePattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.pipe.event.common.tablet.PipeInsertNodeTabletInsertionEvent; import org.apache.iotdb.db.pipe.event.common.tablet.PipeRawTabletInsertionEvent; import org.apache.iotdb.db.pipe.event.common.tablet.parser.TabletInsertionEventTreePatternParser; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertRowNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/PipeDataNodeThriftRequestTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/PipeDataNodeThriftRequestTest.java index 1263e83ae08ec..1246ec9049c5b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/PipeDataNodeThriftRequestTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/PipeDataNodeThriftRequestTest.java @@ -21,6 +21,7 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.pipe.sink.payload.thrift.response.PipeTransferFilePieceResp; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.db.pipe.processor.twostage.exchange.payload.CombineRequest; import org.apache.iotdb.db.pipe.processor.twostage.state.CountState; @@ -39,7 +40,6 @@ import org.apache.iotdb.db.pipe.sink.payload.evolvable.request.PipeTransferTsFilePieceReq; import org.apache.iotdb.db.pipe.sink.payload.evolvable.request.PipeTransferTsFilePieceWithModReq; import org.apache.iotdb.db.pipe.sink.payload.evolvable.request.PipeTransferTsFileSealReq; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.CreateAlignedTimeSeriesNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.statement.Statement; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipePlanTablePatternParseVisitorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipePlanTablePatternParseVisitorTest.java index d01351ce60adc..0a7fbfb699dc9 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipePlanTablePatternParseVisitorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipePlanTablePatternParseVisitorTest.java @@ -21,9 +21,9 @@ import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.pipe.datastructure.pattern.TablePattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.pipe.source.schemaregion.IoTDBSchemaRegionSource; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalDeleteDataNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.CreateOrUpdateTableDeviceNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.schema.TableDeviceAttributeUpdateNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipePlanTreePatternParseVisitorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipePlanTreePatternParseVisitorTest.java index 8aebe3ea0f78b..ea071c3dcaff4 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipePlanTreePatternParseVisitorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipePlanTreePatternParseVisitorTest.java @@ -25,10 +25,10 @@ import org.apache.iotdb.commons.pipe.datastructure.pattern.IoTDBTreePattern; import org.apache.iotdb.commons.pipe.datastructure.pattern.IoTDBTreePatternOperations; import org.apache.iotdb.commons.pipe.datastructure.pattern.UnionIoTDBTreePattern; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression; import org.apache.iotdb.commons.schema.view.viewExpression.leaf.TimeSeriesViewOperand; import org.apache.iotdb.db.pipe.source.schemaregion.IoTDBSchemaRegionSource; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.ActivateTemplateNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.AlterTimeSeriesNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.BatchActivateTemplateNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipeRealtimeExtractTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipeRealtimeExtractTest.java index 9e07e91e9839b..d3adbf9aaadeb 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipeRealtimeExtractTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/PipeRealtimeExtractTest.java @@ -26,6 +26,7 @@ import org.apache.iotdb.commons.pipe.config.constant.PipeSourceConstant; import org.apache.iotdb.commons.pipe.config.plugin.configuraion.PipeTaskRuntimeConfiguration; import org.apache.iotdb.commons.pipe.config.plugin.env.PipeTaskSourceRuntimeEnvironment; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.utils.FileUtils; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.pipe.source.dataregion.realtime.PipeRealtimeDataRegionHybridSource; @@ -33,7 +34,6 @@ import org.apache.iotdb.db.pipe.source.dataregion.realtime.PipeRealtimeDataRegionSource; import org.apache.iotdb.db.pipe.source.dataregion.realtime.PipeRealtimeDataRegionTsFileSource; import org.apache.iotdb.db.pipe.source.dataregion.realtime.listener.PipeInsertionDataNodeListener; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; import org.apache.iotdb.pipe.api.customizer.parameter.PipeParameterValidator; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/SchemaRegionListeningQueueTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/SchemaRegionListeningQueueTest.java index 504fd608522bb..a33f469f8c75f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/SchemaRegionListeningQueueTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/source/SchemaRegionListeningQueueTest.java @@ -25,9 +25,9 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.pipe.datastructure.queue.ConcurrentIterableLinkedQueue; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.pipe.agent.PipeDataNodeAgent; import org.apache.iotdb.db.pipe.event.common.schema.PipeSchemaRegionWritePlanEvent; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.ActivateTemplateNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.CreateTimeSeriesNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeEnrichedWritePlanNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/qp/sql/ASTVisitorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/qp/sql/ASTVisitorTest.java index ceb44c38df46e..816fb4ebff456 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/qp/sql/ASTVisitorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/qp/sql/ASTVisitorTest.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.qp.sql; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.commons.conf.CommonDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.queryengine.plan.parser.ASTVisitor; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.junit.After; import org.junit.Before; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/common/schematree/NodeRefTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/common/schematree/NodeRefTest.java index b85e745c12bba..9ead23ccbdf53 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/common/schematree/NodeRefTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/common/schematree/NodeRefTest.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.common.schematree; -import org.apache.iotdb.db.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.common.NodeRef; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/DataDriverTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/DataDriverTest.java index c24fd3dac57d3..2eda4063c3552 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/DataDriverTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/DataDriverTest.java @@ -18,12 +18,15 @@ */ package org.apache.iotdb.db.queryengine.execution; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.execution.operator.process.LimitOperator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; -import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -34,15 +37,12 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceState; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.process.LimitOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.SingleDeviceViewOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.FullOuterTimeJoinOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.LeftOuterTimeJoinOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.AscTimeComparator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.DataRegion; @@ -91,12 +91,12 @@ public class DataDriverTest { private static final Duration EXECUTION_TIME_SLICE = new Duration( - IoTDBDescriptor.getInstance().getConfig().getDriverTaskExecutionTimeSliceInMs(), + CommonDescriptor.getInstance().getConfig().getDriverTaskExecutionTimeSliceInMs(), TimeUnit.MILLISECONDS); @Before public void setUp() throws MetadataException, IOException, WriteProcessException { - IoTDBDescriptor.getInstance().getConfig().setDriverTaskExecutionTimeSliceInMs(10000); + CommonDescriptor.getInstance().getConfig().setDriverTaskExecutionTimeSliceInMs(10000); SeriesReaderTestUtil.setUp( measurementSchemas, deviceIds, seqResources, unSeqResources, DATA_DRIVER_TEST_SG); } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/aggregation/AccumulatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/aggregation/AccumulatorTest.java index 45ea1ddc9cdc5..c81981eb1618d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/aggregation/AccumulatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/aggregation/AccumulatorTest.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.aggregation; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/executor/RegionWriteExecutorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/executor/RegionWriteExecutorTest.java index a06eaea6b33ba..ac3215d7027b5 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/executor/RegionWriteExecutorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/executor/RegionWriteExecutorTest.java @@ -24,10 +24,10 @@ import org.apache.iotdb.commons.consensus.DataRegionId; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.consensus.IConsensus; import org.apache.iotdb.consensus.exception.ConsensusException; import org.apache.iotdb.db.protocol.thrift.impl.DataNodeRegionManager; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.schemaengine.SchemaEngine; import org.apache.iotdb.db.schemaengine.template.ClusterTemplateManager; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceExecutionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceExecutionTest.java index 61b24cd4ed969..393884a519b34 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceExecutionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceExecutionTest.java @@ -19,17 +19,17 @@ package org.apache.iotdb.db.queryengine.execution.fragment; +import org.apache.iotdb.calc.exception.MemoryNotEnoughException; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.exception.CpuNotEnoughException; -import org.apache.iotdb.db.queryengine.exception.MemoryNotEnoughException; import org.apache.iotdb.db.queryengine.execution.driver.IDriver; import org.apache.iotdb.db.queryengine.execution.exchange.MPPDataExchangeManager; import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISink; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationMergeSortOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationMergeSortOperatorTest.java index 4d9edecf00cf3..0cbf2fef488e9 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationMergeSortOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationMergeSortOperatorTest.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.process.AggregationMergeSortOperator; +import org.apache.iotdb.calc.execution.operator.process.ProcessOperator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.aggregation.CountAccumulator; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.AggregationMergeSortOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.ProcessOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.queryengine.plan.statement.component.SortItem; -import org.apache.iotdb.db.utils.datastructure.SortKey; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; @@ -41,7 +41,7 @@ import java.util.List; import java.util.Optional; -import static org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator.getComparator; +import static org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparatorUtils.getComparator; import static org.junit.Assert.assertEquals; public class AggregationMergeSortOperatorTest { diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationOperatorTest.java index 9a47b9fbeb3ee..a32d0883b4ebb 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationOperatorTest.java @@ -19,15 +19,18 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.execution.aggregation.Accumulator; import org.apache.iotdb.db.queryengine.execution.aggregation.AccumulatorFactory; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; @@ -35,10 +38,8 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.process.AggregationOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesAggregationScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java index 983847dde219c..9a68324a9119c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java @@ -24,6 +24,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.AlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -34,10 +36,8 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.source.AlignedSeriesAggregationScanOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesScanOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesScanOperatorTest.java index ee3c544656b71..573107fe2d320 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesScanOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesScanOperatorTest.java @@ -23,6 +23,8 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.AlignedFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -35,8 +37,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.source.AlignedSeriesScanOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/CteScanOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/CteScanOperatorTest.java index 581beb079d2de..7309e2e06adcb 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/CteScanOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/CteScanOperatorTest.java @@ -21,13 +21,13 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.utils.cte.CteDataStore; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.operator.source.relational.CteScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; -import org.apache.iotdb.db.utils.cte.CteDataStore; import com.google.common.collect.ImmutableList; import org.apache.tsfile.common.conf.TSFileDescriptor; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceIteratorScanOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceIteratorScanOperatorTest.java index 082cf34448558..9b470f71020d4 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceIteratorScanOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceIteratorScanOperatorTest.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.AlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -30,7 +32,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.source.AlignedSeriesScanOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.relational.DeviceIteratorScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.relational.metadata.AlignedDeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewIntoOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewIntoOperatorTest.java index f7fe5fcf367d3..7252d2341bd3e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewIntoOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewIntoOperatorTest.java @@ -19,11 +19,14 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; @@ -40,8 +43,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.ColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertMultiTabletsStatement; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewOperatorTest.java index 007cdbb8dcdcd..c6cb77a614d19 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewOperatorTest.java @@ -18,9 +18,11 @@ */ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -29,7 +31,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.process.DeviceViewOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/ExchangeOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/ExchangeOperatorTest.java index a5f30cf6d611b..4b2a000c8592d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/ExchangeOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/ExchangeOperatorTest.java @@ -20,6 +20,7 @@ package org.apache.iotdb.db.queryengine.execution.operator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -28,7 +29,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.source.ExchangeOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/FillOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/FillOperatorTest.java index 6dc276c8be6ff..24a13ea0d7f3b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/FillOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/FillOperatorTest.java @@ -18,7 +18,14 @@ */ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; +import org.apache.iotdb.calc.execution.operator.process.fill.constant.DoubleConstantFill; +import org.apache.iotdb.calc.execution.operator.process.fill.filter.FixedIntervalFillFilter; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.IntPreviousFill; +import org.apache.iotdb.calc.execution.operator.process.fill.previous.IntPreviousFillWithTimeDuration; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -26,12 +33,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.process.TreeFillOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.constant.DoubleConstantFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.filter.FixedIntervalFillFilter; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.IntPreviousFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.previous.IntPreviousFillWithTimeDuration; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import com.google.common.collect.ImmutableList; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java index dce46430a51ed..135bb7ff83f9b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java @@ -23,6 +23,7 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -33,7 +34,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.process.join.HorizontallyConcatOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesAggregationScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryMergeOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryMergeOperatorTest.java index 5e4fa5ad9f96e..ec01305db1fe2 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryMergeOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryMergeOperatorTest.java @@ -18,8 +18,10 @@ */ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -28,7 +30,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.process.last.LastQueryMergeOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.last.LastQueryUtil; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.tsfile.exception.write.WriteProcessException; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryOperatorTest.java index fe96135ac9d31..9c6173e400334 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryOperatorTest.java @@ -23,6 +23,7 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -34,7 +35,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.process.last.LastQueryUtil; import org.apache.iotdb.db.queryengine.execution.operator.process.last.UpdateLastCacheOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesAggregationScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryTreeSortOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryTreeSortOperatorTest.java index 3493fefb4408b..c8e18ab6a4549 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryTreeSortOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryTreeSortOperatorTest.java @@ -22,6 +22,7 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -34,7 +35,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.process.last.LastQueryUtil; import org.apache.iotdb.db.queryengine.execution.operator.process.last.UpdateLastCacheOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesAggregationScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LimitOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LimitOperatorTest.java index e72e5e45a33ad..3f79efa0e5303 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LimitOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LimitOperatorTest.java @@ -18,24 +18,24 @@ */ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.process.LimitOperator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.process.LimitOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.FullOuterTimeJoinOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.AscTimeComparator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeTreeSortOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeTreeSortOperatorTest.java index 2d0c1bf543c37..b6cdefd419448 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeTreeSortOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeTreeSortOperatorTest.java @@ -18,11 +18,15 @@ */ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -38,7 +42,7 @@ import org.apache.iotdb.db.queryengine.execution.operator.process.join.FullOuterTimeJoinOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.AscTimeComparator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.DescTimeComparator; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator; +import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.ShowQueriesOperator; @@ -46,8 +50,6 @@ import org.apache.iotdb.db.queryengine.plan.analyze.QueryType; import org.apache.iotdb.db.queryengine.plan.execution.ExecutionResult; import org.apache.iotdb.db.queryengine.plan.execution.IQueryExecution; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.OrderByKey; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; @@ -55,7 +57,6 @@ import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; import org.apache.iotdb.db.storageengine.dataregion.read.reader.series.SeriesReaderTestUtil; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; -import org.apache.iotdb.db.utils.datastructure.SortKey; import org.apache.iotdb.isession.SessionConfig; import com.google.common.collect.ImmutableList; @@ -353,7 +354,7 @@ public TreeMergeSortOperator mergeSortOperatorTest( Arrays.asList( singleDeviceViewOperator1, singleDeviceViewOperator2, singleDeviceViewOperator3), tsDataTypes, - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.TIME, timeOrdering), new SortItem(OrderByKey.DEVICE, deviceOrdering)), @@ -837,7 +838,7 @@ public TreeMergeSortOperator mergeSortOperatorTest2( driverContext.getOperatorContexts().get(14), Arrays.asList(singleDeviceViewOperator1, singleDeviceViewOperator2), tsDataTypes, - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.TIME, timeOrdering), new SortItem(OrderByKey.DEVICE, deviceOrdering)), @@ -851,7 +852,7 @@ public TreeMergeSortOperator mergeSortOperatorTest2( driverContext.getOperatorContexts().get(15), Arrays.asList(singleDeviceViewOperator3, singleDeviceViewOperator4), tsDataTypes, - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.TIME, timeOrdering), new SortItem(OrderByKey.DEVICE, deviceOrdering)), @@ -866,7 +867,7 @@ public TreeMergeSortOperator mergeSortOperatorTest2( driverContext.getOperatorContexts().get(16), Arrays.asList(treeMergeSortOperator1, treeMergeSortOperator2), tsDataTypes, - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.TIME, timeOrdering), new SortItem(OrderByKey.DEVICE, deviceOrdering)), @@ -1327,7 +1328,7 @@ public TreeMergeSortOperator mergeSortOperatorTest3( driverContext.getOperatorContexts().get(12), Arrays.asList(deviceViewOperator1, deviceViewOperator2), tsDataTypes, - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.DEVICE, deviceOrdering), new SortItem(OrderByKey.TIME, timeOrdering)), @@ -1595,7 +1596,7 @@ public void mergeSortWithSortOperatorTest() throws Exception { List operatorContexts = driverContext.getOperatorContexts(); List dataTypes = DatasetHeaderFactory.getShowQueriesHeader().getRespDataTypes(); Comparator comparator = - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.TIME, Ordering.ASC), new SortItem(OrderByKey.DATANODEID, Ordering.DESC)), @@ -1783,7 +1784,7 @@ public void mergeSortTest() throws Exception { driverContext.getOperatorContexts().get(0), Arrays.asList(childOperator1, childOperator2), Collections.singletonList(TSDataType.INT64), - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Collections.singletonList(new SortItem(OrderByKey.TIME, Ordering.ASC)), Collections.singletonList(-1), Collections.singletonList(TSDataType.INT64))); @@ -1850,8 +1851,8 @@ public String getStatementType() { } @Override - public IClientSession.SqlDialect getSQLDialect() { - return IClientSession.SqlDialect.TREE; + public SqlDialect getSQLDialect() { + return SqlDialect.TREE; } @Override diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MultiColumnMergerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MultiColumnMergerTest.java index 72cb1f34fce43..9dec387de9188 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MultiColumnMergerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MultiColumnMergerTest.java @@ -18,8 +18,8 @@ */ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MultiColumnMerger; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import com.google.common.collect.ImmutableList; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/NonAlignedTreeDeviceViewScanOperatorTreeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/NonAlignedTreeDeviceViewScanOperatorTreeTest.java index 01a0052950349..72fb2cba752b8 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/NonAlignedTreeDeviceViewScanOperatorTreeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/NonAlignedTreeDeviceViewScanOperatorTreeTest.java @@ -19,8 +19,18 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.LimitOperator; +import org.apache.iotdb.calc.execution.operator.process.OffsetOperator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; import org.apache.iotdb.commons.schema.table.TreeViewSchema; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.FieldColumnSchema; @@ -34,26 +44,17 @@ import org.apache.iotdb.db.queryengine.execution.fragment.DataNodeQueryContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.process.LimitOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.OffsetOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.relational.DeviceIteratorScanOperator; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; +import org.apache.iotdb.db.queryengine.plan.planner.DataNodeTableOperatorGenerator; import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanContext; -import org.apache.iotdb.db.queryengine.plan.planner.TableOperatorGenerator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestMetadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.NonAlignedDeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.IrUtils; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeNonAlignedDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; @@ -85,8 +86,8 @@ import java.util.concurrent.ExecutorService; import java.util.stream.Collectors; +import static org.apache.iotdb.calc.execution.operator.Operator.NOT_BLOCKED; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.Operator.NOT_BLOCKED; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -98,8 +99,8 @@ public class NonAlignedTreeDeviceViewScanOperatorTreeTest { "root.NonAlignedTreeDeviceViewScanOperatorTreeTest"; private static final String tableDbName = "test"; private static final String tableViewName = "view1"; - private final TableOperatorGenerator tableOperatorGenerator = - new TableOperatorGenerator(new TestMetadata()); + private final DataNodeTableOperatorGenerator tableOperatorGenerator = + new DataNodeTableOperatorGenerator(new TestMetadata()); private final List deviceIds = new ArrayList<>(); private final List measurementSchemas = new ArrayList<>(); @@ -688,7 +689,8 @@ private void checkResult(Operator operator, List outputColumnList, int e } count += tsBlock.getPositionCount(); } - FragmentInstanceContext fragmentInstance = operator.getOperatorContext().getInstanceContext(); + FragmentInstanceContext fragmentInstance = + ((OperatorContext) operator.getOperatorContext()).getInstanceContext(); Filter globalTimeFilter = fragmentInstance.getGlobalTimeFilter(); if (globalTimeFilter != null) { assertFalse(globalTimeFilter instanceof Or); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/NonOverlappedMultiColumnMergerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/NonOverlappedMultiColumnMergerTest.java index 4d82021131035..e6a9a8542dfaf 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/NonOverlappedMultiColumnMergerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/NonOverlappedMultiColumnMergerTest.java @@ -18,9 +18,9 @@ */ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.AscTimeComparator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.NonOverlappedMultiColumnMerger; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import com.google.common.collect.ImmutableList; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OffsetOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OffsetOperatorTest.java index a10f26a8b6e08..526577d61bb25 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OffsetOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OffsetOperatorTest.java @@ -18,25 +18,25 @@ */ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.process.LimitOperator; +import org.apache.iotdb.calc.execution.operator.process.OffsetOperator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.process.LimitOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.OffsetOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.FullOuterTimeJoinOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.AscTimeComparator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorMemoryTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorMemoryTest.java index ae1b9458f0311..350860e57ae4b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorMemoryTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorMemoryTest.java @@ -18,14 +18,26 @@ */ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.FilterAndProjectOperator; +import org.apache.iotdb.calc.execution.operator.process.LimitOperator; +import org.apache.iotdb.calc.execution.operator.process.OffsetOperator; +import org.apache.iotdb.calc.execution.operator.process.fill.IFill; +import org.apache.iotdb.calc.execution.operator.process.fill.linear.LinearFill; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.ArithmeticAdditionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareLessEqualColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.ConstantColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.TimeColumnTransformer; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.AlignedFullPath; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; -import org.apache.iotdb.db.conf.IoTDBDescriptor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -37,17 +49,12 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.process.AggregationOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.DeviceViewOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.FilterAndProjectOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.LimitOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.OffsetOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.RawDataAggregationOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.SlidingWindowAggregationOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.TreeFillOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.TreeIntoOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.TreeLinearFillOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.TreeSortOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.IFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.linear.LinearFill; import org.apache.iotdb.db.queryengine.execution.operator.process.join.FullOuterTimeJoinOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.HorizontallyConcatOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.last.LastQueryCollectOperator; @@ -76,17 +83,11 @@ import org.apache.iotdb.db.queryengine.execution.operator.window.WindowParameter; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.ArithmeticAdditionColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.CompareLessEqualColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.ConstantColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.TimeColumnTransformer; import com.google.common.collect.Sets; import org.apache.tsfile.common.conf.TSFileDescriptor; @@ -528,13 +529,13 @@ public void sortOperatorTest() { null); assertEquals( - 2048 + 512 + IoTDBDescriptor.getInstance().getConfig().getSortBufferSize(), + 2048 + 512 + CommonDescriptor.getInstance().getConfig().getSortBufferSize(), treeSortOperator.calculateMaxPeekMemory()); assertEquals( TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes(), treeSortOperator.calculateMaxReturnSize()); assertEquals( - 512 + IoTDBDescriptor.getInstance().getConfig().getSortBufferSize(), + 512 + CommonDescriptor.getInstance().getConfig().getSortBufferSize(), treeSortOperator.calculateRetainedSizeAfterCallingNext()); } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/RawDataAggregationOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/RawDataAggregationOperatorTest.java index 5b45158716ec6..5f9485ac8b098 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/RawDataAggregationOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/RawDataAggregationOperatorTest.java @@ -19,16 +19,18 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.aggregation.Accumulator; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.execution.aggregation.Accumulator; import org.apache.iotdb.db.queryengine.execution.aggregation.AccumulatorFactory; import org.apache.iotdb.db.queryengine.execution.aggregation.TreeAggregator; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; @@ -44,10 +46,8 @@ import org.apache.iotdb.db.queryengine.execution.operator.window.TimeWindowParameter; import org.apache.iotdb.db.queryengine.execution.operator.window.VariationWindowParameter; import org.apache.iotdb.db.queryengine.execution.operator.window.WindowParameter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesAggregationScanOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesAggregationScanOperatorTest.java index df3fc3318c7f2..edf22b93a4a11 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesAggregationScanOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesAggregationScanOperatorTest.java @@ -23,6 +23,7 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -32,7 +33,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesAggregationScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesScanOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesScanOperatorTest.java index c61829e626614..92cb35f515af8 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesScanOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesScanOperatorTest.java @@ -23,6 +23,7 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -30,7 +31,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SingleColumnMergerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SingleColumnMergerTest.java index 7f87e3f0a2fd0..aa546bf328ce3 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SingleColumnMergerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SingleColumnMergerTest.java @@ -18,10 +18,10 @@ */ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.AscTimeComparator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.DescTimeComparator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SingleDeviceViewOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SingleDeviceViewOperatorTest.java index 36da80e4729fe..cfe53f4e70862 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SingleDeviceViewOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SingleDeviceViewOperatorTest.java @@ -21,6 +21,8 @@ import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -32,8 +34,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.AscTimeComparator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SlidingWindowAggregationOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SlidingWindowAggregationOperatorTest.java index c0b44f6cf01ad..e66888ed62e83 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SlidingWindowAggregationOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SlidingWindowAggregationOperatorTest.java @@ -24,6 +24,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -35,10 +37,8 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.process.SlidingWindowAggregationOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesAggregationScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SortOperatorSortBranchTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SortOperatorSortBranchTest.java index 77a0456c9ddd5..fbe0acc894860 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SortOperatorSortBranchTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SortOperatorSortBranchTest.java @@ -19,8 +19,13 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.SortOperator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; @@ -28,15 +33,12 @@ import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.process.SortOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.TreeSortOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator; +import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.statement.component.OrderByKey; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.queryengine.plan.statement.component.SortItem; -import org.apache.iotdb.db.utils.datastructure.SortKey; import com.google.common.collect.ImmutableList; import org.apache.tsfile.block.column.ColumnBuilder; @@ -73,10 +75,10 @@ public class SortOperatorSortBranchTest { public void setUp() throws MetadataException, IOException, WriteProcessException { dataNodeId = IoTDBDescriptor.getInstance().getConfig().getDataNodeId(); maxTsBlockSizeInBytes = TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes(); - sortBufferSize = IoTDBDescriptor.getInstance().getConfig().getSortBufferSize(); + sortBufferSize = CommonDescriptor.getInstance().getConfig().getSortBufferSize(); IoTDBDescriptor.getInstance().getConfig().setDataNodeId(0); TSFileDescriptor.getInstance().getConfig().setMaxTsBlockSizeInBytes(15); - IoTDBDescriptor.getInstance().getConfig().setSortBufferSize(150); + CommonDescriptor.getInstance().getConfig().setSortBufferSize(150); } @After @@ -84,7 +86,7 @@ public void tearDown() throws IOException { cleanDir(sortDir); IoTDBDescriptor.getInstance().getConfig().setDataNodeId(dataNodeId); TSFileDescriptor.getInstance().getConfig().setMaxTsBlockSizeInBytes(maxTsBlockSizeInBytes); - IoTDBDescriptor.getInstance().getConfig().setSortBufferSize(sortBufferSize); + CommonDescriptor.getInstance().getConfig().setSortBufferSize(sortBufferSize); } private SortOperator genSortOperator() { @@ -175,7 +177,7 @@ public long ramBytesUsed() { OperatorContext operatorContext = driverContext.getOperatorContexts().get(1); Comparator comparator = - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList(new SortItem(OrderByKey.DATANODEID, Ordering.ASC)), ImmutableList.of(0), outputTypes); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TransformOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TransformOperatorTest.java index 044f99b8b8812..d6684a4653d4f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TransformOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TransformOperatorTest.java @@ -19,11 +19,14 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.commons.udf.service.UDFClassLoaderManager; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; -import org.apache.iotdb.db.queryengine.common.NodeRef; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; @@ -33,8 +36,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.transformation.api.LayerReader; import org.apache.iotdb.db.queryengine.transformation.dag.input.QueryDataSetInputLayer; import org.apache.iotdb.db.queryengine.transformation.dag.input.TsBlockInputDataSet; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeIntoOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeIntoOperatorTest.java index 4b4d08f558ebb..690da2ffd1933 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeIntoOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeIntoOperatorTest.java @@ -19,11 +19,14 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; @@ -37,8 +40,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.ColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertMultiTabletsStatement; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeLinearFillOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeLinearFillOperatorTest.java index 02c2e95b7ee60..393a23dc2a707 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeLinearFillOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeLinearFillOperatorTest.java @@ -18,7 +18,13 @@ */ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.fill.ILinearFill; +import org.apache.iotdb.calc.execution.operator.process.fill.identity.IdentityLinearFill; +import org.apache.iotdb.calc.execution.operator.process.fill.linear.FloatLinearFill; +import org.apache.iotdb.calc.execution.operator.process.fill.linear.LinearFill; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -26,11 +32,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.process.TreeLinearFillOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.ILinearFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.identity.IdentityLinearFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.linear.FloatLinearFill; -import org.apache.iotdb.db.queryengine.execution.operator.process.fill.linear.LinearFill; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import com.google.common.collect.ImmutableList; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeSortOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeSortOperatorTest.java index 94d47c14f00bc..bc2d6abe77fc8 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeSortOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeSortOperatorTest.java @@ -19,9 +19,14 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; @@ -35,14 +40,11 @@ import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.DescTimeComparator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; import org.apache.iotdb.db.storageengine.dataregion.read.reader.series.SeriesReaderTestUtil; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; -import org.apache.iotdb.db.utils.datastructure.SortKey; import io.airlift.units.Duration; import org.apache.tsfile.common.conf.TSFileDescriptor; @@ -235,8 +237,8 @@ long getValue(long expectedTime) { // with data spilling @Test public void sortOperatorSpillingTest() throws Exception { - IoTDBDescriptor.getInstance().getConfig().setSortBufferSize(5000); - long sortBufferSize = IoTDBDescriptor.getInstance().getConfig().getSortBufferSize(); + CommonDescriptor.getInstance().getConfig().setSortBufferSize(5000); + long sortBufferSize = CommonDescriptor.getInstance().getConfig().getSortBufferSize(); try (TreeSortOperator root = (TreeSortOperator) genSortOperator(Ordering.ASC, true)) { int lastValue = -1; int count = 0; @@ -256,7 +258,7 @@ public void sortOperatorSpillingTest() throws Exception { } assertEquals(500, count); } finally { - IoTDBDescriptor.getInstance().getConfig().setSortBufferSize(sortBufferSize); + CommonDescriptor.getInstance().getConfig().setSortBufferSize(sortBufferSize); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeTopKOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeTopKOperatorTest.java index 59bf0292d7e8e..e9960994ab59d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeTopKOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TreeTopKOperatorTest.java @@ -19,10 +19,13 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; @@ -37,11 +40,9 @@ import org.apache.iotdb.db.queryengine.execution.operator.process.join.FullOuterTimeJoinOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.AscTimeComparator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.DescTimeComparator; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator; +import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.SingleColumnMerger; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.OrderByKey; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; @@ -338,7 +339,7 @@ public TreeTopKOperator topKOperatorTest( Arrays.asList( singleDeviceViewOperator1, singleDeviceViewOperator2, singleDeviceViewOperator3), tsDataTypes, - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.TIME, timeOrdering), new SortItem(OrderByKey.DEVICE, deviceOrdering)), @@ -708,7 +709,7 @@ public TreeTopKOperator topKOperatorTest2( driverContext.getOperatorContexts().get(14), Arrays.asList(singleDeviceViewOperator1, singleDeviceViewOperator2), tsDataTypes, - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.TIME, timeOrdering), new SortItem(OrderByKey.DEVICE, deviceOrdering)), @@ -722,7 +723,7 @@ public TreeTopKOperator topKOperatorTest2( driverContext.getOperatorContexts().get(15), Arrays.asList(singleDeviceViewOperator3, singleDeviceViewOperator4), tsDataTypes, - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.TIME, timeOrdering), new SortItem(OrderByKey.DEVICE, deviceOrdering)), @@ -737,7 +738,7 @@ public TreeTopKOperator topKOperatorTest2( driverContext.getOperatorContexts().get(16), Arrays.asList(topKOperator1, topKOperator2), tsDataTypes, - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.TIME, timeOrdering), new SortItem(OrderByKey.DEVICE, deviceOrdering)), @@ -1091,7 +1092,7 @@ public TreeTopKOperator topKOperatorTest3( driverContext.getOperatorContexts().get(12), Arrays.asList(deviceViewOperator1, deviceViewOperator2), tsDataTypes, - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.DEVICE, deviceOrdering), new SortItem(OrderByKey.TIME, timeOrdering)), @@ -1320,7 +1321,7 @@ public void topKOperatorSortTest() throws Exception { driverContext.getOperatorContexts().get(0), Arrays.asList(childOperator1, childOperator2), Collections.singletonList(TSDataType.INT64), - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Collections.singletonList(new SortItem(OrderByKey.TIME, Ordering.ASC)), Collections.singletonList(-1), Collections.singletonList(TSDataType.INT64)), @@ -1545,7 +1546,7 @@ public TreeTopKOperator emptyTopKOperatorTest( Arrays.asList( singleDeviceViewOperator1, singleDeviceViewOperator2, singleDeviceViewOperator3), tsDataTypes, - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.TIME, timeOrdering), new SortItem(OrderByKey.DEVICE, deviceOrdering)), diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/UpdateLastCacheOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/UpdateLastCacheOperatorTest.java index 0282c00a5bc06..c9688bbc2af39 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/UpdateLastCacheOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/UpdateLastCacheOperatorTest.java @@ -23,6 +23,7 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -33,7 +34,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.process.last.LastQueryUtil; import org.apache.iotdb.db.queryengine.execution.operator.process.last.UpdateLastCacheOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesAggregationScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/ViewFromTreeAdaptorOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/ViewFromTreeAdaptorOperatorTest.java index 21ee785aa3308..92bd6b340850b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/ViewFromTreeAdaptorOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/ViewFromTreeAdaptorOperatorTest.java @@ -19,9 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.AlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; @@ -31,10 +34,8 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.source.AlignedSeriesScanOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TreeToTableViewAdaptorOperator; -import org.apache.iotdb.db.queryengine.plan.planner.TableOperatorGenerator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.db.queryengine.plan.planner.DataNodeTableOperatorGenerator; import org.apache.iotdb.db.queryengine.plan.relational.metadata.AlignedDeviceEntry; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; @@ -179,7 +180,7 @@ public void test1() { columnIndexArray, columnSchemas, seriesScanOperator, - TableOperatorGenerator.createTreeDeviceIdColumnValueExtractor( + DataNodeTableOperatorGenerator.createTreeDeviceIdColumnValueExtractor( VIEW_FROM_TREE_ADAPTOR_OPERATOR_TEST)); int count = 0; while (operator.hasNext()) { diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableStreamSortOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableStreamSortOperatorTest.java index f6cdd59d9376b..b316c530862a8 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableStreamSortOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/TableStreamSortOperatorTest.java @@ -19,20 +19,22 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.TableStreamSortOperator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; -import org.apache.iotdb.db.conf.IoTDBDescriptor; +import org.apache.iotdb.commons.conf.CommonDescriptor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.utils.datastructure.SortKey; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.common.conf.TSFileConfig; @@ -53,9 +55,8 @@ import java.util.List; import java.util.concurrent.ExecutorService; +import static org.apache.iotdb.calc.execution.operator.process.join.merge.MergeSortComparator.getComparatorForTable; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator.getComparatorForTable; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; import static org.apache.iotdb.db.utils.EnvironmentUtils.cleanDir; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -240,10 +241,10 @@ public void allInMemoryTes2() { @Test public void someInDiskTest() { - long sortBufferSize = IoTDBDescriptor.getInstance().getConfig().getSortBufferSize(); + long sortBufferSize = CommonDescriptor.getInstance().getConfig().getSortBufferSize(); int maxTsBlockSizeInBytes = TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes(); - IoTDBDescriptor.getInstance().getConfig().setSortBufferSize(510); + CommonDescriptor.getInstance().getConfig().setSortBufferSize(510); TSFileDescriptor.getInstance().getConfig().setMaxTsBlockSizeInBytes(50); try (TableStreamSortOperator tableStreamSortOperator = genStreamSortOperator(1000)) { int count = 0; @@ -281,18 +282,18 @@ public void someInDiskTest() { e.printStackTrace(); fail(e.getMessage()); } finally { - IoTDBDescriptor.getInstance().getConfig().setSortBufferSize(sortBufferSize); + CommonDescriptor.getInstance().getConfig().setSortBufferSize(sortBufferSize); TSFileDescriptor.getInstance().getConfig().setMaxTsBlockSizeInBytes(maxTsBlockSizeInBytes); } } @Test public void someInDiskTest2() { - long sortBufferSize = IoTDBDescriptor.getInstance().getConfig().getSortBufferSize(); + long sortBufferSize = CommonDescriptor.getInstance().getConfig().getSortBufferSize(); int maxTsBlockSizeInBytes = TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes(); int maxTsBlockLineNumber = TSFileDescriptor.getInstance().getConfig().getMaxTsBlockLineNumber(); - IoTDBDescriptor.getInstance().getConfig().setSortBufferSize(1000); + CommonDescriptor.getInstance().getConfig().setSortBufferSize(1000); TSFileDescriptor.getInstance().getConfig().setMaxTsBlockSizeInBytes(100); TSFileDescriptor.getInstance().getConfig().setMaxTsBlockLineNumber(2); try (TableStreamSortOperator tableStreamSortOperator = genStreamSortOperator(2)) { @@ -332,7 +333,7 @@ public void someInDiskTest2() { e.printStackTrace(); fail(e.getMessage()); } finally { - IoTDBDescriptor.getInstance().getConfig().setSortBufferSize(sortBufferSize); + CommonDescriptor.getInstance().getConfig().setSortBufferSize(sortBufferSize); TSFileDescriptor.getInstance().getConfig().setMaxTsBlockSizeInBytes(maxTsBlockSizeInBytes); TSFileDescriptor.getInstance().getConfig().setMaxTsBlockLineNumber(maxTsBlockLineNumber); } @@ -520,7 +521,8 @@ public TsBlock next() { builder.declarePositions(timeArray[index].length); index++; return builder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, builder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, builder.getPositionCount())); } @Override diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/ValuesOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/ValuesOperatorTest.java index cb5d9ea5c8710..a7aa7e29bfc08 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/ValuesOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/ValuesOperatorTest.java @@ -19,14 +19,16 @@ package org.apache.iotdb.db.queryengine.execution.operator.process; +import org.apache.iotdb.calc.execution.operator.process.ValuesOperator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import com.google.common.collect.ImmutableList; import org.apache.tsfile.block.column.ColumnBuilder; @@ -41,7 +43,6 @@ import java.util.concurrent.ExecutorService; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -187,7 +188,8 @@ private TsBlock createIntTsBlock(int[] values) { } builder.declarePositions(values.length); return builder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, builder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, builder.getPositionCount())); } private ValuesOperator genValuesOperator(java.util.List tsBlocks) { diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalFillFilterTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalFillFilterTest.java index 04c81eb15f77b..295da4e720d00 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalFillFilterTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/fill/filter/MonthIntervalFillFilterTest.java @@ -19,6 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.fill.filter; +import org.apache.iotdb.calc.execution.operator.process.fill.filter.MonthIntervalMSFillFilter; +import org.apache.iotdb.calc.execution.operator.process.fill.filter.MonthIntervalNSFillFilter; +import org.apache.iotdb.calc.execution.operator.process.fill.filter.MonthIntervalUSFillFilter; + import org.junit.Test; import java.time.Instant; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWMoOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWMoOperatorTest.java index eb3f8489957db..18880c56ff3a4 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWMoOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWMoOperatorTest.java @@ -19,19 +19,22 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.gapfill; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.MergeSortOperator; +import org.apache.iotdb.calc.execution.operator.process.gapfill.GapFillWGroupWMoOperator; +import org.apache.iotdb.calc.execution.operator.process.gapfill.GapFillWoGroupWoMoOperator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.MergeSortOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.utils.datastructure.SortKey; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.common.conf.TSFileConfig; @@ -51,9 +54,8 @@ import java.util.Set; import java.util.concurrent.ExecutorService; +import static org.apache.iotdb.calc.execution.operator.process.join.merge.MergeSortComparator.getComparatorForTable; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator.getComparatorForTable; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.fail; @@ -339,7 +341,8 @@ public TsBlock next() { builder.declarePositions(timeArray[index].length); index++; return builder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, builder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, builder.getPositionCount())); } @Override diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWoMoOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWoMoOperatorTest.java index 3b66e6d40d92a..a277443e48f0b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWoMoOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWGroupWoMoOperatorTest.java @@ -19,19 +19,22 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.gapfill; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.MergeSortOperator; +import org.apache.iotdb.calc.execution.operator.process.gapfill.GapFillWGroupWoMoOperator; +import org.apache.iotdb.calc.execution.operator.process.gapfill.GapFillWoGroupWoMoOperator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; +import org.apache.iotdb.calc.utils.datastructure.SortKey; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.MergeSortOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.utils.datastructure.SortKey; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.common.conf.TSFileConfig; @@ -50,9 +53,8 @@ import java.util.Set; import java.util.concurrent.ExecutorService; +import static org.apache.iotdb.calc.execution.operator.process.join.merge.MergeSortComparator.getComparatorForTable; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator.getComparatorForTable; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.fail; @@ -314,7 +316,8 @@ public TsBlock next() { builder.declarePositions(timeArray[index].length); index++; return builder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, builder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, builder.getPositionCount())); } @Override diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWMoOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWMoOperatorTest.java index 5ccfbfb568f80..0947158ae200b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWMoOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWMoOperatorTest.java @@ -19,17 +19,20 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.gapfill; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.MergeSortOperator; +import org.apache.iotdb.calc.execution.operator.process.gapfill.GapFillWoGroupWMoOperator; +import org.apache.iotdb.calc.execution.operator.process.gapfill.GapFillWoGroupWoMoOperator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.MergeSortOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.enums.TSDataType; @@ -44,7 +47,6 @@ import java.util.concurrent.ExecutorService; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.fail; @@ -157,7 +159,8 @@ public TsBlock next() { builder.declarePositions(timeArray[index].length); index++; return builder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, builder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, builder.getPositionCount())); } @Override @@ -319,7 +322,8 @@ public TsBlock next() { builder.declarePositions(timeArray[index].length); index++; return builder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, builder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, builder.getPositionCount())); } @Override diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWoMoOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWoMoOperatorTest.java index 2f673e24cf6d5..ebd32ff2e193c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWoMoOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/gapfill/GapFillWoGroupWoMoOperatorTest.java @@ -19,17 +19,19 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.gapfill; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.MergeSortOperator; +import org.apache.iotdb.calc.execution.operator.process.gapfill.GapFillWoGroupWoMoOperator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.MergeSortOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.enums.TSDataType; @@ -43,7 +45,6 @@ import java.util.concurrent.ExecutorService; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.fail; @@ -156,7 +157,8 @@ public TsBlock next() { builder.declarePositions(timeArray[index].length); index++; return builder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, builder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, builder.getPositionCount())); } @Override @@ -317,7 +319,8 @@ public TsBlock next() { builder.declarePositions(timeArray[index].length); index++; return builder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, builder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, builder.getPositionCount())); } @Override diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/InnerTimeJoinOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/InnerTimeJoinOperatorTest.java index e0b8148bb5d02..b0630508eed31 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/InnerTimeJoinOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/InnerTimeJoinOperatorTest.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.join; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.AscTimeComparator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.DescTimeComparator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.InputLocation; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.units.Duration; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/LeftOuterTimeJoinOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/LeftOuterTimeJoinOperatorTest.java index 3970d0a636831..6964ca70b67f0 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/LeftOuterTimeJoinOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/join/LeftOuterTimeJoinOperatorTest.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.join; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.AscTimeComparator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.DescTimeComparator; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/IrRowPatternOptimizationTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/IrRowPatternOptimizationTest.java index 609ec84716694..8a75a9172d130 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/IrRowPatternOptimizationTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/IrRowPatternOptimizationTest.java @@ -19,25 +19,25 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrPatternAlternationOptimizer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPatternFlattener; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrPatternAlternationOptimizer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrRowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrRowPatternFlattener; import org.junit.Assert; import org.junit.Test; import java.util.Optional; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.alternation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.concatenation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.empty; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.excluded; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.label; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.permutation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.plusQuantified; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.questionMarkQuantified; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.rangeQuantified; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.starQuantified; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.alternation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.concatenation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.empty; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.excluded; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.label; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.permutation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.plusQuantified; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.questionMarkQuantified; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.rangeQuantified; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.starQuantified; public class IrRowPatternOptimizationTest { @Test diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/MatcherTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/MatcherTest.java index 5c6c6da62cdb7..40037463ac44c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/MatcherTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/MatcherTest.java @@ -19,14 +19,16 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.ArrayView; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.IrRowPatternToProgramRewriter; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.MatchResult; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.Matcher; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.matcher.Program; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternAggregator; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.PatternVariableRecognizer; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.ArrayView; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.IrRowPatternToProgramRewriter; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.MatchResult; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.Matcher; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.matcher.Program; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrLabel; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrRowPattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -36,15 +38,15 @@ import java.util.Map; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.alternation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.concatenation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.end; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.excluded; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.label; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.permutation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.questionMarkQuantified; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.starQuantified; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.start; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.alternation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.concatenation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.end; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.excluded; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.label; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.permutation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.questionMarkQuantified; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.starQuantified; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.start; import static org.mockito.Mockito.mock; public class MatcherTest { diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternExpressionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternExpressionTest.java index 536efdf124615..7cbd302f7b963 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternExpressionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/rowpattern/PatternExpressionTest.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression.ArithmeticOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression.BinaryComputation; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression.ComparisonOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression.Computation; -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.expression.ReferenceComputation; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.expression.ArithmeticOperator; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.expression.BinaryComputation; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.expression.ComparisonOperator; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.expression.Computation; +import org.apache.iotdb.calc.execution.operator.process.rowpattern.expression.ReferenceComputation; import org.junit.Test; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/tvf/TableFunctionOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/tvf/TableFunctionOperatorTest.java index e011020525e29..bcd17aa665c47 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/tvf/TableFunctionOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/tvf/TableFunctionOperatorTest.java @@ -19,6 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.tvf; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.function.PartitionRecognizer; +import org.apache.iotdb.calc.execution.operator.process.function.partition.PartitionState; +import org.apache.iotdb.calc.execution.operator.process.function.partition.Slice; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; @@ -26,11 +30,7 @@ import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.PartitionRecognizer; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.partition.PartitionState; -import org.apache.iotdb.db.queryengine.execution.operator.process.function.partition.Slice; import org.apache.iotdb.udf.api.relational.access.Record; import org.apache.tsfile.common.conf.TSFileConfig; @@ -49,8 +49,8 @@ import java.util.List; import java.util.concurrent.ExecutorService; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.TIME_COLUMN_TEMPLATE; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.TIME_COLUMN_TEMPLATE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/RowNumberOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/RowNumberOperatorTest.java index cdf58eb7681c8..65398e9782ce0 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/RowNumberOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/RowNumberOperatorTest.java @@ -19,17 +19,19 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.window.RowNumberOperator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.process.TreeLinearFillOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.common.conf.TSFileConfig; @@ -48,7 +50,6 @@ import java.util.concurrent.ExecutorService; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -320,7 +321,8 @@ public TsBlock next() { builder.declarePositions(timeArray[index].length); index++; return builder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, builder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, builder.getPositionCount())); } @Override diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperatorTest.java index 9c40227661d02..221e351574382 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperatorTest.java @@ -19,20 +19,22 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.window.TableWindowOperator; +import org.apache.iotdb.calc.execution.operator.process.window.function.WindowFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.RankFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.process.TreeLinearFillOperator; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.WindowFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank.RankFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.FrameInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import com.google.common.util.concurrent.ListenableFuture; import org.apache.tsfile.common.conf.TSFileConfig; @@ -50,7 +52,6 @@ import java.util.concurrent.ExecutorService; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; @@ -289,7 +290,8 @@ public TsBlock next() throws Exception { builder.declarePositions(timeArray[index].length); index++; return builder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, builder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, builder.getPositionCount())); } @Override diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperatorTestUtils.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperatorTestUtils.java index 3cdaa0fdb1f6d..9e4c23bd9c352 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperatorTestUtils.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TableWindowOperatorTestUtils.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; + import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; @@ -28,8 +30,6 @@ import java.util.Arrays; import java.util.Collections; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class TableWindowOperatorTestUtils { public static TsBlock createIntsTsBlockWithoutNulls(int[] inputs) { TsBlockBuilder tsBlockBuilder = new TsBlockBuilder(Collections.singletonList(TSDataType.INT32)); @@ -40,7 +40,8 @@ public static TsBlock createIntsTsBlockWithoutNulls(int[] inputs) { } return tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); } public static TsBlock createIntsTsBlockWithoutNulls(int[] inputs, int offset) { @@ -54,7 +55,8 @@ public static TsBlock createIntsTsBlockWithoutNulls(int[] inputs, int offset) { } return tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); } public static TsBlock createIntsTsBlockWithoutNulls( @@ -70,7 +72,8 @@ public static TsBlock createIntsTsBlockWithoutNulls( } return tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); } public static TsBlock createIntsTsBlockWithNulls(int[] inputs) { @@ -87,7 +90,8 @@ public static TsBlock createIntsTsBlockWithNulls(int[] inputs) { } return tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); } public static TsBlock createIntsTsBlockWithNulls(int[] inputs, int offset) { @@ -106,7 +110,8 @@ public static TsBlock createIntsTsBlockWithNulls(int[] inputs, int offset) { } return tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); } public static TsBlock createIntsTsBlockWithNulls(int[] inputs, int startOffset, int endOffset) { @@ -126,6 +131,7 @@ public static TsBlock createIntsTsBlockWithNulls(int[] inputs, int startOffset, } return tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperatorTest.java index 1bbf05f7679b9..d929f251c276f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/TopKRankingOperatorTest.java @@ -19,19 +19,21 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.window.TopKRankingOperator; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.process.TreeLinearFillOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode; import org.apache.tsfile.common.conf.TSFileConfig; import org.apache.tsfile.enums.TSDataType; @@ -51,7 +53,6 @@ import java.util.concurrent.ExecutorService; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -416,7 +417,8 @@ public TsBlock next() { builder.declarePositions(timeArray[index].length); index++; return builder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, builder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, builder.getPositionCount())); } @Override diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/FunctionTestUtils.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/FunctionTestUtils.java index bad56bba9b85d..9da867894fcd7 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/FunctionTestUtils.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/FunctionTestUtils.java @@ -19,13 +19,14 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function; +import org.apache.iotdb.calc.execution.operator.process.window.function.WindowFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.aggregate.AggregationWindowFunction; +import org.apache.iotdb.calc.execution.operator.process.window.function.aggregate.WindowAggregator; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AccumulatorFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.TableAccumulator; import org.apache.iotdb.common.rpc.thrift.TAggregationType; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.aggregate.AggregationWindowFunction; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.aggregate.WindowAggregator; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.FrameInfo; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AccumulatorFactory; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.TableAccumulator; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/aggregate/AggregationWindowFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/aggregate/AggregationWindowFunctionTest.java index 91a60124cbdfe..a7d2001028685 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/aggregate/AggregationWindowFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/aggregate/AggregationWindowFunctionTest.java @@ -19,12 +19,14 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.aggregate; +import org.apache.iotdb.calc.execution.operator.process.window.function.aggregate.AggregationWindowFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.common.rpc.thrift.TAggregationType; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; import org.apache.iotdb.db.queryengine.execution.operator.process.window.TableWindowOperatorTestUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.FunctionTestUtils; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.FrameInfo; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; @@ -38,8 +40,6 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - // For aggregator that supports removeInputs, only SUM is tested, others are similar public class AggregationWindowFunctionTest { private final List inputDataTypes = Collections.singletonList(TSDataType.INT32); @@ -69,7 +69,8 @@ public void testFrameExpansion() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -105,7 +106,8 @@ public void testNotRemovableAggregationReComputation() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -141,7 +143,8 @@ public void testAggregationNoReComputation() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -183,7 +186,8 @@ public void testAggregationReComputation() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/CumeDistFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/CumeDistFunctionTest.java index 5962c44a4b3d7..49aca6ac4385d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/CumeDistFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/CumeDistFunctionTest.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.CumeDistFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.TableWindowOperatorTestUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.FunctionTestUtils; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; @@ -35,8 +37,6 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class CumeDistFunctionTest { private final List inputDataTypes = Collections.singletonList(TSDataType.INT32); private final int[] inputs = {1, 1, 2, 2, 3}; @@ -60,7 +60,8 @@ public void testCumeDistFunction() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/DenseRankFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/DenseRankFunctionTest.java index 576ea56e931cb..8bc38643c85b2 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/DenseRankFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/DenseRankFunctionTest.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.DenseRankFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.TableWindowOperatorTestUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.FunctionTestUtils; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; @@ -35,8 +37,6 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class DenseRankFunctionTest { private final List inputDataTypes = Collections.singletonList(TSDataType.INT32); private final int[] inputs = {0, 1, 1, 1, 2, 2, 3, 4, 4, 5}; @@ -60,7 +60,8 @@ public void testDenseRankFunction() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/NTileFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/NTileFunctionTest.java index 3d08daeef551c..488a103aed08c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/NTileFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/NTileFunctionTest.java @@ -19,8 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.NTileFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.FunctionTestUtils; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -35,8 +37,6 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class NTileFunctionTest { private final List inputDataTypes = Collections.singletonList(TSDataType.INT32); private final List outputDataTypes = @@ -61,7 +61,8 @@ public void testNTileFunctionWhenNIsLarge() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -89,7 +90,8 @@ public void testNTileFunctionUniform() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -117,7 +119,8 @@ public void testNTileFunctionNonUniform() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -137,6 +140,7 @@ private static TsBlock createTsBlockWithN(int[] inputs, int n) { } return tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/PercentRankFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/PercentRankFunctionTest.java index 7883047e3bdcc..56aa1d0ed7b74 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/PercentRankFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/PercentRankFunctionTest.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.PercentRankFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.TableWindowOperatorTestUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.FunctionTestUtils; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; @@ -35,8 +37,6 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class PercentRankFunctionTest { private final List inputDataTypes = Collections.singletonList(TSDataType.INT32); private final int[] inputs = {1, 1, 2, 2, 3}; @@ -60,7 +60,8 @@ public void testPercentRankFunction() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RankFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RankFunctionTest.java index 75c805a90bb7d..d0f9d773ba33a 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RankFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RankFunctionTest.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.RankFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.TableWindowOperatorTestUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.FunctionTestUtils; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; @@ -35,8 +37,6 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class RankFunctionTest { private final List inputDataTypes = Collections.singletonList(TSDataType.INT32); private final int[] inputs = {0, 1, 1, 1, 2, 2, 3, 4, 4, 5}; @@ -60,7 +60,8 @@ public void testRankFunction() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RowNumberFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RowNumberFunctionTest.java index ce960505bf5be..81fdfa5883919 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RowNumberFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/rank/RowNumberFunctionTest.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.rank; +import org.apache.iotdb.calc.execution.operator.process.window.function.rank.RowNumberFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.TableWindowOperatorTestUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.FunctionTestUtils; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; @@ -35,8 +37,6 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class RowNumberFunctionTest { private final List inputDataTypes = Collections.singletonList(TSDataType.INT32); private final int[] inputs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; @@ -59,7 +59,8 @@ public void testRowNumberFunction() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/FirstValueFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/FirstValueFunctionTest.java index 52a6011e3efcb..d064fd96020bd 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/FirstValueFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/FirstValueFunctionTest.java @@ -19,10 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value; +import org.apache.iotdb.calc.execution.operator.process.window.function.value.FirstValueFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.TableWindowOperatorTestUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.FunctionTestUtils; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.FrameInfo; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; @@ -36,8 +38,6 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class FirstValueFunctionTest { private final List inputDataTypes = Collections.singletonList(TSDataType.INT32); // Inputs element less than 0 means this pos is null @@ -69,7 +69,8 @@ public void testFirstValueFunctionIgnoreNull() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -105,7 +106,8 @@ public void testFirstValueFunctionNotIgnoreNull() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LagFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LagFunctionTest.java index 2728df2acc69e..6f5638d6c1689 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LagFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LagFunctionTest.java @@ -19,8 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value; +import org.apache.iotdb.calc.execution.operator.process.window.function.value.LagFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.FunctionTestUtils; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -35,8 +37,6 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class LagFunctionTest { private final List inputDataTypes = Collections.singletonList(TSDataType.INT32); // Inputs element less than 0 means this pos is null @@ -61,7 +61,8 @@ public void testLagFunctionIgnoreNullWithoutDefault() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -90,7 +91,8 @@ public void testLagFunctionIgnoreNullWithDefault() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -115,7 +117,8 @@ public void testLagFunctionNotIgnoreNullWithoutDefault() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -144,7 +147,8 @@ public void testLagFunctionNotIgnoreNullWithDefault() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -174,7 +178,8 @@ private static TsBlock createTsBlockWithDefault(int[] inputs, int offset, int de } return tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); } private static TsBlock createTsBlockWithoutDefault(int[] inputs, int offset) { @@ -193,6 +198,7 @@ private static TsBlock createTsBlockWithoutDefault(int[] inputs, int offset) { } return tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LastValueFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LastValueFunctionTest.java index 64f1269917b86..1aa85d01d3725 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LastValueFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LastValueFunctionTest.java @@ -19,10 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value; +import org.apache.iotdb.calc.execution.operator.process.window.function.value.LastValueFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.TableWindowOperatorTestUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.FunctionTestUtils; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.FrameInfo; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; @@ -36,8 +38,6 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class LastValueFunctionTest { private final List inputDataTypes = Collections.singletonList(TSDataType.INT32); // Inputs element less than 0 means this pos is null @@ -69,7 +69,8 @@ public void testLastValueFunctionIgnoreNull() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -105,7 +106,8 @@ public void testLastValueFunctionNotIgnoreNull() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LeadFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LeadFunctionTest.java index 662be90dc226f..534128abafcf1 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LeadFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/LeadFunctionTest.java @@ -19,8 +19,10 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value; +import org.apache.iotdb.calc.execution.operator.process.window.function.value.LeadFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.FunctionTestUtils; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -35,8 +37,6 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class LeadFunctionTest { private final List inputDataTypes = Collections.singletonList(TSDataType.INT32); // Inputs element less than 0 means this pos is null @@ -61,7 +61,8 @@ public void testLeadFunctionIgnoreNullWithoutDefault() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -90,7 +91,8 @@ public void testLeadFunctionIgnoreNullWithDefault() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -115,7 +117,8 @@ public void testLeadFunctionNotIgnoreNullWithoutDefault() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -144,7 +147,8 @@ public void testLeadFunctionNotIgnoreNullWithDefault() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -174,7 +178,8 @@ private static TsBlock createTsBlockWithDefault(int[] inputs, int offset, int de } return tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); } private static TsBlock createTsBlockWithoutDefault(int[] inputs, int offset) { @@ -193,6 +198,7 @@ private static TsBlock createTsBlockWithoutDefault(int[] inputs, int offset) { } return tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/NthValueFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/NthValueFunctionTest.java index bc8f4f5094f44..e4b580a2f94be 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/NthValueFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/function/value/NthValueFunctionTest.java @@ -19,9 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.function.value; +import org.apache.iotdb.calc.execution.operator.process.window.function.value.NthValueFunction; +import org.apache.iotdb.calc.execution.operator.process.window.partition.PartitionExecutor; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; +import org.apache.iotdb.calc.plan.planner.CommonOperatorUtils; import org.apache.iotdb.db.queryengine.execution.operator.process.window.function.FunctionTestUtils; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.PartitionExecutor; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame.FrameInfo; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -36,8 +38,6 @@ import java.util.Collections; import java.util.List; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator.TIME_COLUMN_TEMPLATE; - public class NthValueFunctionTest { private final List inputDataTypes = Collections.singletonList(TSDataType.INT32); // Inputs element less than 0 means this pos is null @@ -69,7 +69,8 @@ public void testNthValueFunctionIgnoreNull() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -105,7 +106,8 @@ public void testNthValueFunctionNotIgnoreNull() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), expected.length); @@ -139,7 +141,8 @@ public void testNthValueFunctionNotIgnoreNullOutOfBounds() { TsBlock result = tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); Column column = result.getColumn(1); Assert.assertEquals(column.getPositionCount(), inputs.length); @@ -167,6 +170,7 @@ private static TsBlock createTsBlock(int[] inputs, int startOffset, int endOffse } return tsBlockBuilder.build( - new RunLengthEncodedColumn(TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); + new RunLengthEncodedColumn( + CommonOperatorUtils.TIME_COLUMN_TEMPLATE, tsBlockBuilder.getPositionCount())); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/FrameTestUtils.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/FrameTestUtils.java index b8a808ae13588..e0a3e0bad411e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/FrameTestUtils.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/FrameTestUtils.java @@ -19,10 +19,15 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.Partition; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.ColumnList; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.Range; -import org.apache.iotdb.db.queryengine.execution.operator.process.window.utils.RowComparator; +import org.apache.iotdb.calc.execution.operator.process.window.partition.Partition; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.Frame; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.GroupsFrame; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.RangeFrame; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.RowsFrame; +import org.apache.iotdb.calc.execution.operator.process.window.utils.ColumnList; +import org.apache.iotdb.calc.execution.operator.process.window.utils.Range; +import org.apache.iotdb.calc.execution.operator.process.window.utils.RowComparator; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/GroupsFrameTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/GroupsFrameTest.java index e937f147c58db..1cdb0398defea 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/GroupsFrameTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/GroupsFrameTest.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; import org.apache.iotdb.db.queryengine.execution.operator.process.window.TableWindowOperatorTestUtils; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RangeFrameTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RangeFrameTest.java index fe8a5edb7fb59..2ed979c50f364 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RangeFrameTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RangeFrameTest.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; import org.apache.iotdb.db.queryengine.execution.operator.process.window.TableWindowOperatorTestUtils; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RowsFrameTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RowsFrameTest.java index 19b0daeee49f0..47d436fc96e0f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RowsFrameTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/window/partition/frame/RowsFrameTest.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.process.window.partition.frame; +import org.apache.iotdb.calc.execution.operator.process.window.partition.frame.FrameInfo; import org.apache.iotdb.db.queryengine.execution.operator.process.window.TableWindowOperatorTestUtils; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountGroupByLevelMergeOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountGroupByLevelMergeOperatorTest.java index d49186fb98484..e8e6cc8e72607 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountGroupByLevelMergeOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/CountGroupByLevelMergeOperatorTest.java @@ -21,6 +21,7 @@ import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -30,7 +31,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.schema.source.ISchemaSource; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.ITimeSeriesSchemaInfo; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaCountOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaCountOperatorTest.java index 3bdd80a3c1b53..b59689a8deb86 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaCountOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaCountOperatorTest.java @@ -20,6 +20,7 @@ import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -29,7 +30,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.schema.source.ISchemaSource; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.ISchemaInfo; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.ITimeSeriesSchemaInfo; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryScanOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryScanOperatorTest.java index 75d450430add6..7b30ffa84e446 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryScanOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaQueryScanOperatorTest.java @@ -22,6 +22,7 @@ import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; @@ -35,7 +36,6 @@ import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.schema.source.ISchemaSource; import org.apache.iotdb.db.queryengine.execution.operator.schema.source.SchemaSourceFactory; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.schemaengine.schemaregion.ISchemaRegion; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.IDeviceSchemaInfo; import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.ITimeSeriesSchemaInfo; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/IdentitySinkOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/IdentitySinkOperatorTest.java index 443c7fe846d03..4b124afb6dd03 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/IdentitySinkOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/IdentitySinkOperatorTest.java @@ -24,6 +24,7 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -34,7 +35,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.operator.source.SeriesScanOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/SinkOperatorDownStreamNodeIdTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/SinkOperatorDownStreamNodeIdTest.java index 12e295d191aba..03c93dcf0ca6a 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/SinkOperatorDownStreamNodeIdTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/SinkOperatorDownStreamNodeIdTest.java @@ -19,8 +19,11 @@ package org.apache.iotdb.db.queryengine.execution.operator.sink; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -28,13 +31,10 @@ import org.apache.iotdb.db.queryengine.execution.fragment.DataNodeQueryContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; +import org.apache.iotdb.db.queryengine.plan.planner.DataNodeTableOperatorGenerator; import org.apache.iotdb.db.queryengine.plan.planner.LocalExecutionPlanContext; import org.apache.iotdb.db.queryengine.plan.planner.OperatorTreeGenerator; -import org.apache.iotdb.db.queryengine.plan.planner.TableOperatorGenerator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; @@ -97,7 +97,8 @@ public void testSingleDownStreamNodeIdInTable() throws Exception { LocalExecutionPlanContext context = createLocalExecutionPlanContext( new TypeProvider(), "query_name_sink_operator_downstream_id_1", 10001); - TableOperatorGenerator tableOperatorGenerator = new TableOperatorGenerator(metadata); + DataNodeTableOperatorGenerator tableOperatorGenerator = + new DataNodeTableOperatorGenerator(metadata); Mockito.when(mockedPlanNode.accept(tableOperatorGenerator, context)) .thenReturn(Mockito.mock(Operator.class)); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TableScanOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TableScanOperatorTest.java index d0e644eec963f..b4f66dbdcd58d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TableScanOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/TableScanOperatorTest.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.execution.operator.source.relational; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.AbstractTableScanOperatorParameter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.SeriesScanOptions; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverSchedulerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverSchedulerTest.java index b651b62441ed0..69ec3415eeb0d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverSchedulerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverSchedulerTest.java @@ -18,12 +18,12 @@ */ package org.apache.iotdb.db.queryengine.execution.schedule; +import org.apache.iotdb.calc.exception.MemoryNotEnoughException; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.exception.CpuNotEnoughException; -import org.apache.iotdb.db.queryengine.exception.MemoryNotEnoughException; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.driver.IDriver; import org.apache.iotdb.db.queryengine.execution.exchange.IMPPDataExchangeManager; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/expression/predicate/ConvertPredicateToTimeFilterTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/expression/predicate/ConvertPredicateToTimeFilterTest.java index 3e8c75f943d9e..76fd4303a0b74 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/expression/predicate/ConvertPredicateToTimeFilterTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/expression/predicate/ConvertPredicateToTimeFilterTest.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.expression.predicate; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; import org.apache.iotdb.db.queryengine.plan.analyze.PredicateUtils; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; -import org.apache.iotdb.db.utils.TimestampPrecisionUtils; import org.apache.tsfile.read.filter.basic.Filter; import org.apache.tsfile.read.filter.factory.FilterFactory; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeFailTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeFailTest.java index 66dc7edb8fde1..84188d326a7b5 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeFailTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeFailTest.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.analyze; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.parser.StatementGenerator; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeTest.java index 542a3db907d99..2cc9b8faf7e64 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeTest.java @@ -23,10 +23,10 @@ import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.common.header.DatasetHeader; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.binary.AdditionExpression; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/AggregationPushDownTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/AggregationPushDownTest.java index d8e92ab362527..f5154b8277b98 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/AggregationPushDownTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/AggregationPushDownTest.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.optimization; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionFactory; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDownTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDownTest.java index 06140fddafcfd..aae4b28588902 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDownTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/ColumnInjectionPushDownTest.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.optimization; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionFactory; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; -import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy; import org.apache.tsfile.utils.TimeDuration; import org.junit.Test; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/LimitOffsetPushDownTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/LimitOffsetPushDownTest.java index b82d9ed6af28b..6fd1349401039 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/LimitOffsetPushDownTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/LimitOffsetPushDownTest.java @@ -21,19 +21,19 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.analyze.Analyzer; import org.apache.iotdb.db.queryengine.plan.analyze.FakePartitionFetcherImpl; import org.apache.iotdb.db.queryengine.plan.analyze.FakeSchemaFetcherImpl; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.parser.StatementGenerator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.OrderByParameter; -import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.plan.statement.component.GroupByTimeComponent; import org.apache.iotdb.db.queryengine.plan.statement.component.OrderByKey; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/OptimizationTestUtil.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/OptimizationTestUtil.java index b2e13e277741b..42f9614bb2a26 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/OptimizationTestUtil.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/OptimizationTestUtil.java @@ -24,6 +24,7 @@ import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; @@ -33,7 +34,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.parser.StatementGenerator; import org.apache.iotdb.db.queryengine.plan.planner.LogicalPlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; import org.apache.iotdb.db.queryengine.plan.statement.Statement; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/PredicatePushDownTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/PredicatePushDownTest.java index 9d67070dc47c0..d82cf6d906e76 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/PredicatePushDownTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/PredicatePushDownTest.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.optimization; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.junit.Test; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/TestPlanBuilder.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/TestPlanBuilder.java index 9b25ae7787feb..849c5d577b4a6 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/TestPlanBuilder.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/optimization/TestPlanBuilder.java @@ -22,9 +22,10 @@ import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.plan.expression.Expression; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ColumnInjectNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.DeviceViewNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FillNode; @@ -50,7 +51,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.GroupByTimeParameter; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.IntoPathDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.OrderByParameter; -import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.plan.statement.component.OrderByKey; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.queryengine.plan.statement.component.SortItem; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGeneratorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGeneratorTest.java index 168923c7a4285..b98f34a2484d9 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGeneratorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGeneratorTest.java @@ -19,14 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.parser; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.commons.auth.entity.PrivilegeType; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.expression.binary.GreaterEqualExpression; import org.apache.iotdb.db.queryengine.plan.expression.binary.LessThanExpression; import org.apache.iotdb.db.queryengine.plan.expression.binary.LogicAndExpression; @@ -34,8 +36,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimestampOperand; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import org.apache.iotdb.db.queryengine.plan.statement.StatementTestUtils; import org.apache.iotdb.db.queryengine.plan.statement.StatementType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/ExpressionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/ExpressionTest.java index 0b41923a2135d..c022e7ef46eba 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/ExpressionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/ExpressionTest.java @@ -20,7 +20,7 @@ package org.apache.iotdb.db.queryengine.plan.planner; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.common.NodeRef; +import org.apache.iotdb.commons.queryengine.common.NodeRef; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/FragmentInstanceSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/FragmentInstanceSerdeTest.java index 6f488dcafcda5..b387baddff6b2 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/FragmentInstanceSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/FragmentInstanceSerdeTest.java @@ -28,17 +28,17 @@ import org.apache.iotdb.commons.partition.QueryExecutor; import org.apache.iotdb.commons.partition.StorageExecutor; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.analyze.QueryType; import org.apache.iotdb.db.queryengine.plan.expression.ExpressionFactory; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; import org.apache.iotdb.db.queryengine.plan.planner.plan.PlanFragment; import org.apache.iotdb.db.queryengine.plan.planner.plan.TreeModelTimePredicate; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.LimitNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.OffsetNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/PipelineBuilderTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/PipelineBuilderTest.java index 4162f24846bd5..1fd7c42bc84fe 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/PipelineBuilderTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/PipelineBuilderTest.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.planner; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; @@ -26,13 +27,14 @@ import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.fragment.DataNodeQueryContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.process.SingleDeviceViewOperator; import org.apache.iotdb.db.queryengine.execution.operator.process.join.FullOuterTimeJoinOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.AlignedSeriesScanOperator; @@ -43,8 +45,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.memory.ConsumeAllChildrenPipelineMemoryEstimator; import org.apache.iotdb.db.queryengine.plan.planner.memory.ConsumeChildrenOneByOnePipelineMemoryEstimator; import org.apache.iotdb.db.queryengine.plan.planner.memory.PipelineMemoryEstimator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.DeviceViewNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ExchangeNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationAlignByDeviceTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationAlignByDeviceTest.java index ef96700c22bc1..be8fe8599a4e3 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationAlignByDeviceTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationAlignByDeviceTest.java @@ -20,12 +20,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.distribution; import org.apache.iotdb.common.rpc.thrift.TEndPoint; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationMergeSortNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.DeviceViewNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.HorizontallyConcatNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationDistributionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationDistributionTest.java index 75467533b8ead..8e33c451df00a 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationDistributionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationDistributionTest.java @@ -24,6 +24,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; @@ -32,8 +34,6 @@ import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.FragmentInstance; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationMergeSortNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.DeviceViewNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationTableScanTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationTableScanTest.java index f78cae18f37d5..9dc5ecce8639c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationTableScanTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationTableScanTest.java @@ -19,19 +19,19 @@ package org.apache.iotdb.db.queryengine.plan.planner.distribution; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AccumulatorFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.FirstAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.FirstByAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.FirstByDescAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.FirstDescAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.LastAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.LastByAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.LastByDescAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.LastDescAccumulator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.TableAccumulator; import org.apache.iotdb.common.rpc.thrift.TAggregationType; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AccumulatorFactory; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.FirstAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.FirstByAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.FirstByDescAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.FirstDescAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.LastAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.LastByAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.LastByDescAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.LastDescAccumulator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.TableAccumulator; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.tsfile.enums.TSDataType; import org.junit.Test; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignByDeviceOrderByLimitOffsetTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignByDeviceOrderByLimitOffsetTest.java index cff70fc457ce4..972c6d9bcce52 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignByDeviceOrderByLimitOffsetTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignByDeviceOrderByLimitOffsetTest.java @@ -20,12 +20,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.distribution; import org.apache.iotdb.common.rpc.thrift.TEndPoint; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationMergeSortNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.DeviceViewNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ExchangeNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignByTimeOrderByLimitOffsetTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignByTimeOrderByLimitOffsetTest.java index 1cc7e9bbf6bf2..4544d14623ca5 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignByTimeOrderByLimitOffsetTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignByTimeOrderByLimitOffsetTest.java @@ -20,12 +20,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.distribution; import org.apache.iotdb.common.rpc.thrift.TEndPoint; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FillNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.LimitNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignedByDeviceTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignedByDeviceTest.java index 9788584e21790..c8dacb16c4160 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignedByDeviceTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignedByDeviceTest.java @@ -20,12 +20,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.distribution; import org.apache.iotdb.common.rpc.thrift.TEndPoint; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationMergeSortNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.DeviceViewNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/DistributionPlannerBasicTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/DistributionPlannerBasicTest.java index f85284ce38c40..e1befebf0063f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/DistributionPlannerBasicTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/DistributionPlannerBasicTest.java @@ -23,17 +23,17 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.schema.SchemaConstant; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.analyze.QueryType; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.SubPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.SchemaQueryMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.TimeSeriesSchemaScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ExchangeNode; @@ -253,8 +253,7 @@ public void testInsertRowNodeParallelPlan() throws IllegalPathException { new MPPQueryContext( "", queryId, - new SessionInfo( - 0, "test", ZoneId.systemDefault(), "root.sg", IClientSession.SqlDialect.TABLE), + new SessionInfo(0, "test", ZoneId.systemDefault(), "root.sg", SqlDialect.TABLE), new TEndPoint(), new TEndPoint()); context.setQueryType(QueryType.WRITE); @@ -307,8 +306,7 @@ public void testInsertRowsNodeParallelPlan() throws IllegalPathException { new MPPQueryContext( "", queryId, - new SessionInfo( - 0, "test", ZoneId.systemDefault(), "root.sg", IClientSession.SqlDialect.TABLE), + new SessionInfo(0, "test", ZoneId.systemDefault(), "root.sg", SqlDialect.TABLE), new TEndPoint(), new TEndPoint()); context.setQueryType(QueryType.WRITE); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/DistributionPlannerCycleTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/DistributionPlannerCycleTest.java index df2f3d16339d7..d4a0eec11a6d7 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/DistributionPlannerCycleTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/DistributionPlannerCycleTest.java @@ -20,12 +20,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.distribution; import org.apache.iotdb.common.rpc.thrift.TEndPoint; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ExchangeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/LastQueryTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/LastQueryTest.java index 203ccf3f3303c..85a15b161e4e7 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/LastQueryTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/LastQueryTest.java @@ -23,13 +23,13 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ExchangeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.last.LastQueryCollectNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.last.LastQueryMergeNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/NoDataRegionPlanningTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/NoDataRegionPlanningTest.java index 28fd1a922c644..acb82d8fe93d6 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/NoDataRegionPlanningTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/NoDataRegionPlanningTest.java @@ -20,12 +20,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.distribution; import org.apache.iotdb.common.rpc.thrift.TEndPoint; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.junit.Test; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/RegionScanPlanningTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/RegionScanPlanningTest.java index e7238a41713b8..205758304e0ef 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/RegionScanPlanningTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/RegionScanPlanningTest.java @@ -23,12 +23,12 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ActiveRegionScanMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.DeviceRegionScanNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util.java index 8e37fa5b62161..e4d3a0c4ba9ca 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util.java @@ -34,6 +34,7 @@ import org.apache.iotdb.commons.partition.executor.SeriesPartitionExecutor; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.schema.template.Template; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; @@ -52,7 +53,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.parser.StatementGenerator; import org.apache.iotdb.db.queryengine.plan.planner.LogicalPlanner; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import org.apache.iotdb.db.queryengine.plan.statement.crud.QueryStatement; import org.apache.iotdb.mpp.rpc.thrift.TRegionRouteReq; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util2.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util2.java index 040651d747b19..bb37c554eab79 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util2.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/Util2.java @@ -33,6 +33,7 @@ import org.apache.iotdb.commons.partition.executor.SeriesPartitionExecutor; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.schema.template.Template; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; @@ -49,7 +50,6 @@ import org.apache.iotdb.db.queryengine.plan.analyze.schema.ISchemaFetcher; import org.apache.iotdb.db.queryengine.plan.parser.StatementGenerator; import org.apache.iotdb.db.queryengine.plan.planner.LogicalPlanner; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import org.apache.iotdb.db.queryengine.plan.statement.crud.QueryStatement; import org.apache.iotdb.mpp.rpc.thrift.TRegionRouteReq; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/DataQueryLogicalPlannerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/DataQueryLogicalPlannerTest.java index 34cbe60bb0763..1e88743f2aba1 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/DataQueryLogicalPlannerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/DataQueryLogicalPlannerTest.java @@ -22,6 +22,7 @@ import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.commons.schema.column.ColumnHeaderConstant; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.plan.expression.Expression; @@ -29,7 +30,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.binary.LogicAndExpression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.DeviceViewNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FilterNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.GroupByLevelNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/LogicalPlannerTestUtil.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/LogicalPlannerTestUtil.java index f48b2ef6d4395..e9f37ab277bca 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/LogicalPlannerTestUtil.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/LogicalPlannerTestUtil.java @@ -19,18 +19,18 @@ package org.apache.iotdb.db.queryengine.plan.planner.logical; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.auth.AuthorityChecker; import org.apache.iotdb.db.queryengine.common.DataNodeEndPoints; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; import org.apache.iotdb.db.queryengine.plan.analyze.Analyzer; import org.apache.iotdb.db.queryengine.plan.analyze.FakePartitionFetcherImpl; import org.apache.iotdb.db.queryengine.plan.analyze.FakeSchemaFetcherImpl; import org.apache.iotdb.db.queryengine.plan.parser.StatementGenerator; import org.apache.iotdb.db.queryengine.plan.planner.LogicalPlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.statement.Statement; import java.time.ZoneId; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/RegionScanLogicalPlannerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/RegionScanLogicalPlannerTest.java index ec99453147592..b7accedfd293d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/RegionScanLogicalPlannerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/RegionScanLogicalPlannerTest.java @@ -23,15 +23,15 @@ import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.DeviceContext; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.common.TimeseriesContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.LimitNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.OffsetNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.DeviceRegionScanNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/SchemaQueryLogicalPlannerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/SchemaQueryLogicalPlannerTest.java index 31de153d2874f..e3448929a127f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/SchemaQueryLogicalPlannerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/logical/SchemaQueryLogicalPlannerTest.java @@ -22,6 +22,8 @@ import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.filter.SchemaFilterType; import org.apache.iotdb.commons.schema.filter.impl.PathContainsFilter; import org.apache.iotdb.commons.schema.filter.impl.TagFilter; @@ -29,8 +31,6 @@ import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.parser.StatementGenerator; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.DevicesSchemaScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.NodeManagementMemoryMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.NodePathsConvertNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/PlanGraphPrinterTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/PlanGraphPrinterTest.java index 19db60271bc7a..446548a1724c1 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/PlanGraphPrinterTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/PlanGraphPrinterTest.java @@ -21,7 +21,7 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.DeviceViewNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TopKNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/PlanNodeDeserializeHelper.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/PlanNodeDeserializeHelper.java index cff5031f8481d..dedeffd52cbe5 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/PlanNodeDeserializeHelper.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/PlanNodeDeserializeHelper.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.node; import org.apache.iotdb.commons.exception.IllegalPathException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import java.nio.ByteBuffer; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/load/LoadTsFileNodeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/load/LoadTsFileNodeTest.java index a22ab8f6739ae..e589810894610 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/load/LoadTsFileNodeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/load/LoadTsFileNodeTest.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.node.load; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.load.LoadSingleTsFileNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.load.LoadTsFilePieceNode; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/DeviceSchemaFetchScanNodeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/DeviceSchemaFetchScanNodeTest.java index 48c8dc290574a..552ea88b96371 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/DeviceSchemaFetchScanNodeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/DeviceSchemaFetchScanNodeTest.java @@ -22,8 +22,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.DeviceSchemaFetchScanNode; import org.junit.Assert; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/DeviceSchemaScanNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/DeviceSchemaScanNodeSerdeTest.java index df356f41c93c7..8c65623b7eec2 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/DeviceSchemaScanNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/DeviceSchemaScanNodeSerdeTest.java @@ -21,12 +21,12 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.DevicesSchemaScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.SchemaQueryMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ExchangeNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/NodeManagementMemoryMergeNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/NodeManagementMemoryMergeNodeSerdeTest.java index 7b12f6d1dd713..c1e21577c9c30 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/NodeManagementMemoryMergeNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/NodeManagementMemoryMergeNodeSerdeTest.java @@ -23,13 +23,13 @@ import org.apache.iotdb.common.rpc.thrift.TSchemaNode; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.commons.schema.node.MNodeType; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.NodeManagementMemoryMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.NodePathsConvertNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.NodePathsCountNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/PathsUsingTemplateScanNodeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/PathsUsingTemplateScanNodeTest.java index 1b772aae5b448..4d8243457c71b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/PathsUsingTemplateScanNodeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/PathsUsingTemplateScanNodeTest.java @@ -22,9 +22,9 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.SchemaConstant; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.PathsUsingTemplateScanNode; import org.junit.Assert; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/SchemaCountNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/SchemaCountNodeSerdeTest.java index 11cd1f75f5ffc..b5dca43728929 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/SchemaCountNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/SchemaCountNodeSerdeTest.java @@ -21,12 +21,12 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.CountSchemaMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.DevicesCountNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.LevelTimeSeriesCountNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/SchemaFetchMergeNodeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/SchemaFetchMergeNodeTest.java index d33cbb95f2adf..0bcf6f21c913a 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/SchemaFetchMergeNodeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/SchemaFetchMergeNodeTest.java @@ -22,8 +22,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.SchemaFetchMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.SeriesSchemaFetchScanNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/SeriesSchemaFetchScanNodeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/SeriesSchemaFetchScanNodeTest.java index 5b72db254b0aa..6a88ed2e7690c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/SeriesSchemaFetchScanNodeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/SeriesSchemaFetchScanNodeTest.java @@ -22,8 +22,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.SeriesSchemaFetchScanNode; import org.junit.Assert; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/TimeSeriesSchemaScanNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/TimeSeriesSchemaScanNodeSerdeTest.java index 07761c29b02ca..343acdb36d15d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/TimeSeriesSchemaScanNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/read/TimeSeriesSchemaScanNodeSerdeTest.java @@ -21,12 +21,12 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.SchemaConstant; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.SchemaQueryMergeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.read.TimeSeriesSchemaScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ExchangeNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/write/MetadataWriteNodeSerDeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/write/MetadataWriteNodeSerDeTest.java index 94bba57a611bf..3ac85f40b4208 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/write/MetadataWriteNodeSerDeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/metadata/write/MetadataWriteNodeSerDeTest.java @@ -23,11 +23,11 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression; import org.apache.iotdb.commons.schema.view.viewExpression.leaf.TimeSeriesViewOperand; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.ActivateTemplateNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.AlterTimeSeriesNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.BatchActivateTemplateNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedDeleteDataNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedDeleteDataNodeSerdeTest.java index f6add9efe89bd..7c43657f2324d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedDeleteDataNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedDeleteDataNodeSerdeTest.java @@ -22,9 +22,9 @@ import org.apache.iotdb.commons.consensus.index.impl.MinimumProgressIndex; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeEnrichedDeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedInsertNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedInsertNodeSerdeTest.java index 3c709af7a5288..827621087d97f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedInsertNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedInsertNodeSerdeTest.java @@ -21,8 +21,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeEnrichedInsertNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedNonWritePlanNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedNonWritePlanNodeSerdeTest.java index bd7527c153baa..1e7bd5c60e8c3 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedNonWritePlanNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedNonWritePlanNodeSerdeTest.java @@ -22,9 +22,9 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; import org.apache.iotdb.commons.path.PathPatternTree; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.DeleteTimeSeriesNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeEnrichedNonWritePlanNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedWritePlanNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedWritePlanNodeSerdeTest.java index df7c7e8f2c4a8..f3cee4d781813 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedWritePlanNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/pipe/PipeEnrichedWritePlanNodeSerdeTest.java @@ -20,9 +20,9 @@ package org.apache.iotdb.db.queryengine.plan.planner.node.pipe; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.InternalBatchActivateTemplateNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.pipe.PipeEnrichedWritePlanNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/AggregationNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/AggregationNodeSerdeTest.java index 6dcf512e15286..575b6475b4e10 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/AggregationNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/AggregationNodeSerdeTest.java @@ -23,9 +23,9 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.AggregationNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesAggregationScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/DeviceViewNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/DeviceViewNodeSerdeTest.java index 264cb2aa0b66f..d80672c23f89c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/DeviceViewNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/DeviceViewNodeSerdeTest.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.node.process; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.DeviceViewNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.OrderByParameter; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/ExchangeNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/ExchangeNodeSerdeTest.java index a66fe4be15f24..9754d93a03514 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/ExchangeNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/ExchangeNodeSerdeTest.java @@ -20,11 +20,11 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.ExchangeNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/FillNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/FillNodeSerdeTest.java index 3594ead5b0e73..4d877bdd08b9d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/FillNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/FillNodeSerdeTest.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.planner.node.process; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FillNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.FillDescriptor; -import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.queryengine.plan.statement.literal.LongLiteral; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/FilterNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/FilterNodeSerdeTest.java index 998df88719b41..ae08a21722a82 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/FilterNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/FilterNodeSerdeTest.java @@ -20,12 +20,12 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.expression.Expression; import org.apache.iotdb.db.queryengine.plan.expression.binary.GreaterThanExpression; import org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.FilterNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/GroupByLevelNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/GroupByLevelNodeSerdeTest.java index 93a4d30d23122..d53d5da59e993 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/GroupByLevelNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/GroupByLevelNodeSerdeTest.java @@ -22,9 +22,9 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.GroupByLevelNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesAggregationScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/GroupByTagNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/GroupByTagNodeSerdeTest.java index 779f18f964c00..0bea8b23a708e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/GroupByTagNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/GroupByTagNodeSerdeTest.java @@ -22,10 +22,10 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.GroupByTagNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesAggregationScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/IntoNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/IntoNodeSerdeTest.java index 8c048814d0d54..c75e8cdd72dc8 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/IntoNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/IntoNodeSerdeTest.java @@ -21,15 +21,15 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.DeviceViewIntoNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.IntoNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.DeviceViewIntoPathDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.IntoPathDescriptor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.ImmutableList; import org.apache.tsfile.read.common.type.FloatType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/LimitNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/LimitNodeSerdeTest.java index 1687b3658874a..ef83945ef2ced 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/LimitNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/LimitNodeSerdeTest.java @@ -20,8 +20,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.LimitNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.OffsetNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/OffsetNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/OffsetNodeSerdeTest.java index a418d7f73b6a7..12b1760a48a18 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/OffsetNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/OffsetNodeSerdeTest.java @@ -20,8 +20,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.OffsetNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/SingleDeviceViewNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/SingleDeviceViewNodeSerdeTest.java index cf95180339c7a..822ba52bc063b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/SingleDeviceViewNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/SingleDeviceViewNodeSerdeTest.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.node.process; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleDeviceViewNode; import org.apache.tsfile.file.metadata.IDeviceID; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/SortNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/SortNodeSerdeTest.java index e43d44d06ba8f..447b86bf652b5 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/SortNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/SortNodeSerdeTest.java @@ -20,8 +20,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SortNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.OrderByParameter; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/TimeJoinNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/TimeJoinNodeSerdeTest.java index b2743223e5c42..2f9bbbdfe8f26 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/TimeJoinNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/TimeJoinNodeSerdeTest.java @@ -20,9 +20,9 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.InnerTimeJoinNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.LeftOuterTimeJoinNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/WindowNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/WindowNodeSerdeTest.java index baf95593e3730..b8d1abe622db7 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/WindowNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/process/WindowNodeSerdeTest.java @@ -21,22 +21,22 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionId; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionKind; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.FunctionNullability; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionId; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionKind; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.FunctionNullability; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/sink/IdentitySinkNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/sink/IdentitySinkNodeSerdeTest.java index 5d2cdd8d798b5..2bd61622f2322 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/sink/IdentitySinkNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/sink/IdentitySinkNodeSerdeTest.java @@ -21,9 +21,9 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; import org.apache.iotdb.mpp.rpc.thrift.TFragmentInstanceId; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/sink/ShuffleSinkHandleNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/sink/ShuffleSinkHandleNodeSerdeTest.java index 9963572729b22..8f1d111d0f22f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/sink/ShuffleSinkHandleNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/sink/ShuffleSinkHandleNodeSerdeTest.java @@ -21,9 +21,9 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.exception.IllegalPathException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.execution.exchange.sink.DownStreamChannelLocation; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.ShuffleSinkNode; import org.apache.iotdb.mpp.rpc.thrift.TFragmentInstanceId; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/source/SeriesAggregationScanNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/source/SeriesAggregationScanNodeSerdeTest.java index 2929ea8eaff9a..f484eff1466f4 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/source/SeriesAggregationScanNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/source/SeriesAggregationScanNodeSerdeTest.java @@ -18,14 +18,14 @@ */ package org.apache.iotdb.db.queryengine.plan.planner.node.source; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.common.rpc.thrift.TAggregationType; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesAggregationScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.parameter.AggregationStep; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/source/SeriesScanNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/source/SeriesScanNodeSerdeTest.java index ce4d62056a8a1..2f84e5a2f6b63 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/source/SeriesScanNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/source/SeriesScanNodeSerdeTest.java @@ -18,11 +18,11 @@ */ package org.apache.iotdb.db.queryengine.plan.planner.node.source; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; -import org.apache.iotdb.db.exception.query.QueryProcessException; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/source/SourceNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/source/SourceNodeSerdeTest.java index e3f781453d4cb..7e617bed8a9b3 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/source/SourceNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/source/SourceNodeSerdeTest.java @@ -22,15 +22,15 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.LastQueryScanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.ShowDiskUsageNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.ShowQueriesNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableDiskUsageInformationSchemaTableScanNode; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/ContinuousSameSearchIndexSeparatorNodeSerDeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/ContinuousSameSearchIndexSeparatorNodeSerDeTest.java index ec77a59da2844..c932aed474e7e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/ContinuousSameSearchIndexSeparatorNodeSerDeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/ContinuousSameSearchIndexSeparatorNodeSerDeTest.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.planner.node.write; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.ContinuousSameSearchIndexSeparatorNode; import org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALByteBufferForTest; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/DeleteDataNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/DeleteDataNodeSerdeTest.java index 78d0b4349deef..16cb07f86c477 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/DeleteDataNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/DeleteDataNodeSerdeTest.java @@ -22,9 +22,9 @@ import org.apache.iotdb.commons.consensus.index.impl.MinimumProgressIndex; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.junit.Assert; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertMultiTabletsNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertMultiTabletsNodeSerdeTest.java index 215e71c8a809a..b71c6dea18aa0 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertMultiTabletsNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertMultiTabletsNodeSerdeTest.java @@ -21,8 +21,8 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertMultiTabletsNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertRowNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertRowNodeSerdeTest.java index 523b061428241..dbe69da246221 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertRowNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertRowNodeSerdeTest.java @@ -21,8 +21,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALByteBufferForTest; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertRowsNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertRowsNodeSerdeTest.java index 1fcc77a3f01ce..08819830557ed 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertRowsNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertRowsNodeSerdeTest.java @@ -21,9 +21,9 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertRowNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertRowsOfOneDeviceNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertRowsOfOneDeviceNodeSerdeTest.java index 692d96e950692..2cffd65e41e21 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertRowsOfOneDeviceNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertRowsOfOneDeviceNodeSerdeTest.java @@ -21,8 +21,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsOfOneDeviceNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertTabletNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertTabletNodeSerdeTest.java index 420b7e7b73fd9..4d8f5f6e4a80f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertTabletNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/InsertTabletNodeSerdeTest.java @@ -21,9 +21,9 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertTabletNode; import org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALByteBufferForTest; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/WritePlanNodeSplitTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/WritePlanNodeSplitTest.java index 8d23bc848b9eb..3b8f972380962 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/WritePlanNodeSplitTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/node/write/WritePlanNodeSplitTest.java @@ -32,11 +32,11 @@ import org.apache.iotdb.commons.partition.DataPartitionQueryParam; import org.apache.iotdb.commons.partition.executor.SeriesPartitionExecutor; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.commons.utils.TimePartitionUtils; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.WritePlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertMultiTabletsNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalDeleteDataNodeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalDeleteDataNodeTest.java index e51a8b99db91d..78b7a400283e5 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalDeleteDataNodeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/RelationalDeleteDataNodeTest.java @@ -20,9 +20,9 @@ package org.apache.iotdb.db.queryengine.plan.planner.plan.node.write; import org.apache.iotdb.commons.consensus.index.impl.IoTProgressIndex; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.storageengine.dataregion.modification.DeletionPredicate; import org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.And; import org.apache.iotdb.db.storageengine.dataregion.modification.IDPredicate.FullExactMatch; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationCornerCaseTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationCornerCaseTest.java index 6f133757a89cf..424eb75118c79 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationCornerCaseTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationCornerCaseTest.java @@ -19,22 +19,22 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.GroupedAggregator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.HashAggregationOperator; +import org.apache.iotdb.calc.execution.operator.source.relational.aggregation.grouped.StreamingHashAggregationOperator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.GroupedAggregator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.HashAggregationOperator; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.StreamingHashAggregationOperator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; @@ -52,16 +52,16 @@ import java.util.List; import java.util.OptionalInt; +import static org.apache.iotdb.calc.execution.operator.process.join.merge.MergeSortComparator.getComparatorForTable; +import static org.apache.iotdb.calc.execution.operator.source.relational.aggregation.AccumulatorFactory.createGroupedAccumulator; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.TIME_COLUMN_TEMPLATE; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash.DEFAULT_GROUP_NUMBER; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.EXTREME; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.FIRST; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.LAST; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.SUM; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinAggregationFunction.getAggregationTypeByFuncName; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator.getComparatorForTable; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.TIME_COLUMN_TEMPLATE; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.AccumulatorFactory.createGroupedAccumulator; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash.DEFAULT_GROUP_NUMBER; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationTest.java index 2227a26f93e18..9998ca76f4e14 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AggregationTest.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlanTester; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -35,6 +35,13 @@ import java.util.Optional; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.ADD; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.MULTIPLY; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregationFunction; @@ -48,13 +55,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.ADD; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.MULTIPLY; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN; // This test covers the remaining DistributionPlan cases that TSBSTest doesn't cover public class AggregationTest { diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AnalyzerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AnalyzerTest.java index 8c4bc256493a2..e862673537499 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AnalyzerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AnalyzerTest.java @@ -29,51 +29,51 @@ import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.DataPartitionQueryParam; import org.apache.iotdb.commons.partition.executor.SeriesPartitionExecutor; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.function.OperatorType; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CollectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.commons.schema.table.InsertNodeMeasurementInfo; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.InternalClientSession; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.PlanFragment; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertTabletNode; -import org.apache.iotdb.db.queryengine.plan.relational.function.OperatorType; import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnHandle; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.ITableDeviceSchemaValidation; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.OperatorNotFoundException; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableHeaderSchemaValidator; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.TableLogicalPlanner; import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; import org.apache.iotdb.db.queryengine.plan.relational.security.AllowAllAccessControl; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewriteFactory; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.queryengine.plan.statement.StatementTestUtils; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; @@ -135,7 +135,7 @@ public class AnalyzerTest { ZoneId.systemDefault(), IoTDBConstant.ClientVersion.V_1_0, database, - IClientSession.SqlDialect.TABLE); + SqlDialect.TABLE); Metadata metadata = new TestMetadata(); WarningCollector warningCollector = NOOP; String sql; @@ -1372,8 +1372,7 @@ public static Analysis analyzeSQL(String sql, Metadata metadata, final MPPQueryC sqlParser.createStatement( sql, ZoneId.systemDefault(), new InternalClientSession("testClient")); SessionInfo session = - new SessionInfo( - 0, "test", ZoneId.systemDefault(), "testdb", IClientSession.SqlDialect.TABLE); + new SessionInfo(0, "test", ZoneId.systemDefault(), "testdb", SqlDialect.TABLE); return analyzeStatement(statement, metadata, context, sqlParser, session); } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AsofInnerJoinOperatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AsofInnerJoinOperatorTest.java index 9fe263685549f..3a32053f06de1 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AsofInnerJoinOperatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AsofInnerJoinOperatorTest.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.join.merge.comparator.JoinKeyComparatorFactory; +import org.apache.iotdb.calc.execution.operator.source.relational.AsofMergeSortInnerJoinOperator; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.comparator.JoinKeyComparatorFactory; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.AsofMergeSortInnerJoinOperator; import org.apache.iotdb.db.queryengine.plan.planner.memory.ThreadSafeMemoryReservationManager; import com.google.common.util.concurrent.ListenableFuture; @@ -43,7 +43,7 @@ import java.util.Collections; import java.util.concurrent.TimeUnit; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.TIME_COLUMN_TEMPLATE; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.TIME_COLUMN_TEMPLATE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AsofJoinTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AsofJoinTest.java index 62ec85d27745b..40ba055604322 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AsofJoinTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AsofJoinTest.java @@ -19,19 +19,22 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlanTester; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import org.junit.Test; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.Ordering.ASCENDING; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.Ordering.DESCENDING; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestUtils.assertAnalyzeSemanticException; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.equiJoinClause; @@ -44,9 +47,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.sort; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.LAST; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.Ordering.ASCENDING; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.Ordering.DESCENDING; public class AsofJoinTest { @Test diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AuthTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AuthTest.java index 631640d5dda5a..2ba2dc93c6841 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AuthTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AuthTest.java @@ -20,19 +20,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; import org.apache.iotdb.commons.exception.auth.AccessDeniedException; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.execution.config.TableConfigTaskVisitor; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControlImpl; import org.apache.iotdb.db.queryengine.plan.relational.security.ITableAuthChecker; import org.apache.iotdb.db.queryengine.plan.relational.security.TableModelPrivilege; import org.apache.iotdb.db.queryengine.plan.relational.security.TreeAccessCheckVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewrite; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import org.junit.Test; import org.mockito.Mockito; @@ -219,8 +220,7 @@ private void analyzeSQL( Statement statement = sqlParser.createStatement(sql, zoneId, clientSession); SessionInfo session = - new SessionInfo( - 0, userName, zoneId, databaseNameInSessionInfo, IClientSession.SqlDialect.TABLE); + new SessionInfo(0, userName, zoneId, databaseNameInSessionInfo, SqlDialect.TABLE); StatementAnalyzerFactory statementAnalyzerFactory = new StatementAnalyzerFactory( TEST_MATADATA, @@ -245,8 +245,7 @@ private void analyzeConfigTask(String sql, String userName, ITableAuthChecker au Mockito.when(clientSession.getDatabaseName()).thenReturn(null); Statement statement = sqlParser.createStatement(sql, zoneId, clientSession); - SessionInfo session = - new SessionInfo(0, userName, zoneId, null, IClientSession.SqlDialect.TABLE); + SessionInfo session = new SessionInfo(0, userName, zoneId, null, SqlDialect.TABLE); MPPQueryContext context = new MPPQueryContext(sql, QUERY_ID, 0, session, null, null); statement.accept( @@ -261,8 +260,7 @@ private void analyzeConfigTask(String sql, String userName, ITableAuthChecker au private void analyzeConfigTask( String sql, String userName, ITableAuthChecker authChecker, IClientSession clientSession) { Statement statement = sqlParser.createStatement(sql, zoneId, clientSession); - SessionInfo session = - new SessionInfo(0, userName, zoneId, null, IClientSession.SqlDialect.TABLE); + SessionInfo session = new SessionInfo(0, userName, zoneId, null, SqlDialect.TABLE); MPPQueryContext context = new MPPQueryContext(sql, QUERY_ID, 0, session, null, null); statement.accept( diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/DistinctTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/DistinctTest.java index 6cccf387a66fe..e1fa72c3dfa9f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/DistinctTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/DistinctTest.java @@ -30,6 +30,7 @@ import java.util.Optional; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregationFunction; @@ -43,7 +44,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; public class DistinctTest { // ================================================================== diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExtractExpressionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExtractExpressionTest.java index 5dbdf2903ee7f..cda0113527b76 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExtractExpressionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExtractExpressionTest.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlanTester; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; import com.google.common.collect.ImmutableMap; import org.junit.BeforeClass; import org.junit.Test; +import static org.apache.iotdb.commons.queryengine.utils.DateTimeUtils.initTimestampPrecision; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestUtils.assertAnalyzeSemanticException; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.expression; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.output; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan; -import static org.apache.iotdb.db.utils.DateTimeUtils.initTimestampPrecision; public class ExtractExpressionTest { @BeforeClass diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/InsertIntoQueryTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/InsertIntoQueryTest.java index 879356acaee95..3dfd85ebbbdaa 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/InsertIntoQueryTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/InsertIntoQueryTest.java @@ -19,10 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.TableLogicalPlanner; @@ -30,10 +34,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.IntoNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; import org.junit.BeforeClass; import org.junit.Test; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/JoinTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/JoinTest.java index 1b178b50449da..411ef3f6829b5 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/JoinTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/JoinTest.java @@ -19,41 +19,41 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.calc.execution.operator.Operator; +import org.apache.iotdb.calc.execution.operator.process.join.SimpleNestedLoopCrossJoinOperator; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.driver.DriverContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.OperatorContext; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.SimpleNestedLoopCrossJoinOperator; import org.apache.iotdb.db.queryengine.execution.operator.source.relational.TableScanOperator; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlanTester; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.TableLogicalPlanner; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern; import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import com.google.common.collect.ImmutableList; @@ -72,8 +72,13 @@ import java.util.List; import java.util.Optional; +import static org.apache.iotdb.calc.plan.planner.CommonOperatorUtils.TIME_COLUMN_TEMPLATE; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; import static org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.AbstractTableScanOperator.TIME_COLUMN_TEMPLATE; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.AnalyzerTest.analyzeSQL; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestUtils.ALL_DEVICE_ENTRIES; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestUtils.BEIJING_A1_DEVICE_ENTRY; @@ -100,11 +105,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.sort; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/LimitOffsetPushDownTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/LimitOffsetPushDownTest.java index fbe814ff25bc0..470cd83e3d189 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/LimitOffsetPushDownTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/LimitOffsetPushDownTest.java @@ -20,25 +20,25 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; import org.apache.iotdb.commons.conf.IoTDBConstant; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CollectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlanTester; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.TableLogicalPlanner; import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; import org.junit.BeforeClass; import org.junit.Test; @@ -71,7 +71,7 @@ public class LimitOffsetPushDownTest { ZoneId.systemDefault(), IoTDBConstant.ClientVersion.V_1_0, "db", - IClientSession.SqlDialect.TABLE); + SqlDialect.TABLE); Metadata metadata = new TestMetadata(); String sql; Analysis analysis; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PushAggregationThroughUnionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PushAggregationThroughUnionTest.java index 722c8ce992d47..aa48336e68320 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PushAggregationThroughUnionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/PushAggregationThroughUnionTest.java @@ -19,16 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; import org.apache.iotdb.db.queryengine.plan.relational.planner.TableLogicalPlanner; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern; import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/RowPatternRecognitionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/RowPatternRecognitionTest.java index ecb8c6fb26652..b37c08de8e144 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/RowPatternRecognitionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/RowPatternRecognitionTest.java @@ -14,16 +14,16 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.protocol.session.IClientSession; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; import org.apache.iotdb.db.queryengine.plan.relational.security.AllowAllAccessControl; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewriteFactory; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import org.junit.Assert; import org.junit.Test; @@ -464,8 +464,7 @@ public static void analyzeSQL(String sql, Metadata metadata, final MPPQueryConte SqlParser sqlParser = new SqlParser(); Statement statement = sqlParser.createStatement(sql, ZoneId.systemDefault(), null); SessionInfo session = - new SessionInfo( - 0, "test", ZoneId.systemDefault(), "testdb", IClientSession.SqlDialect.TABLE); + new SessionInfo(0, "test", ZoneId.systemDefault(), "testdb", SqlDialect.TABLE); analyzeStatement(statement, metadata, context, sqlParser, session); } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SortTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SortTest.java index 2f6a028ea4a46..40797da29a90f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SortTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SortTest.java @@ -19,12 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; @@ -32,14 +40,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.junit.BeforeClass; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SubQueryTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SubQueryTest.java index 156123604b5d5..56a377d227bf8 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SubQueryTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/SubQueryTest.java @@ -19,10 +19,17 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.sink.IdentitySinkNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlanTester; import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolAllocator; @@ -30,13 +37,6 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.distribute.TableDistributedPlanner; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; import org.junit.BeforeClass; import org.junit.Test; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSMetadata.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSMetadata.java index 49f23e0358c59..8035fc6bd725c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSMetadata.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSMetadata.java @@ -24,29 +24,29 @@ import org.apache.iotdb.commons.partition.SchemaNodeManagementPartition; import org.apache.iotdb.commons.partition.SchemaPartition; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.function.OperatorType; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnMetadata; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeManager; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeNotFoundException; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignature; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinAggregationFunction; import org.apache.iotdb.commons.schema.table.InsertNodeMeasurementInfo; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.analyze.IPartitionFetcher; -import org.apache.iotdb.db.queryengine.plan.relational.function.OperatorType; import org.apache.iotdb.db.queryengine.plan.relational.metadata.AlignedDeviceEntry; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnMetadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.ITableDeviceSchemaValidation; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.OperatorNotFoundException; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableHeaderSchemaValidator; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeNotFoundException; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignature; -import org.apache.iotdb.db.queryengine.plan.udf.BuiltinAggregationFunction; import org.apache.iotdb.mpp.rpc.thrift.TRegionRouteReq; import org.apache.iotdb.udf.api.relational.TableFunction; @@ -66,6 +66,9 @@ import java.util.Optional; import java.util.concurrent.atomic.AtomicBoolean; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isOneNumericType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isTwoNumericType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isTwoTypeComparable; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.MockTSBSDataPartition.T1_DEVICE_1; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.MockTSBSDataPartition.T1_DEVICE_2; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.MockTSBSDataPartition.T1_DEVICE_3; @@ -73,9 +76,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.MockTSBSDataPartition.T2_DEVICE_2; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.MockTSBSDataPartition.T2_DEVICE_3; import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.getFunctionType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isOneNumericType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isTwoNumericType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isTwoTypeComparable; import static org.apache.tsfile.read.common.type.BinaryType.TEXT; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; @@ -278,11 +278,6 @@ public boolean canCoerce(Type from, Type to) { return true; } - @Override - public IPartitionFetcher getPartitionFetcher() { - return getFakePartitionFetcher(); - } - @Override public Map> indexScan( QualifiedObjectName tableName, diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSTest.java index 9a0417131205f..f3b76a70ba401 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSTest.java @@ -19,16 +19,16 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlanTester; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -38,6 +38,15 @@ import java.util.Optional; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.DIVIDE; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.MULTIPLY; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction.DATE_BIN; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation; @@ -50,15 +59,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.output; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.DIVIDE; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.MULTIPLY; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN_OR_EQUAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN; @Ignore // TODO public class TSBSTest { diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TableFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TableFunctionTest.java index 344c69cfc1a71..9ead3d187ac82 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TableFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TableFunctionTest.java @@ -19,13 +19,13 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.ForecastTableFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.ForecastTableFunction; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlanTester; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.TableFunctionProcessorMatcher; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; import org.apache.iotdb.udf.api.relational.EmptyTableFunctionHandle; import org.apache.iotdb.udf.api.relational.table.MapTableFunctionHandle; @@ -37,11 +37,15 @@ import java.util.Collections; import java.util.function.Consumer; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.ForecastTableFunction.DEFAULT_OUTPUT_INTERVAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.ForecastTableFunction.DEFAULT_OUTPUT_START_TIME; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.FIRST; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.Ordering.ASCENDING; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.Ordering.DESCENDING; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.AnalyzerTest.analyzeSQL; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestUtils.QUERY_CONTEXT; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestUtils.TEST_MATADATA; -import static org.apache.iotdb.db.queryengine.plan.relational.function.tvf.ForecastTableFunction.DEFAULT_OUTPUT_INTERVAL; -import static org.apache.iotdb.db.queryengine.plan.relational.function.tvf.ForecastTableFunction.DEFAULT_OUTPUT_START_TIME; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregationFunction; @@ -57,10 +61,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableFunctionProcessor; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.topK; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.FIRST; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.LAST; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.Ordering.ASCENDING; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.Ordering.DESCENDING; import static org.apache.iotdb.udf.api.type.Type.DOUBLE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestMetadata.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestMetadata.java index 722212b78b78a..b71395f15bf51 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestMetadata.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestMetadata.java @@ -19,47 +19,47 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.DataPartitionQueryParam; import org.apache.iotdb.commons.partition.SchemaNodeManagementPartition; import org.apache.iotdb.commons.partition.SchemaPartition; import org.apache.iotdb.commons.path.PathPatternTree; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.function.OperatorType; +import org.apache.iotdb.commons.queryengine.plan.relational.function.TableBuiltinTableFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic.SubtractionResolver; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnMetadata; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeManager; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeNotFoundException; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignature; +import org.apache.iotdb.commons.queryengine.plan.udf.BuiltinAggregationFunction; +import org.apache.iotdb.commons.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.commons.schema.table.InsertNodeMeasurementInfo; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.analyze.IPartitionFetcher; import org.apache.iotdb.db.queryengine.plan.function.Exclude; import org.apache.iotdb.db.queryengine.plan.function.Repeat; import org.apache.iotdb.db.queryengine.plan.function.Split; -import org.apache.iotdb.db.queryengine.plan.relational.function.OperatorType; -import org.apache.iotdb.db.queryengine.plan.relational.function.TableBuiltinTableFunction; -import org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic.SubtractionResolver; import org.apache.iotdb.db.queryengine.plan.relational.metadata.AlignedDeviceEntry; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnMetadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.ITableDeviceSchemaValidation; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.NonAlignedDeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.OperatorNotFoundException; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.TreeDeviceViewSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableHeaderSchemaValidator; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeNotFoundException; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignature; -import org.apache.iotdb.db.queryengine.plan.udf.BuiltinAggregationFunction; -import org.apache.iotdb.db.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.db.schemaengine.table.InformationSchemaUtils; import org.apache.iotdb.mpp.rpc.thrift.TRegionRouteReq; import org.apache.iotdb.udf.api.relational.TableFunction; @@ -83,6 +83,9 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isOneNumericType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isTwoNumericType; +import static org.apache.iotdb.calc.plan.relational.metadata.CommonMetadataUtils.isTwoTypeComparable; import static org.apache.iotdb.commons.schema.table.InformationSchema.INFORMATION_DATABASE; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.MockTableModelDataPartition.DEVICE_1; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.MockTableModelDataPartition.DEVICE_1_ATTRIBUTES; @@ -97,9 +100,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.MockTableModelDataPartition.DEVICE_6; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.MockTableModelDataPartition.DEVICE_6_ATTRIBUTES; import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.getFunctionType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isOneNumericType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isTwoNumericType; -import static org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl.isTwoTypeComparable; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; import static org.apache.tsfile.read.common.type.DoubleType.DOUBLE; import static org.apache.tsfile.read.common.type.LongType.INT64; @@ -318,11 +318,6 @@ public boolean canCoerce(final Type from, final Type to) { return true; } - @Override - public IPartitionFetcher getPartitionFetcher() { - return getFakePartitionFetcher(); - } - @Override public Map> indexScan( final QualifiedObjectName tableName, diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestPlanBuilder.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestPlanBuilder.java index 4b0136d892327..3243ea3311bc9 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestPlanBuilder.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestPlanBuilder.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.metadata.DeviceEntry; import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import java.util.List; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestUtils.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestUtils.java index e2d8e494b7ac4..9ad78fbea89fa 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestUtils.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestUtils.java @@ -20,20 +20,20 @@ package org.apache.iotdb.db.queryengine.plan.relational.analyzer; import org.apache.iotdb.commons.conf.IoTDBConstant; -import org.apache.iotdb.db.protocol.session.IClientSession; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; @@ -68,7 +68,7 @@ public class TestUtils { ZoneId.systemDefault(), IoTDBConstant.ClientVersion.V_1_0, "db", - IClientSession.SqlDialect.TABLE); + SqlDialect.TABLE); public static final Metadata TEST_MATADATA = new TestMetadata(); public static final MPPQueryContext QUERY_CONTEXT = new MPPQueryContext("only for test", QUERY_ID, SESSION_INFO, null, null); @@ -178,8 +178,7 @@ public static void assertAnalyzeSemanticException(String sql, String message) { SqlParser sqlParser = new SqlParser(); Statement statement = sqlParser.createStatement(sql, ZoneId.systemDefault(), null); SessionInfo session = - new SessionInfo( - 0, "test", ZoneId.systemDefault(), "testdb", IClientSession.SqlDialect.TABLE); + new SessionInfo(0, "test", ZoneId.systemDefault(), "testdb", SqlDialect.TABLE); analyzeStatementWithException(statement, TEST_MATADATA, QUERY_CONTEXT, sqlParser, session); fail("Expect test sql throws exception: " + sql); } catch (Exception e) { diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TreeViewTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TreeViewTest.java index 1dcd7d5487af5..959bd4b9d6abb 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TreeViewTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TreeViewTest.java @@ -35,6 +35,9 @@ import java.util.Optional; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestMetadata.DEVICE_VIEW_TEST_TABLE; import static org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestMetadata.TREE_VIEW_DB; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan; @@ -50,9 +53,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.treeAlignedDeviceViewTableScan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.treeDeviceViewTableScan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.treeNonAlignedDeviceViewTableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.INTERMEDIATE; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL; public class TreeViewTest { diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CorrelatedSubqueryTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CorrelatedSubqueryTest.java index e7baf8078f112..ddcce852d1c22 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CorrelatedSubqueryTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CorrelatedSubqueryTest.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -36,6 +36,7 @@ import java.util.Collections; import java.util.Optional; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.expression; @@ -46,7 +47,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.sort; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; public class CorrelatedSubqueryTest { @Test diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteMaterializerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteMaterializerTest.java index 431610b582b0e..97273efb6ec99 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteMaterializerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteMaterializerTest.java @@ -23,6 +23,10 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.exception.IoTDBException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -32,10 +36,6 @@ import org.apache.iotdb.db.queryengine.plan.execution.QueryExecution; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -57,6 +57,10 @@ import java.util.List; import java.util.Optional; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.Ordering.ASCENDING; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregationFunction; @@ -69,10 +73,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.sort; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.LAST; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.Ordering.ASCENDING; import static org.powermock.api.mockito.PowerMockito.mockStatic; import static org.powermock.api.mockito.PowerMockito.when; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteSubqueryTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteSubqueryTest.java index e4b9bf5edc3a4..2a8c3e4777dbb 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteSubqueryTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/CteSubqueryTest.java @@ -23,6 +23,9 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.exception.IoTDBException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.commons.schema.column.ColumnHeader; import org.apache.iotdb.db.protocol.session.SessionManager; import org.apache.iotdb.db.queryengine.common.QueryId; @@ -32,9 +35,6 @@ import org.apache.iotdb.db.queryengine.plan.execution.QueryExecution; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -53,12 +53,12 @@ import java.util.List; import java.util.Optional; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.collect; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.exchange; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.output; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; import static org.powermock.api.mockito.PowerMockito.mockStatic; import static org.powermock.api.mockito.PowerMockito.when; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExampleTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExampleTest.java index f05b7e5e437fc..d4013efb9302c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExampleTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/ExampleTest.java @@ -19,22 +19,28 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import org.junit.Test; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.ADD; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.AND; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.Ordering.ASCENDING; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.Ordering.DESCENDING; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.any; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.anyTree; @@ -48,12 +54,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.project; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.sort; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression.Operator.ADD; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression.Operator.AND; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.LAST; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.Ordering.ASCENDING; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.Ordering.DESCENDING; public class ExampleTest { @Test diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PatternRecognitionNodeSerdeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PatternRecognitionNodeSerdeTest.java index 35b1d06517744..4651cb2720b38 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PatternRecognitionNodeSerdeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PatternRecognitionNodeSerdeTest.java @@ -21,23 +21,26 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.Measure; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowsPerMatch; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SkipToPosition; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrLabel; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrRowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.LogicalIndexPointer; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ScalarValuePointer; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; import org.apache.iotdb.db.queryengine.plan.planner.node.PlanNodeDeserializeHelper; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.Measure; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.PatternRecognitionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowsPerMatch; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SkipToPosition; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.LogicalIndexPointer; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ScalarValuePointer; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import com.google.common.collect.ImmutableList; @@ -57,10 +60,10 @@ import java.util.Optional; import java.util.Set; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.concatenation; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.excluded; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.label; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.Patterns.starQuantified; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.concatenation; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.excluded; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.label; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.Patterns.starQuantified; import static org.junit.Assert.assertEquals; public class PatternRecognitionNodeSerdeTest { diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanTester.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanTester.java index 968b0d28de9fa..573c06453422f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanTester.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PlanTester.java @@ -21,16 +21,19 @@ import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; import org.apache.iotdb.commons.conf.IoTDBConstant; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.MPPQueryContext.ExplainType; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector; import org.apache.iotdb.db.queryengine.plan.planner.plan.DistributedQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analyzer; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.StatementAnalyzerFactory; @@ -43,10 +46,8 @@ import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.DataNodeLocationSupplierFactory; import org.apache.iotdb.db.queryengine.plan.relational.planner.optimizations.PlanOptimizer; import org.apache.iotdb.db.queryengine.plan.relational.security.AllowAllAccessControl; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewriteFactory; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import com.google.common.collect.ImmutableList; import org.mockito.Mockito; @@ -69,7 +70,7 @@ public class PlanTester { ZoneId.systemDefault(), IoTDBConstant.ClientVersion.V_1_0, "db", - IClientSession.SqlDialect.TABLE); + SqlDialect.TABLE); private final Metadata metadata; private DistributedQueryPlan distributedQueryPlan; @@ -195,8 +196,7 @@ public static Analysis analyze(String sql, Metadata metadata, MPPQueryContext co Mockito.when(clientSession.getDatabaseName()).thenReturn(databaseName); Statement statement = sqlParser.createStatement(sql, ZoneId.systemDefault(), clientSession); SessionInfo session = - new SessionInfo( - 0, "test", ZoneId.systemDefault(), databaseName, IClientSession.SqlDialect.TABLE); + new SessionInfo(0, "test", ZoneId.systemDefault(), databaseName, SqlDialect.TABLE); return analyzeStatement(statement, metadata, context, sqlParser, session); } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PredicateUtilsTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PredicateUtilsTest.java index 66569e8241728..51df25a68d08d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PredicateUtilsTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/PredicateUtilsTest.java @@ -20,14 +20,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; import org.apache.iotdb.commons.conf.IoTDBConstant; -import org.apache.iotdb.db.protocol.session.IClientSession; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.Analysis; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestMetadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import org.apache.tsfile.utils.Pair; import org.junit.Test; @@ -52,7 +52,7 @@ public void extractGlobalTimePredicateTest() { ZoneId.systemDefault(), IoTDBConstant.ClientVersion.V_1_0, "db", - IClientSession.SqlDialect.TABLE), + SqlDialect.TABLE), null, null); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/UncorrelatedSubqueryTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/UncorrelatedSubqueryTest.java index 3a0a0acd20364..dd7883f26adbd 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/UncorrelatedSubqueryTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/UncorrelatedSubqueryTest.java @@ -19,15 +19,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.PredicateWithUncorrelatedScalarSubqueryReconstructor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -39,6 +39,12 @@ import java.util.Collections; import java.util.Optional; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanAssert.assertPlan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregation; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.aggregationFunction; @@ -54,12 +60,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.singleGroupingSet; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.sort; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.tableScan; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.FINAL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.PARTIAL; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode.Step.SINGLE; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.GREATER_THAN; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.LESS_THAN_OR_EQUAL; public class UncorrelatedSubqueryTest { private PlanTester planTester; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationDeviceTableScanMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationDeviceTableScanMatcher.java index ff47c33ec8fa1..28cf3727c5e1d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationDeviceTableScanMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationDeviceTableScanMatcher.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunction.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunction.java index fbf3d4dd8bde7..3acfc75395edd 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunction.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunction.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import java.util.List; import java.util.Optional; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunctionMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunctionMatcher.java index 8e66c9f19e71b..8f84da3f7f122 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunctionMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunctionMatcher.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import java.util.Map; import java.util.Objects; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunctionProvider.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunctionProvider.java index 2f6dbfb90527d..38ad646f26326 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunctionProvider.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationFunctionProvider.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationMatcher.java index ccfe2813ef535..54c7cdc70041c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationMatcher.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import java.util.Collection; import java.util.List; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationStepMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationStepMatcher.java index 7c82a1646b8c6..c2088792942cb 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationStepMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AggregationStepMatcher.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkState; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AliasMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AliasMatcher.java index 178a9e1b3e666..523a8a85ca76e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AliasMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AliasMatcher.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode; import java.util.Optional; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AliasPresent.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AliasPresent.java index 2b20e165943b5..a5cb70903bbde 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AliasPresent.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AliasPresent.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import java.util.Optional; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AsofJoinClauseProvider.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AsofJoinClauseProvider.java index c02f41bc8ae06..508ed2a12b29b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AsofJoinClauseProvider.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AsofJoinClauseProvider.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AssignUniqueIdMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AssignUniqueIdMatcher.java index 6ff4a6b9e4ce2..df7c743c338cc 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AssignUniqueIdMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/AssignUniqueIdMatcher.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; import java.util.Optional; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/BaseStrictSymbolsMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/BaseStrictSymbolsMatcher.java index 9ac9f8016848c..7617382df17de 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/BaseStrictSymbolsMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/BaseStrictSymbolsMatcher.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import java.util.Set; import java.util.function.Function; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ColumnReference.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ColumnReference.java index cff4126cde71b..b53a62fa5b823 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ColumnReference.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ColumnReference.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/CteScanMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/CteScanMatcher.java index 8db77ad51ae8e..1c63a84ce70bb 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/CteScanMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/CteScanMatcher.java @@ -21,10 +21,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode; import java.util.List; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/DeviceTableScanMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/DeviceTableScanMatcher.java index 9998146446be1..afa8884d55fdf 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/DeviceTableScanMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/DeviceTableScanMatcher.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import java.util.List; import java.util.Optional; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/EquiJoinClauseProvider.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/EquiJoinClauseProvider.java index c151b6874a6f8..3705582f9c4ad 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/EquiJoinClauseProvider.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/EquiJoinClauseProvider.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; import static java.util.Objects.requireNonNull; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExchangeNodeMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExchangeNodeMatcher.java index 52069bf3c8050..127eaf6b199d7 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExchangeNodeMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExchangeNodeMatcher.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import static com.google.common.base.Preconditions.checkState; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExpressionMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExpressionMatcher.java index eb82e059b6c40..aa60d377c1c71 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExpressionMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExpressionMatcher.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExpressionVerifier.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExpressionVerifier.java index bd7fc1adb7555..084f64db4b2d7 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExpressionVerifier.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/ExpressionVerifier.java @@ -19,37 +19,37 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DecimalLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DecimalLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Row; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; import java.util.List; import java.util.Optional; @@ -89,7 +89,7 @@ * NOT (X = 3 AND X = 3 AND X < 10) * */ -public final class ExpressionVerifier extends AstVisitor { +public final class ExpressionVerifier implements AstVisitor { private final SymbolAliases symbolAliases; public ExpressionVerifier(SymbolAliases symbolAliases) { @@ -97,13 +97,13 @@ public ExpressionVerifier(SymbolAliases symbolAliases) { } @Override - protected Boolean visitNode(Node node, Expression expectedExpression) { + public Boolean visitNode(Node node, Expression expectedExpression) { throw new IllegalStateException( format("Node %s is not supported", node.getClass().getSimpleName())); } @Override - protected Boolean visitGenericLiteral(GenericLiteral actual, Expression expectedExpression) { + public Boolean visitGenericLiteral(GenericLiteral actual, Expression expectedExpression) { if (!(expectedExpression instanceof GenericLiteral)) { return false; } @@ -113,7 +113,7 @@ protected Boolean visitGenericLiteral(GenericLiteral actual, Expression expected } @Override - protected Boolean visitStringLiteral(StringLiteral actual, Expression expectedExpression) { + public Boolean visitStringLiteral(StringLiteral actual, Expression expectedExpression) { if (!(expectedExpression instanceof StringLiteral)) { return false; } @@ -122,7 +122,7 @@ protected Boolean visitStringLiteral(StringLiteral actual, Expression expectedEx } @Override - protected Boolean visitLongLiteral(LongLiteral actual, Expression expectedExpression) { + public Boolean visitLongLiteral(LongLiteral actual, Expression expectedExpression) { if (!(expectedExpression instanceof LongLiteral)) { return false; } @@ -131,7 +131,7 @@ protected Boolean visitLongLiteral(LongLiteral actual, Expression expectedExpres } @Override - protected Boolean visitDoubleLiteral(DoubleLiteral actual, Expression expectedExpression) { + public Boolean visitDoubleLiteral(DoubleLiteral actual, Expression expectedExpression) { if (!(expectedExpression instanceof DoubleLiteral)) { return false; } @@ -140,7 +140,7 @@ protected Boolean visitDoubleLiteral(DoubleLiteral actual, Expression expectedEx } @Override - protected Boolean visitFloatLiteral(FloatLiteral actual, Expression expectedExpression) { + public Boolean visitFloatLiteral(FloatLiteral actual, Expression expectedExpression) { if (!(expectedExpression instanceof FloatLiteral)) { return false; } @@ -149,7 +149,7 @@ protected Boolean visitFloatLiteral(FloatLiteral actual, Expression expectedExpr } @Override - protected Boolean visitDecimalLiteral(DecimalLiteral actual, Expression expectedExpression) { + public Boolean visitDecimalLiteral(DecimalLiteral actual, Expression expectedExpression) { if (!(expectedExpression instanceof DecimalLiteral)) { return false; } @@ -158,7 +158,7 @@ protected Boolean visitDecimalLiteral(DecimalLiteral actual, Expression expected } @Override - protected Boolean visitBooleanLiteral(BooleanLiteral actual, Expression expectedExpression) { + public Boolean visitBooleanLiteral(BooleanLiteral actual, Expression expectedExpression) { if (!(expectedExpression instanceof BooleanLiteral)) { return false; } @@ -167,7 +167,7 @@ protected Boolean visitBooleanLiteral(BooleanLiteral actual, Expression expected } @Override - protected Boolean visitNullLiteral(NullLiteral node, Expression expectedExpression) { + public Boolean visitNullLiteral(NullLiteral node, Expression expectedExpression) { return expectedExpression instanceof NullLiteral; } @@ -205,7 +205,7 @@ private static String getValueFromLiteral(Node expression) { } @Override - protected Boolean visitSymbolReference(SymbolReference actual, Expression expectedExpression) { + public Boolean visitSymbolReference(SymbolReference actual, Expression expectedExpression) { if (!(expectedExpression instanceof SymbolReference)) { return false; } @@ -215,7 +215,7 @@ protected Boolean visitSymbolReference(SymbolReference actual, Expression expect } @Override - protected Boolean visitDereferenceExpression( + public Boolean visitDereferenceExpression( DereferenceExpression actual, Expression expectedExpression) { if (!(expectedExpression instanceof DereferenceExpression)) { return false; @@ -227,7 +227,7 @@ protected Boolean visitDereferenceExpression( } @Override - protected Boolean visitIfExpression(IfExpression actual, Expression expectedExpression) { + public Boolean visitIfExpression(IfExpression actual, Expression expectedExpression) { if (!(expectedExpression instanceof IfExpression)) { return false; } @@ -239,7 +239,7 @@ && process(actual.getTrueValue(), expected.getTrueValue()) } @Override - protected Boolean visitCast(Cast actual, Expression expectedExpression) { + public Boolean visitCast(Cast actual, Expression expectedExpression) { if (!(expectedExpression instanceof Cast)) { return false; } @@ -259,7 +259,7 @@ protected Boolean visitCast(Cast actual, Expression expectedExpression) { } @Override - protected Boolean visitIsNullPredicate(IsNullPredicate actual, Expression expectedExpression) { + public Boolean visitIsNullPredicate(IsNullPredicate actual, Expression expectedExpression) { if (!(expectedExpression instanceof IsNullPredicate)) { return false; } @@ -269,8 +269,7 @@ protected Boolean visitIsNullPredicate(IsNullPredicate actual, Expression expect } @Override - protected Boolean visitIsNotNullPredicate( - IsNotNullPredicate actual, Expression expectedExpression) { + public Boolean visitIsNotNullPredicate(IsNotNullPredicate actual, Expression expectedExpression) { if (!(expectedExpression instanceof IsNotNullPredicate)) { return false; } @@ -280,7 +279,7 @@ protected Boolean visitIsNotNullPredicate( } @Override - protected Boolean visitInPredicate(InPredicate actual, Expression expectedExpression) { + public Boolean visitInPredicate(InPredicate actual, Expression expectedExpression) { if (!(expectedExpression instanceof InPredicate)) { return false; } @@ -320,7 +319,7 @@ protected Boolean visitInPredicate(InPredicate actual, Expression expectedExpres } @Override - protected Boolean visitInListExpression(InListExpression actual, Expression expectedExpression) { + public Boolean visitInListExpression(InListExpression actual, Expression expectedExpression) { if (!(expectedExpression instanceof InListExpression)) { return false; } @@ -330,7 +329,7 @@ protected Boolean visitInListExpression(InListExpression actual, Expression expe } @Override - protected Boolean visitComparisonExpression( + public Boolean visitComparisonExpression( ComparisonExpression actual, Expression expectedExpression) { if (!(expectedExpression instanceof ComparisonExpression)) { return false; @@ -349,7 +348,7 @@ && process(actual.getLeft(), expected.getRight()) } @Override - protected Boolean visitBetweenPredicate(BetweenPredicate actual, Expression expectedExpression) { + public Boolean visitBetweenPredicate(BetweenPredicate actual, Expression expectedExpression) { if (!(expectedExpression instanceof BetweenPredicate)) { return false; } @@ -361,7 +360,7 @@ && process(actual.getMin(), expected.getMin()) } @Override - protected Boolean visitArithmeticUnary( + public Boolean visitArithmeticUnary( ArithmeticUnaryExpression actual, Expression expectedExpression) { if (!(expectedExpression instanceof ArithmeticUnaryExpression)) { return false; @@ -373,7 +372,7 @@ protected Boolean visitArithmeticUnary( } @Override - protected Boolean visitArithmeticBinary( + public Boolean visitArithmeticBinary( ArithmeticBinaryExpression actual, Expression expectedExpression) { if (!(expectedExpression instanceof ArithmeticBinaryExpression)) { return false; @@ -386,7 +385,7 @@ && process(actual.getLeft(), expected.getLeft()) } @Override - protected Boolean visitNotExpression(NotExpression actual, Expression expectedExpression) { + public Boolean visitNotExpression(NotExpression actual, Expression expectedExpression) { if (!(expectedExpression instanceof NotExpression)) { return false; } @@ -396,8 +395,7 @@ protected Boolean visitNotExpression(NotExpression actual, Expression expectedEx } @Override - protected Boolean visitLogicalExpression( - LogicalExpression actual, Expression expectedExpression) { + public Boolean visitLogicalExpression(LogicalExpression actual, Expression expectedExpression) { if (!(expectedExpression instanceof LogicalExpression)) { return false; } @@ -418,8 +416,7 @@ protected Boolean visitLogicalExpression( } @Override - protected Boolean visitCoalesceExpression( - CoalesceExpression actual, Expression expectedExpression) { + public Boolean visitCoalesceExpression(CoalesceExpression actual, Expression expectedExpression) { if (!(expectedExpression instanceof CoalesceExpression)) { return false; } @@ -438,7 +435,7 @@ protected Boolean visitCoalesceExpression( } @Override - protected Boolean visitSimpleCaseExpression( + public Boolean visitSimpleCaseExpression( SimpleCaseExpression actual, Expression expectedExpression) { if (!(expectedExpression instanceof SimpleCaseExpression)) { return false; @@ -451,8 +448,7 @@ && process(actual.getWhenClauses(), expected.getWhenClauses()) } @Override - protected Boolean visitSearchedCaseExpression( - SearchedCaseExpression actual, Expression expected) { + public Boolean visitSearchedCaseExpression(SearchedCaseExpression actual, Expression expected) { if (!(expected instanceof SearchedCaseExpression)) { return false; } @@ -470,7 +466,7 @@ protected Boolean visitSearchedCaseExpression( } @Override - protected Boolean visitWhenClause(WhenClause actual, Expression expectedExpression) { + public Boolean visitWhenClause(WhenClause actual, Expression expectedExpression) { if (!(expectedExpression instanceof WhenClause)) { return false; } @@ -481,7 +477,7 @@ protected Boolean visitWhenClause(WhenClause actual, Expression expectedExpressi } @Override - protected Boolean visitFunctionCall(FunctionCall actual, Expression expectedExpression) { + public Boolean visitFunctionCall(FunctionCall actual, Expression expectedExpression) { if (!(expectedExpression instanceof FunctionCall)) { return false; } @@ -492,7 +488,7 @@ protected Boolean visitFunctionCall(FunctionCall actual, Expression expectedExpr } @Override - protected Boolean visitRow(Row actual, Expression expectedExpression) { + public Boolean visitRow(Row actual, Expression expectedExpression) { if (!(expectedExpression instanceof Row)) { return false; } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/FilterMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/FilterMatcher.java index 0382a70f4b654..5f8b050009161 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/FilterMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/FilterMatcher.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkState; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/GroupMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/GroupMatcher.java index ff17bdfec3c95..2a5a93fd0b8a1 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/GroupMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/GroupMatcher.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; import java.util.List; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/IdentityProjectionMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/IdentityProjectionMatcher.java index e9ed8b6084b3b..19f7513afb8bd 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/IdentityProjectionMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/IdentityProjectionMatcher.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import static com.google.common.base.Preconditions.checkState; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.MatchResult.NO_MATCH; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/InformationSchemaTableScanMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/InformationSchemaTableScanMatcher.java index 0f23cd6195103..b844eba482618 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/InformationSchemaTableScanMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/InformationSchemaTableScanMatcher.java @@ -20,8 +20,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/JoinMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/JoinMatcher.java index 090e4a0bc3bc9..82b5af04d4ce0 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/JoinMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/JoinMatcher.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/LimitMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/LimitMatcher.java index 9eca6cf3a102e..b634485e79911 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/LimitMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/LimitMatcher.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.Ordering; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/MarkDistinctMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/MarkDistinctMatcher.java index 27c74560f8d65..a37204b8d156d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/MarkDistinctMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/MarkDistinctMatcher.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MarkDistinctNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/MatchResult.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/MatchResult.java index 91f53ff7eb4ef..1c22383628e4e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/MatchResult.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/MatchResult.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import static java.util.Objects.requireNonNull; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/Matcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/Matcher.java index fca33e9645670..773fbb7ea3417 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/Matcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/Matcher.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; public interface Matcher { diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/NotPlanNodeMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/NotPlanNodeMatcher.java index bc3dfc4061b9a..f0f66cd38c45a 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/NotPlanNodeMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/NotPlanNodeMatcher.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import static com.google.common.base.MoreObjects.toStringHelper; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/OffsetMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/OffsetMatcher.java index 7fc084b9cf7e7..8db7e0744ac12 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/OffsetMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/OffsetMatcher.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkState; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/OutputMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/OutputMatcher.java index ae328ead57b8b..30babd3c4ba1c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/OutputMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/OutputMatcher.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanAssert.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanAssert.java index 729f1c9d400a6..b28808303c423 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanAssert.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanAssert.java @@ -20,15 +20,15 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; import org.apache.iotdb.commons.conf.IoTDBConstant; -import org.apache.iotdb.db.protocol.session.IClientSession; -import org.apache.iotdb.db.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.iterative.GroupReference; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanGraphPrinter; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.analyzer.TestMetadata; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlanNodeSearcher; -import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; import java.time.ZoneId; @@ -58,7 +58,7 @@ public static void assertPlan(PlanNode actual, PlanMatchPattern pattern) { ZoneId.systemDefault(), IoTDBConstant.ClientVersion.V_1_0, "db", - IClientSession.SqlDialect.TABLE), + SqlDialect.TABLE), new TestMetadata(), actual, noLookup(), diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java index 2ca57e5296a5b..01acba6b5d9df 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java @@ -19,51 +19,51 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.iterative.GroupReference; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CollectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MarkDistinctNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowNumberNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTableScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AggregationTreeDeviceViewScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AlignedAggregationTreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.AssignUniqueId; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CollectNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.CteScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.DeviceTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.EnforceSingleRowNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExplainAnalyzeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.FilterNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.GroupNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.InformationSchemaTableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.LimitNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MarkDistinctNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.MergeSortNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.NonAlignedAggregationTreeDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OffsetNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.OutputNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowNumberNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.StreamSortNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKRankingNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeAlignedDeviceViewScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeDeviceViewScanNode; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TreeNonAlignedDeviceViewScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.UnionNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import com.google.common.collect.ImmutableList; @@ -86,18 +86,18 @@ import static com.google.common.collect.ImmutableMap.toImmutableMap; import static java.util.Collections.nCopies; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_FIRST; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_LAST; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.DESC_NULLS_FIRST; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder.DESC_NULLS_LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_FIRST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.ASC_NULLS_LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.DESC_NULLS_FIRST; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder.DESC_NULLS_LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.FIRST; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.UNDEFINED; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.Ordering.ASCENDING; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem.Ordering.DESCENDING; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.MatchResult.NO_MATCH; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.MatchResult.match; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.StrictAssignedSymbolsMatcher.actualAssignments; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.StrictSymbolsMatcher.actualOutputs; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.FIRST; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.NullOrdering.UNDEFINED; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.Ordering.ASCENDING; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem.Ordering.DESCENDING; public final class PlanMatchPattern { private final List matchers = new ArrayList<>(); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchingVisitor.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchingVisitor.java index b7db9aeac252e..7d78f4fdc7f49 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchingVisitor.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchingVisitor.java @@ -19,24 +19,24 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.iterative.GroupReference; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.GroupReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.iterative.Lookup; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ExchangeNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import java.util.List; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments.identity; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments.identity; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.MatchResult.NO_MATCH; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.MatchResult.match; -final class PlanMatchingVisitor extends PlanVisitor { +final class PlanMatchingVisitor implements PlanVisitor { private final Metadata metadata; private final SessionInfo sessionInfo; @@ -60,7 +60,7 @@ public MatchResult visitTableExchange(ExchangeNode node, PlanMatchPattern patter @Override public MatchResult visitProject(ProjectNode node, PlanMatchPattern pattern) { - MatchResult result = super.visitProject(node, pattern); + MatchResult result = PlanVisitor.super.visitProject(node, pattern); if (!result.isMatch()) { return result; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanNodeMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanNodeMatcher.java index 40a8516b4292a..98a4269d16394 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanNodeMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanNodeMatcher.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import static com.google.common.base.MoreObjects.toStringHelper; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanTestSymbol.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanTestSymbol.java index 2973de06e6a12..9c3bd371ae3d0 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanTestSymbol.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanTestSymbol.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; public interface PlanTestSymbol { Symbol toSymbol(SymbolAliases aliases); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PredicateMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PredicateMatcher.java index c5d31103b10e1..d71246e5598b0 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PredicateMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PredicateMatcher.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import java.util.function.Predicate; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/RvalueMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/RvalueMatcher.java index 5dc691db37f23..233a64f858065 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/RvalueMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/RvalueMatcher.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import java.util.Optional; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SemiJoinMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SemiJoinMatcher.java index 7ee9192254e79..67916ee1c5bee 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SemiJoinMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SemiJoinMatcher.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SemiJoinNode; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkState; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SortMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SortMatcher.java index 3a95f579b3139..c4a55172f402a 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SortMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SortMatcher.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.Ordering; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.SortNode; import java.util.List; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SpecificationProvider.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SpecificationProvider.java index 2186a745894be..35961e93bc56d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SpecificationProvider.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SpecificationProvider.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SortOrder; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.SortOrder; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/StrictAssignedSymbolsMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/StrictAssignedSymbolsMatcher.java index 706efd4eb6749..6ccdf9b9b585e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/StrictAssignedSymbolsMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/StrictAssignedSymbolsMatcher.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.ProjectNode; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/StrictSymbolsMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/StrictSymbolsMatcher.java index f80ecc2f3bf6a..1000316be76e8 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/StrictSymbolsMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/StrictSymbolsMatcher.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SymbolAlias.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SymbolAlias.java index 0e01d178b357c..5f018ed07a441 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SymbolAlias.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SymbolAlias.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import static java.util.Objects.requireNonNull; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SymbolAliases.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SymbolAliases.java index 536a7b3b355b9..3f7edff7f74af 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SymbolAliases.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SymbolAliases.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionRewriter; import org.apache.iotdb.db.queryengine.plan.relational.planner.ir.ExpressionTreeRewriter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableMap; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableFunctionProcessorMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableFunctionProcessorMatcher.java index c0c534f494d57..84f57489a3a87 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableFunctionProcessorMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableFunctionProcessorMatcher.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.udf.api.relational.table.TableFunctionHandle; import com.google.common.collect.ImmutableList; @@ -38,7 +38,6 @@ import static java.util.Objects.requireNonNull; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.MatchResult.NO_MATCH; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.MatchResult.match; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.node; public class TableFunctionProcessorMatcher implements Matcher { private final String name; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableScanMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableScanMatcher.java index 9d1f3091b27ff..109b3bfca7e3c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableScanMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableScanMatcher.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TableScanNode; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; import java.util.List; import java.util.Optional; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TopKMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TopKMatcher.java index 018a693e55cb9..a6a645961bcec 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TopKMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TopKMatcher.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.TopKNode; import java.util.List; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/Util.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/Util.java index 17c26cb4a2145..aa66287c28aef 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/Util.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/Util.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.Ordering; import java.util.List; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/WindowFunctionMatcher.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/WindowFunctionMatcher.java index 8d360cc1f8db3..406ae9ae8771d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/WindowFunctionMatcher.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/WindowFunctionMatcher.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.plan.relational.planner.assertions; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.node.WindowNode; import java.util.List; import java.util.Objects; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/informationschema/CurrentQueriesTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/informationschema/CurrentQueriesTest.java index 06bdc06216ca9..91673ac899d46 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/informationschema/CurrentQueriesTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/informationschema/CurrentQueriesTest.java @@ -18,17 +18,18 @@ */ package org.apache.iotdb.db.queryengine.plan.relational.planner.informationschema; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.planner.plan.LogicalQueryPlan; import org.apache.iotdb.db.queryengine.plan.relational.planner.PlanTester; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import org.junit.Test; import java.util.Optional; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; import static org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.BIN; import static org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.CLIENT_IP; import static org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.COST_TIME; @@ -46,7 +47,6 @@ import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.filter; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.infoSchemaTableScan; import static org.apache.iotdb.db.queryengine.plan.relational.planner.assertions.PlanMatchPattern.output; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression.Operator.EQUAL; public class CurrentQueriesTest { private final PlanTester planTester = new PlanTester(); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/predicate/TablePredicateConversionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/predicate/TablePredicateConversionTest.java index ee00556d30b56..3c38de79b2c85 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/predicate/TablePredicateConversionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/predicate/TablePredicateConversionTest.java @@ -19,14 +19,14 @@ package org.apache.iotdb.db.queryengine.plan.relational.predicate; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.analyze.PredicateUtils; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.tsfile.read.common.type.IntType; import org.apache.tsfile.read.common.type.LongType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/AstMemoryEstimatorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/AstMemoryEstimatorTest.java index 62a5d3886a87a..0738b8cd27acc 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/AstMemoryEstimatorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/AstMemoryEstimatorTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.InternalClientSession; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.junit.Before; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SqlParserErrorHandlerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SqlParserErrorHandlerTest.java index f17efb29616d5..b8e5b395005c8 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SqlParserErrorHandlerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SqlParserErrorHandlerTest.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.ParsingException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.ParsingException; import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser; import org.junit.Test; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AuthorStatementTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AuthorStatementTest.java index 70b657653e39d..509c529b36ddd 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AuthorStatementTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AuthorStatementTest.java @@ -21,10 +21,11 @@ import org.apache.iotdb.commons.auth.entity.PrivilegeModelType; import org.apache.iotdb.commons.auth.entity.PrivilegeType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Statement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.ParsingException; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.InternalClientSession; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RelationalAuthorStatement; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement; import org.apache.iotdb.db.queryengine.plan.relational.type.AuthorRType; import org.junit.Test; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/statement/InsertStatementTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/statement/InsertStatementTest.java index dbbadd1be91fb..bf42e64460982 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/statement/InsertStatementTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/statement/InsertStatementTest.java @@ -19,22 +19,22 @@ package org.apache.iotdb.db.queryengine.plan.statement; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.commons.schema.table.InsertNodeMeasurementInfo; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.AttributeColumnSchema; import org.apache.iotdb.commons.schema.table.column.FieldColumnSchema; import org.apache.iotdb.commons.schema.table.column.TagColumnSchema; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableHeaderSchemaValidator; import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InsertRow; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement; import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/statement/QueryStatementTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/statement/QueryStatementTest.java index 307bee5829cd5..ad812e74a0c6e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/statement/QueryStatementTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/statement/QueryStatementTest.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.queryengine.plan.statement; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.queryengine.plan.parser.StatementGenerator; import org.apache.iotdb.db.queryengine.plan.statement.crud.QueryStatement; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/statement/StatementTestUtils.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/statement/StatementTestUtils.java index a80095458a942..6df3815e43951 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/statement/StatementTestUtils.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/statement/StatementTestUtils.java @@ -20,16 +20,16 @@ package org.apache.iotdb.db.queryengine.plan.statement; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ColumnSchema; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.AttributeColumnSchema; import org.apache.iotdb.commons.schema.table.column.FieldColumnSchema; import org.apache.iotdb.commons.schema.table.column.TagColumnSchema; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.RelationalInsertTabletNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/builder/EvaluationDAGBuilderTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/builder/EvaluationDAGBuilderTest.java index a095d0eae5f7e..64bc431a7b9f2 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/builder/EvaluationDAGBuilderTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/builder/EvaluationDAGBuilderTest.java @@ -19,20 +19,20 @@ package org.apache.iotdb.db.queryengine.transformation.builder; +import org.apache.iotdb.calc.execution.operator.Operator; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; +import org.apache.iotdb.commons.queryengine.common.SqlDialect; import org.apache.iotdb.commons.udf.service.UDFClassLoaderManager; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.protocol.session.IClientSession.SqlDialect; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.iotdb.db.queryengine.execution.fragment.DataNodeQueryContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; -import org.apache.iotdb.db.queryengine.execution.operator.Operator; import org.apache.iotdb.db.queryengine.execution.operator.process.TransformOperator; import org.apache.iotdb.db.queryengine.execution.operator.sink.IdentitySinkOperator; import org.apache.iotdb.db.queryengine.plan.analyze.Analysis; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticAndCompareBinaryColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticAndCompareBinaryColumnTransformerTest.java index a6d3003e5b00b..f2661a7538395 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticAndCompareBinaryColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/ArithmeticAndCompareBinaryColumnTransformerTest.java @@ -19,7 +19,18 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.IdentityColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.ArithmeticAdditionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.ArithmeticDivisionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.ArithmeticModuloColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.ArithmeticMultiplicationColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.ArithmeticSubtractionColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareEqualToColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareGreaterEqualColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareGreaterThanColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareLessEqualColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.CompareNonEqualColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.IdentityColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicBinaryColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicBinaryColumnTransformerTest.java index 7e66638f09f6f..086a143c86d33 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicBinaryColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/LogicBinaryColumnTransformerTest.java @@ -19,7 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.binary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.IdentityColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.BinaryColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.LogicAndColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.LogicOrColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.IdentityColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacMd5ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacMd5ColumnTransformerTest.java index ba6afb33c5a7e..65bc3234ff5e6 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacMd5ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacMd5ColumnTransformerTest.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.binary.hmac; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.HmacColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.factory.HmacStrategiesFactory; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.strategies.HmacStrategy; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.HmacConstantKeyColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.HmacColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.factory.HmacStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.binary.strategies.HmacStrategy; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.HmacConstantKeyColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacSha1ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacSha1ColumnTransformerTest.java index e80367f52b9e4..e37ad94329cf0 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacSha1ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacSha1ColumnTransformerTest.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.binary.hmac; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.HmacColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.factory.HmacStrategiesFactory; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.strategies.HmacStrategy; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.HmacConstantKeyColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.HmacColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.factory.HmacStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.binary.strategies.HmacStrategy; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.HmacConstantKeyColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacSha256ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacSha256ColumnTransformerTest.java index 73792cabdb90c..a73d248012868 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacSha256ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacSha256ColumnTransformerTest.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.binary.hmac; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.HmacColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.factory.HmacStrategiesFactory; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.strategies.HmacStrategy; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.HmacConstantKeyColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.HmacColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.factory.HmacStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.binary.strategies.HmacStrategy; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.HmacConstantKeyColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacSha512ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacSha512ColumnTransformerTest.java index f88604ecaeae9..541faceeebef6 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacSha512ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/hmac/HmacSha512ColumnTransformerTest.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.binary.hmac; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.HmacColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.factory.HmacStrategiesFactory; -import org.apache.iotdb.db.queryengine.transformation.dag.column.binary.strategies.HmacStrategy; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.HmacConstantKeyColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.HmacColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.binary.factory.HmacStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.binary.strategies.HmacStrategy; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.HmacConstantKeyColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/LpadColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/LpadColumnTransformerTest.java index 6640ef79ed18e..0bca3e93575b5 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/LpadColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/LpadColumnTransformerTest.java @@ -18,8 +18,9 @@ */ package org.apache.iotdb.db.queryengine.transformation.dag.column.ternary; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ternary.LpadColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.BinaryColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/RpadColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/RpadColumnTransformerTest.java index 955aa4905b9c3..7b1250a2491b0 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/RpadColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/RpadColumnTransformerTest.java @@ -18,8 +18,9 @@ */ package org.apache.iotdb.db.queryengine.transformation.dag.column.ternary; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ternary.RpadColumnTransformer; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.BinaryColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/UnaryColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/UnaryColumnTransformerTest.java index 3d9904d764e7b..38f034e89521c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/UnaryColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/UnaryColumnTransformerTest.java @@ -19,7 +19,14 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary; -import org.apache.iotdb.db.queryengine.transformation.dag.column.leaf.IdentityColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.leaf.IdentityColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.ArithmeticNegationColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.InColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.IsNullColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.LikeColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.LogicNotColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.RegularColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.UnaryColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BlobLengthColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BlobLengthColumnTransformerTest.java index 7fbbd6da2fa23..6b50738c7184f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BlobLengthColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/BlobLengthColumnTransformerTest.java @@ -19,7 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BlobLengthColumnTransformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.BinaryColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DateBinFunctionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DateBinFunctionTest.java index db271fdb9a335..013e8c8429081 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DateBinFunctionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/DateBinFunctionTest.java @@ -27,7 +27,7 @@ import java.time.ZoneId; import java.util.TimeZone; -import static org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer.dateBin; +import static org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DateBinFunctionColumnTransformer.dateBin; import static org.junit.Assert.assertEquals; public class DateBinFunctionTest { diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromBigEndian32ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromBigEndian32ColumnTransformerTest.java index c4c625e6a5f8b..dfbc215a88f8b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromBigEndian32ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromBigEndian32ColumnTransformerTest.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntegerEncoding; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BytesToIntColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BytesToIntColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.BinaryColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromBigEndian64ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromBigEndian64ColumnTransformerTest.java index bb3b0165ff037..4cf2a63440b76 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromBigEndian64ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromBigEndian64ColumnTransformerTest.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntegerEncoding; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BytesToLongColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BytesToLongColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.BinaryColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromIEEE754_32BigEndianColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromIEEE754_32BigEndianColumnTransformerTest.java index e493bc2deda63..ebd1d4943352f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromIEEE754_32BigEndianColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromIEEE754_32BigEndianColumnTransformerTest.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntegerEncoding; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BytesToFloatColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BytesToFloatColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.BinaryColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromIEEE754_64BigEndianColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromIEEE754_64BigEndianColumnTransformerTest.java index b764d1d696aaa..0d1514e2af82f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromIEEE754_64BigEndianColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromIEEE754_64BigEndianColumnTransformerTest.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntegerEncoding; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BytesToDoubleColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BytesToDoubleColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.BinaryColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromLittleEndian32ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromLittleEndian32ColumnTransformerTest.java index f6240e3e1d487..fb99ce5d34dcd 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromLittleEndian32ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromLittleEndian32ColumnTransformerTest.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntegerEncoding; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BytesToIntColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BytesToIntColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.BinaryColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromLittleEndian64ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromLittleEndian64ColumnTransformerTest.java index 6e3cefa5483fd..533484563e706 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromLittleEndian64ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/FromLittleEndian64ColumnTransformerTest.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntegerEncoding; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.BytesToLongColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.BytesToLongColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.BinaryColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToBigEndian32ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToBigEndian32ColumnTransformerTest.java index e84fd6d2ff86c..e13563e41df23 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToBigEndian32ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToBigEndian32ColumnTransformerTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntegerEncoding; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntToBytesColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.IntToBytesColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.IntColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToBigEndian64ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToBigEndian64ColumnTransformerTest.java index 27c4839aaf070..2d15cf4a5c362 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToBigEndian64ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToBigEndian64ColumnTransformerTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntegerEncoding; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.LongToBytesColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.LongToBytesColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.LongColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToIEEE754_32BigEndianColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToIEEE754_32BigEndianColumnTransformerTest.java index 835013fde4f24..ffda49dec3bdc 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToIEEE754_32BigEndianColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToIEEE754_32BigEndianColumnTransformerTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntegerEncoding; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.FloatToBytesColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.FloatToBytesColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.FloatColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToIEEE754_64BigEndianColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToIEEE754_64BigEndianColumnTransformerTest.java index aa70494031a67..ded4c9480c8de 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToIEEE754_64BigEndianColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToIEEE754_64BigEndianColumnTransformerTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntegerEncoding; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.DoubleToBytesColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.DoubleToBytesColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.DoubleColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToLittleEndian32ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToLittleEndian32ColumnTransformerTest.java index 2465a3d81d0b7..bcee3901b6140 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToLittleEndian32ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToLittleEndian32ColumnTransformerTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntegerEncoding; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntToBytesColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.IntToBytesColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.IntColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToLittleEndian64ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToLittleEndian64ColumnTransformerTest.java index 941df13280833..420eb8ef5673b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToLittleEndian64ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/IntegerEncoding/ToLittleEndian64ColumnTransformerTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.IntegerEncoding; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.LongToBytesColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.LongToBytesColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.NumericCodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.LongColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ReverseColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ReverseColumnTransformerTest.java index 3c3695f32d281..03811972f5d19 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ReverseColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ReverseColumnTransformerTest.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/FromBase32ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/FromBase32ColumnTransformerTest.java index 78197d3d03c3c..068654977deca 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/FromBase32ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/FromBase32ColumnTransformerTest.java @@ -21,10 +21,10 @@ // package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.base32Encoding; package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.base64Encoding; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import com.google.common.io.BaseEncoding; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/FromBase64ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/FromBase64ColumnTransformerTest.java index 16e795273ffcd..1135633bb200f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/FromBase64ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/FromBase64ColumnTransformerTest.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.base64Encoding; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/FromBase64UrlColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/FromBase64UrlColumnTransformerTest.java index 535d222cd4b88..83bbe84f4d0b1 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/FromBase64UrlColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/FromBase64UrlColumnTransformerTest.java @@ -19,10 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.base64Encoding; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/ToBase32ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/ToBase32ColumnTransformerTest.java index f89cf121f6c6f..d000b22571119 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/ToBase32ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/ToBase32ColumnTransformerTest.java @@ -21,9 +21,9 @@ // package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.base32Encoding; package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.base64Encoding; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import com.google.common.io.BaseEncoding; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/ToBase64ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/ToBase64ColumnTransformerTest.java index 04eae176abf81..d02f9765b802e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/ToBase64ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/ToBase64ColumnTransformerTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.base64Encoding; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/ToBase64UrlColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/ToBase64UrlColumnTransformerTest.java index db79311f311c8..d83fdd7239ffc 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/ToBase64UrlColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/base64Encoding/ToBase64UrlColumnTransformerTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.base64Encoding; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Crc32ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Crc32ColumnTransformerTest.java index 78cf7dace0b49..c3829eb04693e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Crc32ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Crc32ColumnTransformerTest.java @@ -21,8 +21,8 @@ // Note: The actual package may vary, adjust if CRC32Transformer is in a different location. package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hashing; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.CRC32Transformer; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.CRC32Transformer; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Md5ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Md5ColumnTransformerTest.java index ac357616e3648..7135f334a182e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Md5ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Md5ColumnTransformerTest.java @@ -21,9 +21,9 @@ // package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hashing; package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hashing; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import com.google.common.hash.Hashing; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Murmur3ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Murmur3ColumnTransformerTest.java index d4d7d675a26fe..2ce9dba7d8805 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Murmur3ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Murmur3ColumnTransformerTest.java @@ -21,9 +21,9 @@ // package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hashing; package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hashing; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import com.google.common.hash.Hashing; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Sha1ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Sha1ColumnTransformerTest.java index c74f13e89165b..ef9ae8e222cf4 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Sha1ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Sha1ColumnTransformerTest.java @@ -21,9 +21,9 @@ // package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hashing; package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hashing; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import com.google.common.hash.Hashing; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Sha256ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Sha256ColumnTransformerTest.java index c0e177d774369..902693f87afc1 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Sha256ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Sha256ColumnTransformerTest.java @@ -21,9 +21,9 @@ // package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hashing; package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hashing; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import com.google.common.hash.Hashing; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Sha512ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Sha512ColumnTransformerTest.java index 9b65799b908cc..488b67d02d52d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Sha512ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/Sha512ColumnTransformerTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hashing; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import com.google.common.hash.Hashing; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/SpookyHashV2_32ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/SpookyHashV2_32ColumnTransformerTest.java index eabf81d1ddba9..258b2db8aad03 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/SpookyHashV2_32ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/SpookyHashV2_32ColumnTransformerTest.java @@ -19,9 +19,9 @@ * under the License. */ -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.BinaryColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/SpookyHashV2_64ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/SpookyHashV2_64ColumnTransformerTest.java index aa374a9031de0..5c39e064a4c0c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/SpookyHashV2_64ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/SpookyHashV2_64ColumnTransformerTest.java @@ -19,9 +19,9 @@ * under the License. */ -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.column.BinaryColumn; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/XxHash64ColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/XxHash64ColumnTransformerTest.java index ab00d0105aa33..e8a0202919d9e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/XxHash64ColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hashing/XxHash64ColumnTransformerTest.java @@ -21,9 +21,9 @@ // package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hashing; package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hashing; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import net.jpountz.xxhash.XXHash64; import net.jpountz.xxhash.XXHashFactory; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hexEncoding/FromHexColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hexEncoding/FromHexColumnTransformerTest.java index ac885515ecab5..2b636b9095a8b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hexEncoding/FromHexColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hexEncoding/FromHexColumnTransformerTest.java @@ -21,9 +21,9 @@ // package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.string; package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hexEncoding; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hexEncoding/ToHexColumnTransformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hexEncoding/ToHexColumnTransformerTest.java index b95ffe32b0868..f846ddce17c57 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hexEncoding/ToHexColumnTransformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/hexEncoding/ToHexColumnTransformerTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.hexEncoding; -import org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; -import org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; +import org.apache.iotdb.calc.transformation.dag.column.ColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.GenericCodecColumnTransformer; +import org.apache.iotdb.calc.transformation.dag.column.unary.scalar.factory.CodecStrategiesFactory; import com.google.common.io.BaseEncoding; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/util/BitwiseUtilsTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/util/BitwiseUtilsTest.java index 04a611f07c40c..2425d2d92e074 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/util/BitwiseUtilsTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/util/BitwiseUtilsTest.java @@ -19,19 +19,20 @@ package org.apache.iotdb.db.queryengine.transformation.dag.util; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils; +import org.apache.iotdb.commons.exception.SemanticException; import org.junit.Assert; import org.junit.Test; -import static org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils.bitCountCheck; -import static org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils.bitwiseAndTransform; -import static org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils.bitwiseLeftShiftTransform; -import static org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils.bitwiseNotTransform; -import static org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils.bitwiseOrTransform; -import static org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils.bitwiseRightShiftArithmeticTransform; -import static org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils.bitwiseRightShiftTransform; -import static org.apache.iotdb.db.queryengine.transformation.dag.util.BitwiseUtils.bitwiseXorTransform; +import static org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils.bitCountCheck; +import static org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils.bitwiseAndTransform; +import static org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils.bitwiseLeftShiftTransform; +import static org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils.bitwiseNotTransform; +import static org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils.bitwiseOrTransform; +import static org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils.bitwiseRightShiftArithmeticTransform; +import static org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils.bitwiseRightShiftTransform; +import static org.apache.iotdb.calc.transformation.dag.util.BitwiseUtils.bitwiseXorTransform; public class BitwiseUtilsTest { @Test diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/ElasticSerializableRowListTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/ElasticSerializableRowListTest.java index 0544f18d4b6f5..40052f3d3e814 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/ElasticSerializableRowListTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/ElasticSerializableRowListTest.java @@ -19,9 +19,10 @@ package org.apache.iotdb.db.queryengine.transformation.datastructure; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.queryengine.transformation.datastructure.iterator.RowListForwardIterator; -import org.apache.iotdb.db.queryengine.transformation.datastructure.row.ElasticSerializableRowList; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.transformation.datastructure.SerializableList; +import org.apache.iotdb.calc.transformation.datastructure.iterator.RowListForwardIterator; +import org.apache.iotdb.calc.transformation.datastructure.row.ElasticSerializableRowList; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/ElasticSerializableTVListTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/ElasticSerializableTVListTest.java index 148d34f54d679..aabb8ae93e2db 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/ElasticSerializableTVListTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/ElasticSerializableTVListTest.java @@ -19,8 +19,9 @@ package org.apache.iotdb.db.queryengine.transformation.datastructure; -import org.apache.iotdb.db.queryengine.transformation.datastructure.iterator.TVListForwardIterator; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.ElasticSerializableTVList; +import org.apache.iotdb.calc.transformation.datastructure.SerializableList; +import org.apache.iotdb.calc.transformation.datastructure.iterator.TVListForwardIterator; +import org.apache.iotdb.calc.transformation.datastructure.tv.ElasticSerializableTVList; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/LRUCache.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/LRUCache.java index 8db52008a41c6..be21f365d5fd8 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/LRUCache.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/LRUCache.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.queryengine.transformation.datastructure; +import org.apache.iotdb.calc.transformation.datastructure.Cache; + import java.util.Arrays; public class LRUCache extends Cache { diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/SerializableRowListTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/SerializableRowListTest.java index 266623373e3dc..0927809417a54 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/SerializableRowListTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/SerializableRowListTest.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.datastructure; -import org.apache.iotdb.db.queryengine.transformation.datastructure.row.SerializableRowList; +import org.apache.iotdb.calc.transformation.datastructure.row.SerializableRowList; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/SerializableTVListTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/SerializableTVListTest.java index bf3f566be7db8..c9459d12708f4 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/SerializableTVListTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/datastructure/SerializableTVListTest.java @@ -19,7 +19,7 @@ package org.apache.iotdb.db.queryengine.transformation.datastructure; -import org.apache.iotdb.db.queryengine.transformation.datastructure.tv.SerializableTVList; +import org.apache.iotdb.calc.transformation.datastructure.tv.SerializableTVList; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/service/DataNodeInternalRPCServiceImplTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/service/DataNodeInternalRPCServiceImplTest.java index 22a2d6cdc461f..8d100f4be14b1 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/service/DataNodeInternalRPCServiceImplTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/service/DataNodeInternalRPCServiceImplTest.java @@ -30,6 +30,7 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.consensus.ConsensusFactory; import org.apache.iotdb.consensus.IConsensus; import org.apache.iotdb.consensus.common.Peer; @@ -45,7 +46,6 @@ import org.apache.iotdb.db.exception.load.LoadFileException; import org.apache.iotdb.db.protocol.thrift.impl.DataNodeInternalRPCServiceImpl; import org.apache.iotdb.db.protocol.thrift.impl.DataNodeRegionManager; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.CreateAlignedTimeSeriesNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.CreateMultiTimeSeriesNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.metadata.write.CreateTimeSeriesNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/DataRegionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/DataRegionTest.java index 0cb7143e708ab..68d76764920db 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/DataRegionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/DataRegionTest.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.storageengine.dataregion; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.conf.CommonConfig; import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.consensus.DataRegionId; @@ -30,16 +31,15 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.DataRegionException; import org.apache.iotdb.db.exception.TsFileProcessorException; import org.apache.iotdb.db.exception.WriteProcessException; import org.apache.iotdb.db.exception.WriteProcessRejectException; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/TTLQueryTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/TTLQueryTest.java index 10869cf1b87b7..845155aadfe31 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/TTLQueryTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/TTLQueryTest.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.storageengine.dataregion; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.db.exception.StorageEngineException; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeTTLCache; import org.apache.iotdb.db.storageengine.dataregion.compaction.AbstractCompactionTest; import org.apache.iotdb.db.storageengine.dataregion.read.QueryDataSource; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/TTLTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/TTLTest.java index afd7ed608eadb..c211bc360ade6 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/TTLTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/TTLTest.java @@ -20,6 +20,7 @@ package org.apache.iotdb.db.storageengine.dataregion; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.consensus.DataRegionId; @@ -27,17 +28,16 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.ttl.TTLCache; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.DataRegionException; import org.apache.iotdb.db.exception.StorageEngineException; import org.apache.iotdb.db.exception.WriteProcessException; import org.apache.iotdb.db.exception.query.OutOfTTLException; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeTTLCache; import org.apache.iotdb.db.queryengine.plan.parser.StatementGenerator; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.statement.metadata.SetTTLStatement; import org.apache.iotdb.db.queryengine.plan.statement.metadata.ShowTTLStatement; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/RewriteCrossSpaceCompactionWithFastPerformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/RewriteCrossSpaceCompactionWithFastPerformerTest.java index ead500524e550..4e81e3ee87cf7 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/RewriteCrossSpaceCompactionWithFastPerformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/RewriteCrossSpaceCompactionWithFastPerformerTest.java @@ -24,10 +24,10 @@ import org.apache.iotdb.commons.path.AlignedFullPath; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.StorageEngineException; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.storageengine.dataregion.DataRegion; import org.apache.iotdb.db.storageengine.dataregion.compaction.AbstractCompactionTest; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/RewriteCrossSpaceCompactionWithReadPointPerformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/RewriteCrossSpaceCompactionWithReadPointPerformerTest.java index d65400144137a..ab9dd90e778a9 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/RewriteCrossSpaceCompactionWithReadPointPerformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/RewriteCrossSpaceCompactionWithReadPointPerformerTest.java @@ -24,10 +24,10 @@ import org.apache.iotdb.commons.path.AlignedFullPath; import org.apache.iotdb.commons.path.IFullPath; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.StorageEngineException; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.storageengine.dataregion.DataRegion; import org.apache.iotdb.db.storageengine.dataregion.compaction.AbstractCompactionTest; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSeqCompactionWithFastPerformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSeqCompactionWithFastPerformerTest.java index f3eac89e50289..4c283fad63679 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSeqCompactionWithFastPerformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSeqCompactionWithFastPerformerTest.java @@ -21,10 +21,10 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.DataRegionException; import org.apache.iotdb.db.exception.StorageEngineException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.storageengine.buffer.BloomFilterCache; import org.apache.iotdb.db.storageengine.buffer.ChunkCache; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSeqCompactionWithReadChunkPerformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSeqCompactionWithReadChunkPerformerTest.java index 2c9a87a4465bf..875239ce6b6ea 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSeqCompactionWithReadChunkPerformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSeqCompactionWithReadChunkPerformerTest.java @@ -21,10 +21,10 @@ import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.DataRegionException; import org.apache.iotdb.db.exception.StorageEngineException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.storageengine.buffer.BloomFilterCache; import org.apache.iotdb.db.storageengine.buffer.ChunkCache; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionTaskTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionTaskTest.java index e318d0e87d07a..43ab0a8ad6032 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionTaskTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleCompactionTaskTest.java @@ -67,7 +67,6 @@ import java.util.List; import java.util.Map; -import static org.apache.iotdb.db.storageengine.dataregion.compaction.utils.TsFileGeneratorUtils.createTimeseries; import static org.apache.iotdb.db.storageengine.dataregion.compaction.utils.TsFileGeneratorUtils.testStorageGroup; import static org.apache.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR; import static org.apache.tsfile.utils.TsFileGeneratorUtils.getDataType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleRequestHandlerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleRequestHandlerTest.java index cedc288a2a9b5..8a28a43c64feb 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleRequestHandlerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/settle/SettleRequestHandlerTest.java @@ -25,13 +25,13 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.StartupException; import org.apache.iotdb.commons.path.MeasurementPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.DataRegionException; import org.apache.iotdb.db.exception.StorageEngineException; import org.apache.iotdb.db.exception.TsFileProcessorException; import org.apache.iotdb.db.exception.WriteProcessException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.storageengine.StorageEngine; import org.apache.iotdb.db.storageengine.dataregion.DataRegion; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedTVListIteratorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedTVListIteratorTest.java index b0c383e32135d..c58eeb1bf6069 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedTVListIteratorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedTVListIteratorTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.storageengine.dataregion.memtable; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/MemChunkDeserializeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/MemChunkDeserializeTest.java index e2319406a8a95..8e03776231eae 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/MemChunkDeserializeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/MemChunkDeserializeTest.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.storageengine.dataregion.memtable; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.AlignedFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; import org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALByteBufferForTest; import org.apache.iotdb.db.utils.EnvironmentUtils; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/MemTableTestUtils.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/MemTableTestUtils.java index 88dc12d8e0d3f..9e9ca36ad807f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/MemTableTestUtils.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/MemTableTestUtils.java @@ -20,8 +20,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.exception.WriteProcessException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/NonAlignedTVListIteratorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/NonAlignedTVListIteratorTest.java index b28979efd677a..ed00999ab9f9e 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/NonAlignedTVListIteratorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/NonAlignedTVListIteratorTest.java @@ -19,8 +19,8 @@ package org.apache.iotdb.db.storageengine.dataregion.memtable; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/PrimitiveMemTableTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/PrimitiveMemTableTest.java index 7fb46b14cf2b2..70ea839382c09 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/PrimitiveMemTableTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/PrimitiveMemTableTest.java @@ -18,6 +18,9 @@ */ package org.apache.iotdb.db.storageengine.dataregion.memtable; +import org.apache.iotdb.calc.exception.MemoryNotEnoughException; +import org.apache.iotdb.calc.exception.QueryProcessException; +import org.apache.iotdb.calc.plan.planner.memory.MemoryReservationManager; import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; @@ -25,15 +28,14 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.WriteProcessException; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.PlanFragmentId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.exception.CpuNotEnoughException; -import org.apache.iotdb.db.queryengine.exception.MemoryNotEnoughException; import org.apache.iotdb.db.queryengine.execution.driver.IDriver; import org.apache.iotdb.db.queryengine.execution.exchange.MPPDataExchangeManager; import org.apache.iotdb.db.queryengine.execution.exchange.sink.ISink; @@ -42,8 +44,6 @@ import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceStateMachine; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; import org.apache.iotdb.db.queryengine.execution.schedule.IDriverScheduler; -import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.schemaengine.schemaregion.utils.ResourceByPathUtils; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessorTest.java index 86c10932e04a0..3cc50496fb64f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessorTest.java @@ -25,6 +25,7 @@ import org.apache.iotdb.commons.path.AlignedFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.DataRegionException; @@ -32,7 +33,6 @@ import org.apache.iotdb.db.exception.WriteProcessException; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/WALManagerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/WALManagerTest.java index 6dd98a05bf631..2017805ac7e24 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/WALManagerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/WALManagerTest.java @@ -22,10 +22,10 @@ import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.consensus.ConsensusFactory; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.storageengine.dataregion.wal.allocation.ElasticStrategy; import org.apache.iotdb.db.storageengine.dataregion.wal.node.WALNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/WALTestUtils.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/WALTestUtils.java index 2e68d8f55322a..0684fbca73ba0 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/WALTestUtils.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/WALTestUtils.java @@ -18,10 +18,10 @@ */ package org.apache.iotdb.db.storageengine.dataregion.wal; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/ElasticStrategyTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/ElasticStrategyTest.java index 4d08b1f1cf177..4e9c73b389e87 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/ElasticStrategyTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/ElasticStrategyTest.java @@ -22,7 +22,7 @@ import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.storageengine.dataregion.wal.node.IWALNode; import org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALFileUtils; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/FirstCreateStrategyTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/FirstCreateStrategyTest.java index b60d83aef9c17..dc614364a4ecc 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/FirstCreateStrategyTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/FirstCreateStrategyTest.java @@ -22,7 +22,7 @@ import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.storageengine.dataregion.wal.node.IWALNode; import org.apache.iotdb.db.storageengine.dataregion.wal.node.WALNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/RoundRobinStrategyTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/RoundRobinStrategyTest.java index 663646a8f2907..95a3fb4615876 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/RoundRobinStrategyTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/allocation/RoundRobinStrategyTest.java @@ -22,7 +22,7 @@ import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.storageengine.dataregion.wal.node.IWALNode; import org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALFileUtils; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALBufferCommonTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALBufferCommonTest.java index 04a33a5f80d86..253e71e2a0268 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALBufferCommonTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALBufferCommonTest.java @@ -18,12 +18,12 @@ */ package org.apache.iotdb.db.storageengine.dataregion.wal.buffer; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.storageengine.dataregion.wal.io.WALReader; import org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALFileUtils; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/compression/WALCompressionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/compression/WALCompressionTest.java index 7d5223b3c6823..2e8f86b42d6da 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/compression/WALCompressionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/compression/WALCompressionTest.java @@ -18,9 +18,9 @@ */ package org.apache.iotdb.db.storageengine.dataregion.wal.compression; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.storageengine.dataregion.wal.WALTestUtils; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.WALBuffer; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/WALFileTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/WALFileTest.java index 3a4cb319bdabe..8565b3ad3c54c 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/WALFileTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/WALFileTest.java @@ -21,8 +21,8 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/ConsensusReqReaderTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/ConsensusReqReaderTest.java index 688e5df205c4e..b59863adc7259 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/ConsensusReqReaderTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/ConsensusReqReaderTest.java @@ -21,13 +21,13 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.iotdb.consensus.common.request.IndexedConsensusRequest; import org.apache.iotdb.consensus.iot.log.ConsensusReqReader; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALFakeNodeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALFakeNodeTest.java index ca448f2386b7a..a7f1b777eeb19 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALFakeNodeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALFakeNodeTest.java @@ -18,7 +18,7 @@ */ package org.apache.iotdb.db.storageengine.dataregion.wal.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNodeTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNodeTest.java index 3706eeb388fbf..dc762716ec134 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNodeTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNodeTest.java @@ -21,10 +21,10 @@ import org.apache.iotdb.commons.consensus.DataRegionId; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.consensus.ConsensusFactory; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; import org.apache.iotdb.db.storageengine.StorageEngine; import org.apache.iotdb.db.storageengine.dataregion.DataRegionTest; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WalDeleteOutdatedNewTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WalDeleteOutdatedNewTest.java index c132d268c7d30..2f57db238b00a 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WalDeleteOutdatedNewTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WalDeleteOutdatedNewTest.java @@ -22,11 +22,11 @@ import org.apache.iotdb.commons.consensus.DataRegionId; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.consensus.ConsensusFactory; import org.apache.iotdb.consensus.iot.log.ConsensusReqReader; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.storageengine.StorageEngine; import org.apache.iotdb.db.storageengine.dataregion.DataRegion; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALRecoverManagerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALRecoverManagerTest.java index 2482690628377..cecf04e6781d7 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALRecoverManagerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALRecoverManagerTest.java @@ -18,17 +18,17 @@ */ package org.apache.iotdb.db.storageengine.dataregion.wal.recover; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.concurrent.ExceptionalCountDownLatch; import org.apache.iotdb.commons.conf.CommonConfig; import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.utils.FileUtils; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALRepairWriterTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALRepairWriterTest.java index 5c1df08a7a222..315e963fbebed 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALRepairWriterTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/WALRepairWriterTest.java @@ -20,7 +20,7 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowsNode; import org.apache.iotdb.db.storageengine.dataregion.wal.buffer.WALEntry; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/TsFilePlanRedoerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/TsFilePlanRedoerTest.java index 42cbf6eed79c7..238606b073dfa 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/TsFilePlanRedoerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/TsFilePlanRedoerTest.java @@ -22,10 +22,10 @@ import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/UnsealedTsFileRecoverPerformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/UnsealedTsFileRecoverPerformerTest.java index 69a693d0ff759..49f22af864070 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/UnsealedTsFileRecoverPerformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/wal/recover/file/UnsealedTsFileRecoverPerformerTest.java @@ -21,12 +21,12 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.MeasurementPath; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.FieldColumnSchema; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.DataRegionException; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.DeleteDataNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/rescon/memory/TimePartitionManagerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/rescon/memory/TimePartitionManagerTest.java index 7be3dc0191d9b..90eb10c7cfb72 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/rescon/memory/TimePartitionManagerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/rescon/memory/TimePartitionManagerTest.java @@ -19,12 +19,12 @@ package org.apache.iotdb.db.storageengine.rescon.memory; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.commons.consensus.DataRegionId; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.db.conf.DataNodeMemoryConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.StorageEngineException; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.tsfile.exception.write.WriteProcessException; import org.junit.After; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/trigger/executor/TriggerExecuteTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/trigger/executor/TriggerExecuteTest.java index 1c05cc21c3e00..015cbdc350644 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/trigger/executor/TriggerExecuteTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/trigger/executor/TriggerExecuteTest.java @@ -21,9 +21,9 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.commons.trigger.TriggerInformation; import org.apache.iotdb.confignode.rpc.thrift.TTriggerState; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertRowNode; import org.apache.iotdb.db.trigger.service.TriggerManagementService; import org.apache.iotdb.trigger.api.Trigger; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/DateTimeUtilsTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/DateTimeUtilsTest.java index d0bbb97fbae85..056aa7576b1e9 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/DateTimeUtilsTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/DateTimeUtilsTest.java @@ -18,6 +18,7 @@ */ package org.apache.iotdb.db.utils; +import org.apache.iotdb.commons.queryengine.utils.DateTimeUtils; import org.apache.iotdb.db.protocol.session.IClientSession; import org.apache.iotdb.db.protocol.session.InternalClientSession; import org.apache.iotdb.db.protocol.session.SessionManager; @@ -95,73 +96,95 @@ public void convertDatetimeStrToLongTest4() { /** Test time precision is ms. */ @Test public void convertDurationStrToLongTest1() { - Assert.assertEquals(7000L, DateTimeUtils.convertDurationStrToLongForTest(7, "s", "ms")); - Assert.assertEquals(420000L, DateTimeUtils.convertDurationStrToLongForTest(7, "m", "ms")); - Assert.assertEquals(25200000L, DateTimeUtils.convertDurationStrToLongForTest(7, "h", "ms")); - Assert.assertEquals(604800000L, DateTimeUtils.convertDurationStrToLongForTest(7, "d", "ms")); - Assert.assertEquals(4233600000L, DateTimeUtils.convertDurationStrToLongForTest(7, "w", "ms")); - Assert.assertEquals(18144000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "mo", "ms")); - Assert.assertEquals(220752000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "y", "ms")); - Assert.assertEquals(7L, DateTimeUtils.convertDurationStrToLongForTest(7, "ms", "ms")); - Assert.assertEquals(7L, DateTimeUtils.convertDurationStrToLongForTest(7000, "us", "ms")); - Assert.assertEquals(7L, DateTimeUtils.convertDurationStrToLongForTest(7000000, "ns", "ms")); + Assert.assertEquals(7000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "s", "ms")); + Assert.assertEquals( + 420000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "m", "ms")); + Assert.assertEquals( + 25200000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "h", "ms")); + Assert.assertEquals( + 604800000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "d", "ms")); + Assert.assertEquals( + 4233600000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "w", "ms")); + Assert.assertEquals( + 18144000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "mo", "ms")); + Assert.assertEquals( + 220752000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "y", "ms")); + Assert.assertEquals(7L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "ms", "ms")); + Assert.assertEquals( + 7L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7000, "us", "ms")); + Assert.assertEquals( + 7L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7000000, "ns", "ms")); } /** Test time precision is us. */ @Test public void convertDurationStrToLongTest2() { - Assert.assertEquals(7000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "s", "us")); - Assert.assertEquals(420000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "m", "us")); - Assert.assertEquals(25200000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "h", "us")); - Assert.assertEquals(604800000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "d", "us")); Assert.assertEquals( - 4233600000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "w", "us")); + 7000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "s", "us")); + Assert.assertEquals( + 420000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "m", "us")); + Assert.assertEquals( + 25200000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "h", "us")); + Assert.assertEquals( + 604800000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "d", "us")); + Assert.assertEquals( + 4233600000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "w", "us")); Assert.assertEquals( - 18144000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "mo", "us")); + 18144000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "mo", "us")); Assert.assertEquals( - 220752000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "y", "us")); - Assert.assertEquals(7000L, DateTimeUtils.convertDurationStrToLongForTest(7, "ms", "us")); - Assert.assertEquals(7L, DateTimeUtils.convertDurationStrToLongForTest(7, "us", "us")); - Assert.assertEquals(7L, DateTimeUtils.convertDurationStrToLongForTest(7000, "ns", "us")); + 220752000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "y", "us")); + Assert.assertEquals( + 7000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "ms", "us")); + Assert.assertEquals(7L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "us", "us")); + Assert.assertEquals( + 7L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7000, "ns", "us")); } /** Test time precision is ns. */ @Test public void convertDurationStrToLongTest3() { - Assert.assertEquals(7000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "s", "ns")); - Assert.assertEquals(420000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "m", "ns")); Assert.assertEquals( - 25200000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "h", "ns")); + 7000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "s", "ns")); + Assert.assertEquals( + 420000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "m", "ns")); + Assert.assertEquals( + 25200000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "h", "ns")); + Assert.assertEquals( + 604800000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "d", "ns")); + Assert.assertEquals( + 4233600000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "w", "ns")); Assert.assertEquals( - 604800000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "d", "ns")); + 18144000000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "mo", "ns")); Assert.assertEquals( - 4233600000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "w", "ns")); + 220752000000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "y", "ns")); Assert.assertEquals( - 18144000000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "mo", "ns")); + 7000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "ms", "ns")); Assert.assertEquals( - 220752000000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "y", "ns")); - Assert.assertEquals(7000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "ms", "ns")); - Assert.assertEquals(7000L, DateTimeUtils.convertDurationStrToLongForTest(7, "us", "ns")); - Assert.assertEquals(7L, DateTimeUtils.convertDurationStrToLongForTest(7, "ns", "ns")); + 7000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "us", "ns")); + Assert.assertEquals(7L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "ns", "ns")); } @Test public void getInstantWithPrecisionTest() { - Assert.assertEquals(7000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "s", "ns")); - Assert.assertEquals(420000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "m", "ns")); Assert.assertEquals( - 25200000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "h", "ns")); + 7000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "s", "ns")); Assert.assertEquals( - 604800000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "d", "ns")); + 420000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "m", "ns")); Assert.assertEquals( - 4233600000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "w", "ns")); + 25200000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "h", "ns")); Assert.assertEquals( - 18144000000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "mo", "ns")); + 604800000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "d", "ns")); Assert.assertEquals( - 220752000000000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "y", "ns")); - Assert.assertEquals(7000000L, DateTimeUtils.convertDurationStrToLongForTest(7, "ms", "ns")); - Assert.assertEquals(7000L, DateTimeUtils.convertDurationStrToLongForTest(7, "us", "ns")); - Assert.assertEquals(7L, DateTimeUtils.convertDurationStrToLongForTest(7, "ns", "ns")); + 4233600000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "w", "ns")); + Assert.assertEquals( + 18144000000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "mo", "ns")); + Assert.assertEquals( + 220752000000000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "y", "ns")); + Assert.assertEquals( + 7000000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "ms", "ns")); + Assert.assertEquals( + 7000L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "us", "ns")); + Assert.assertEquals(7L, DataNodeDateTimeUtils.convertDurationStrToLongForTest(7, "ns", "ns")); } @Ignore @@ -175,30 +198,42 @@ public void getConvertDurationIncludingMonthUnit() { try { SessionManager.getInstance().registerSession(session); - Assert.assertEquals(31 * 86400000L, DateTimeUtils.convertDurationStrToLong(0, 1, "mo", "ms")); Assert.assertEquals( - 28 * 86400000L, DateTimeUtils.convertDurationStrToLong(2678400000L, 1, "mo", "ms")); + 31 * 86400000L, DataNodeDateTimeUtils.convertDurationStrToLong(0, 1, "mo", "ms")); + Assert.assertEquals( + 28 * 86400000L, + DataNodeDateTimeUtils.convertDurationStrToLong(2678400000L, 1, "mo", "ms")); TimeZone.getTimeZone(ZoneOffset.UTC); Assert.assertEquals( - 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(5097600000L, 1, "mo", "ms")); + 31 * 86400000L, + DataNodeDateTimeUtils.convertDurationStrToLong(5097600000L, 1, "mo", "ms")); Assert.assertEquals( - 30 * 86400000L, DateTimeUtils.convertDurationStrToLong(7776000000L, 1, "mo", "ms")); + 30 * 86400000L, + DataNodeDateTimeUtils.convertDurationStrToLong(7776000000L, 1, "mo", "ms")); Assert.assertEquals( - 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(10368000000L, 1, "mo", "ms")); + 31 * 86400000L, + DataNodeDateTimeUtils.convertDurationStrToLong(10368000000L, 1, "mo", "ms")); Assert.assertEquals( - 30 * 86400000L, DateTimeUtils.convertDurationStrToLong(13046400000L, 1, "mo", "ms")); + 30 * 86400000L, + DataNodeDateTimeUtils.convertDurationStrToLong(13046400000L, 1, "mo", "ms")); Assert.assertEquals( - 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(15638400000L, 1, "mo", "ms")); + 31 * 86400000L, + DataNodeDateTimeUtils.convertDurationStrToLong(15638400000L, 1, "mo", "ms")); Assert.assertEquals( - 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(18316800000L, 1, "mo", "ms")); + 31 * 86400000L, + DataNodeDateTimeUtils.convertDurationStrToLong(18316800000L, 1, "mo", "ms")); Assert.assertEquals( - 30 * 86400000L, DateTimeUtils.convertDurationStrToLong(20995200000L, 1, "mo", "ms")); + 30 * 86400000L, + DataNodeDateTimeUtils.convertDurationStrToLong(20995200000L, 1, "mo", "ms")); Assert.assertEquals( - 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(23587200000L, 1, "mo", "ms")); + 31 * 86400000L, + DataNodeDateTimeUtils.convertDurationStrToLong(23587200000L, 1, "mo", "ms")); Assert.assertEquals( - 30 * 86400000L, DateTimeUtils.convertDurationStrToLong(26265600000L, 1, "mo", "ms")); + 30 * 86400000L, + DataNodeDateTimeUtils.convertDurationStrToLong(26265600000L, 1, "mo", "ms")); Assert.assertEquals( - 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(28857600000L, 1, "mo", "ms")); + 31 * 86400000L, + DataNodeDateTimeUtils.convertDurationStrToLong(28857600000L, 1, "mo", "ms")); } finally { // clean up the session after test SessionManager.getInstance().removeCurrSession(); @@ -311,31 +346,31 @@ public void testConvertDateStrToLong(ZoneOffset zoneOffset, ZoneId zoneId, long @Test public void testConstructTimeDuration() { - TimeDuration timeDuration = DateTimeUtils.constructTimeDuration("1y1d1ns"); + TimeDuration timeDuration = DataNodeDateTimeUtils.constructTimeDuration("1y1d1ns"); Assert.assertEquals(12, timeDuration.monthDuration); Assert.assertEquals(86400_000L, timeDuration.nonMonthDuration); - timeDuration = DateTimeUtils.constructTimeDuration("1y1mo1d1ms1ns"); + timeDuration = DataNodeDateTimeUtils.constructTimeDuration("1y1mo1d1ms1ns"); Assert.assertEquals(13, timeDuration.monthDuration); Assert.assertEquals(86400_001L, timeDuration.nonMonthDuration); - timeDuration = DateTimeUtils.constructTimeDuration("1d1ns"); + timeDuration = DataNodeDateTimeUtils.constructTimeDuration("1d1ns"); Assert.assertEquals(0, timeDuration.monthDuration); Assert.assertEquals(86400_000L, timeDuration.nonMonthDuration); - timeDuration = DateTimeUtils.constructTimeDuration("1y"); + timeDuration = DataNodeDateTimeUtils.constructTimeDuration("1y"); Assert.assertEquals(12, timeDuration.monthDuration); Assert.assertEquals(0, timeDuration.nonMonthDuration); - timeDuration = DateTimeUtils.constructTimeDuration("1mo"); + timeDuration = DataNodeDateTimeUtils.constructTimeDuration("1mo"); Assert.assertEquals(1, timeDuration.monthDuration); Assert.assertEquals(0, timeDuration.nonMonthDuration); - timeDuration = DateTimeUtils.constructTimeDuration("1y1mo"); + timeDuration = DataNodeDateTimeUtils.constructTimeDuration("1y1mo"); Assert.assertEquals(13, timeDuration.monthDuration); Assert.assertEquals(0, timeDuration.nonMonthDuration); - timeDuration = DateTimeUtils.constructTimeDuration("10000000000ms"); + timeDuration = DataNodeDateTimeUtils.constructTimeDuration("10000000000ms"); Assert.assertEquals(10000000000L, timeDuration.nonMonthDuration); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java index 16cb7bd732721..7aac119cd370b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java @@ -22,13 +22,13 @@ import org.apache.iotdb.commons.conf.CommonConfig; import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.StartupException; +import org.apache.iotdb.commons.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.db.conf.DataNodeMemoryConfig; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; import org.apache.iotdb.db.exception.StorageEngineException; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; import org.apache.iotdb.db.queryengine.execution.fragment.QueryContext; -import org.apache.iotdb.db.queryengine.plan.udf.UDFManagementService; import org.apache.iotdb.db.schemaengine.SchemaEngine; import org.apache.iotdb.db.storageengine.StorageEngine; import org.apache.iotdb.db.storageengine.buffer.BloomFilterCache; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/ErrorHandlingUtilsTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/ErrorHandlingUtilsTest.java index 23feb2bfbd99f..354037a6aec93 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/ErrorHandlingUtilsTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/ErrorHandlingUtilsTest.java @@ -19,11 +19,11 @@ package org.apache.iotdb.db.utils; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.common.rpc.thrift.TSStatus; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.db.exception.StorageGroupNotReadyException; import org.apache.iotdb.db.exception.metadata.PathNotExistException; -import org.apache.iotdb.db.exception.query.QueryProcessException; -import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.protocol.thrift.OperationType; import org.apache.iotdb.rpc.TSStatusCode; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/MemUtilsTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/MemUtilsTest.java index efe132318d8ea..7af2a9775fb0f 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/MemUtilsTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/MemUtilsTest.java @@ -20,7 +20,7 @@ import org.apache.iotdb.commons.exception.IllegalPathException; import org.apache.iotdb.commons.path.PartialPath; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.queryengine.plan.planner.plan.node.write.InsertTabletNode; import org.apache.tsfile.common.conf.TSFileConfig; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/SchemaUtilsTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/SchemaUtilsTest.java index 53363b8fa110e..697fbc75820ba 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/SchemaUtilsTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/SchemaUtilsTest.java @@ -18,8 +18,8 @@ */ package org.apache.iotdb.db.utils; +import org.apache.iotdb.calc.utils.constant.SqlConstant; import org.apache.iotdb.commons.exception.MetadataException; -import org.apache.iotdb.db.utils.constant.SqlConstant; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.file.metadata.AbstractAlignedChunkMetadata; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/TimestampPrecisionUtilsTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/TimestampPrecisionUtilsTest.java index 7c7893e49af8c..c45fc841782e7 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/TimestampPrecisionUtilsTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/TimestampPrecisionUtilsTest.java @@ -19,6 +19,8 @@ package org.apache.iotdb.db.utils; +import org.apache.iotdb.commons.queryengine.utils.TimestampPrecisionUtils; + import org.junit.Test; import static org.junit.Assert.fail; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/TypeInferenceUtilsTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/TypeInferenceUtilsTest.java index cc63f38edfddc..2b8f58308a512 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/TypeInferenceUtilsTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/TypeInferenceUtilsTest.java @@ -19,9 +19,9 @@ package org.apache.iotdb.db.utils; +import org.apache.iotdb.calc.exception.QueryProcessException; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.tsfile.common.constant.TsFileConstant; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/datastructure/MergeSortHeapTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/datastructure/MergeSortHeapTest.java index a84b44323e190..f44ffc7008a6b 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/datastructure/MergeSortHeapTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/datastructure/MergeSortHeapTest.java @@ -19,7 +19,10 @@ package org.apache.iotdb.db.utils.datastructure; -import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparator; +import org.apache.iotdb.calc.utils.datastructure.MergeSortHeap; +import org.apache.iotdb.calc.utils.datastructure.MergeSortKey; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.db.queryengine.execution.operator.process.join.merge.MergeSortComparatorUtils; import org.apache.iotdb.db.queryengine.plan.statement.component.OrderByKey; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.queryengine.plan.statement.component.SortItem; @@ -82,7 +85,7 @@ public void minHeapTest() { inputBuilder2.declarePosition(); Comparator comparator = - MergeSortComparator.getComparator( + MergeSortComparatorUtils.getComparator( Arrays.asList( new SortItem(OrderByKey.TIME, Ordering.ASC), new SortItem(OrderByKey.DEVICE, Ordering.ASC)), diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/sort/SortUtilTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/sort/SortUtilTest.java index dbe51988245c6..e6c4e8e3ecc8d 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/sort/SortUtilTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/sort/SortUtilTest.java @@ -19,11 +19,16 @@ package org.apache.iotdb.db.utils.sort; +import org.apache.iotdb.calc.utils.datastructure.MergeSortKey; +import org.apache.iotdb.calc.utils.datastructure.SortKey; +import org.apache.iotdb.calc.utils.sort.FileSpillerReader; +import org.apache.iotdb.calc.utils.sort.MemoryReader; +import org.apache.iotdb.calc.utils.sort.SortBufferManager; +import org.apache.iotdb.calc.utils.sort.SortReader; +import org.apache.iotdb.calc.utils.sort.TreeDiskSpiller; +import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.MetadataException; import org.apache.iotdb.commons.utils.FileUtils; -import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.utils.datastructure.MergeSortKey; -import org.apache.iotdb.db.utils.datastructure.SortKey; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.common.conf.TSFileDescriptor; @@ -98,7 +103,7 @@ public void diskSortTest() { SortBufferManager sortBufferManager = new SortBufferManager( TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes(), - IoTDBDescriptor.getInstance().getConfig().getSortBufferSize()); + CommonDescriptor.getInstance().getConfig().getSortBufferSize()); try { sortBufferManager.allocateOneSortBranch(); diskSpiller.spillSortedData(sortKeyList); diff --git a/iotdb-core/node-commons/pom.xml b/iotdb-core/node-commons/pom.xml index 29cb467f790ef..ca0000608b932 100644 --- a/iotdb-core/node-commons/pom.xml +++ b/iotdb-core/node-commons/pom.xml @@ -55,6 +55,11 @@ external-service-api 2.0.7-SNAPSHOT + + org.apache.iotdb + iotdb-relational-grammar + 2.0.7-SNAPSHOT + org.apache.iotdb udf-api @@ -142,6 +147,15 @@ cglib cglib + + com.google.errorprone + error_prone_annotations + true + + + org.antlr + antlr4-runtime + com.github.ben-manes.caffeine caffeine diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java index 4703fa77f9294..df100b3874d4a 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java @@ -486,6 +486,28 @@ public class CommonConfig { private int pathLogMaxSize = 100; private boolean restrictObjectLimit = false; + /** + * Used to estimate the memory usage of text fields in a UDF query. It is recommended to set this + * value to be slightly larger than the average length of all text records. + */ + private int udfInitialByteArrayLengthForMemoryControl = 48; + + /** The buffer for sort operation */ + private long sortBufferSize = 32 * 1024 * 1024L; + + /** Maximum execution time of a DriverTask */ + private int driverTaskExecutionTimeSliceInMs = 200; + + private int modeMapSizeThreshold = 10000; + + private int nodeId = -1; + + /** The buffer for cte scan operation */ + private long cteBufferSize = 128 * 1024L; + + /** Max number of rows for cte materialization */ + private int maxRowsInCteBuffer = 1000; + CommonConfig() { // Empty constructor } @@ -2829,4 +2851,61 @@ public boolean isRestrictObjectLimit() { public void setRestrictObjectLimit(boolean restrictObjectLimit) { this.restrictObjectLimit = restrictObjectLimit; } + + public int getUdfInitialByteArrayLengthForMemoryControl() { + return udfInitialByteArrayLengthForMemoryControl; + } + + public void setUdfInitialByteArrayLengthForMemoryControl( + int udfInitialByteArrayLengthForMemoryControl) { + this.udfInitialByteArrayLengthForMemoryControl = udfInitialByteArrayLengthForMemoryControl; + } + + public void setSortBufferSize(long sortBufferSize) { + this.sortBufferSize = sortBufferSize; + } + + public long getSortBufferSize() { + return sortBufferSize; + } + + public int getDriverTaskExecutionTimeSliceInMs() { + return driverTaskExecutionTimeSliceInMs; + } + + public void setDriverTaskExecutionTimeSliceInMs(int driverTaskExecutionTimeSliceInMs) { + this.driverTaskExecutionTimeSliceInMs = driverTaskExecutionTimeSliceInMs; + } + + public void setModeMapSizeThreshold(int modeMapSizeThreshold) { + this.modeMapSizeThreshold = modeMapSizeThreshold; + } + + public int getModeMapSizeThreshold() { + return modeMapSizeThreshold; + } + + public void setNodeId(int nodeId) { + this.nodeId = nodeId; + } + + public int getNodeId() { + return nodeId; + } + + public void setCteBufferSize(long cteBufferSize) { + this.cteBufferSize = cteBufferSize; + } + + public long getCteBufferSize() { + return cteBufferSize; + } + + public void setMaxRowsInCteBuffer(int maxRowsInCteBuffer) { + this.maxRowsInCteBuffer = maxRowsInCteBuffer; + } + + public int getMaxRowsInCteBuffer() { + return maxRowsInCteBuffer; + } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/sql/SemanticException.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/SemanticException.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/sql/SemanticException.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/SemanticException.java index 630929318c28a..4e43b890b4a21 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/sql/SemanticException.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/SemanticException.java @@ -17,9 +17,8 @@ * under the License. */ -package org.apache.iotdb.db.exception.sql; +package org.apache.iotdb.commons.exception; -import org.apache.iotdb.commons.exception.IoTDBRuntimeException; import org.apache.iotdb.rpc.TSStatusCode; public class SemanticException extends IoTDBRuntimeException { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/ConnectionInfo.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/common/ConnectionInfo.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/ConnectionInfo.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/common/ConnectionInfo.java index 3889e53318707..b59bf556b8202 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/ConnectionInfo.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/common/ConnectionInfo.java @@ -17,12 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.common; - -import org.apache.iotdb.db.conf.IoTDBDescriptor; +package org.apache.iotdb.commons.queryengine.common; public class ConnectionInfo { - private static final int dataNodeId = IoTDBDescriptor.getInstance().getConfig().getDataNodeId(); private final long userId; private final String userName; private final long sessionId; @@ -38,10 +35,6 @@ public ConnectionInfo( this.clientAddress = clientAddress; } - public int getDataNodeId() { - return dataNodeId; - } - public long getUserId() { return userId; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/NodeRef.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/common/NodeRef.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/NodeRef.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/common/NodeRef.java index eb4a9b5792eea..9f57602863145 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/NodeRef.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/common/NodeRef.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.common; +package org.apache.iotdb.commons.queryengine.common; import static java.lang.String.format; import static java.lang.System.identityHashCode; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/SessionInfo.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/common/SessionInfo.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/SessionInfo.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/common/SessionInfo.java index 5725207b3edc7..824ea18ce7dfb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/SessionInfo.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/common/SessionInfo.java @@ -17,13 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.common; +package org.apache.iotdb.commons.queryengine.common; import org.apache.iotdb.commons.audit.UserEntity; import org.apache.iotdb.commons.conf.IoTDBConstant.ClientVersion; +import org.apache.iotdb.commons.queryengine.plan.relational.security.Identity; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.protocol.session.IClientSession; -import org.apache.iotdb.db.queryengine.plan.relational.security.Identity; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -43,7 +42,7 @@ public class SessionInfo { @Nullable private final String databaseName; - private final IClientSession.SqlDialect sqlDialect; + private final SqlDialect sqlDialect; private ClientVersion version = ClientVersion.V_1_0; @@ -52,7 +51,7 @@ public SessionInfo(long sessionId, UserEntity userEntity, ZoneId zoneId) { this.userEntity = userEntity; this.zoneId = zoneId; this.databaseName = null; - this.sqlDialect = IClientSession.SqlDialect.TREE; + this.sqlDialect = SqlDialect.TREE; } public SessionInfo( @@ -60,7 +59,7 @@ public SessionInfo( UserEntity userEntity, ZoneId zoneId, @Nullable String databaseName, - IClientSession.SqlDialect sqlDialect) { + SqlDialect sqlDialect) { this(sessionId, userEntity, zoneId, ClientVersion.V_1_0, databaseName, sqlDialect); } @@ -70,7 +69,7 @@ public SessionInfo( ZoneId zoneId, ClientVersion version, @Nullable String databaseName, - IClientSession.SqlDialect sqlDialect) { + SqlDialect sqlDialect) { this.sessionId = sessionId; this.userEntity = userEntity; this.zoneId = zoneId; @@ -81,7 +80,7 @@ public SessionInfo( @TestOnly public SessionInfo(long sessionId, String username, ZoneId zoneId) { - this(sessionId, new UserEntity(-1, username, ""), zoneId, null, IClientSession.SqlDialect.TREE); + this(sessionId, new UserEntity(-1, username, ""), zoneId, null, SqlDialect.TREE); } @TestOnly @@ -90,7 +89,7 @@ public SessionInfo( String username, ZoneId zoneId, @Nullable String databaseName, - IClientSession.SqlDialect sqlDialect) { + SqlDialect sqlDialect) { this(sessionId, new UserEntity(-1, username, ""), zoneId, databaseName, sqlDialect); } @@ -101,7 +100,7 @@ public SessionInfo( ZoneId zoneId, ClientVersion version, @Nullable String databaseName, - IClientSession.SqlDialect sqlDialect) { + SqlDialect sqlDialect) { this(sessionId, new UserEntity(-1, username, ""), zoneId, version, databaseName, sqlDialect); } @@ -141,7 +140,7 @@ public Optional getDatabaseName() { return Optional.ofNullable(databaseName); } - public IClientSession.SqlDialect getSqlDialect() { + public SqlDialect getSqlDialect() { return sqlDialect; } @@ -156,7 +155,7 @@ public static SessionInfo deserializeFrom(final ByteBuffer buffer) { if (hasDatabaseName) { databaseName = ReadWriteIOUtils.readString(buffer); } - final IClientSession.SqlDialect sqlDialect1 = IClientSession.SqlDialect.deserializeFrom(buffer); + final SqlDialect sqlDialect1 = SqlDialect.deserializeFrom(buffer); return new SessionInfo( sessionId, new UserEntity(userId, userName, cliHostname), diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/common/SqlDialect.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/common/SqlDialect.java new file mode 100644 index 0000000000000..4ac459b11b76f --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/common/SqlDialect.java @@ -0,0 +1,56 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.commons.queryengine.common; + +import org.apache.tsfile.utils.ReadWriteIOUtils; + +import java.io.DataOutputStream; +import java.io.IOException; +import java.nio.ByteBuffer; + +public enum SqlDialect { + TREE((byte) 0), + TABLE((byte) 1); + + private final byte dialect; + + SqlDialect(byte dialect) { + this.dialect = dialect; + } + + public byte getDialect() { + return dialect; + } + + public void serialize(final DataOutputStream stream) throws IOException { + ReadWriteIOUtils.write(dialect, stream); + } + + public void serialize(final ByteBuffer buffer) { + ReadWriteIOUtils.write(dialect, buffer); + } + + public static SqlDialect deserializeFrom(final ByteBuffer buffer) { + byte b = ReadWriteIOUtils.readByte(buffer); + switch (b) { + case 0: + return TREE; + case 1: + return TABLE; + default: + throw new IllegalArgumentException(String.format("Unknown sql dialect: %s", b)); + } + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/MemoryEstimationHelper.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/MemoryEstimationHelper.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/MemoryEstimationHelper.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/MemoryEstimationHelper.java index f5db0ccb0a668..95796129011c6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/MemoryEstimationHelper.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/MemoryEstimationHelper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution; +package org.apache.iotdb.commons.queryengine.execution; import org.apache.iotdb.commons.path.AlignedPath; import org.apache.iotdb.commons.path.MeasurementPath; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/UpdateMemory.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/UpdateMemory.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/UpdateMemory.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/UpdateMemory.java index e9d03830d2938..3421c3cc5d477 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/UpdateMemory.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/UpdateMemory.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped; +package org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped; public interface UpdateMemory { UpdateMemory NOOP = () -> true; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/CombineHashFunction.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/CombineHashFunction.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/CombineHashFunction.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/CombineHashFunction.java index 91561eee75786..54ddc62198b07 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/CombineHashFunction.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/CombineHashFunction.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash; +package org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash; public final class CombineHashFunction { private CombineHashFunction() {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatGroupByHash.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatGroupByHash.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatGroupByHash.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatGroupByHash.java index 7f5e0abd07bb2..5d55f255f49ea 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatGroupByHash.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatGroupByHash.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash; +package org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; -import org.apache.iotdb.db.queryengine.plan.relational.utils.TypeUtil; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; +import org.apache.iotdb.commons.queryengine.plan.relational.utils.TypeUtil; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -35,7 +35,7 @@ import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Verify.verify; import static java.lang.Math.min; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.FlatHash.sumExact; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.FlatHash.sumExact; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOf; // This implementation assumes arrays used in the hash are always a power of 2 diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatHash.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatHash.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatHash.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatHash.java index 207bab62914c7..c14f72f91c5ab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatHash.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatHash.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash; +package org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -32,8 +32,8 @@ import static java.lang.Math.max; import static java.lang.Math.min; import static java.lang.Math.toIntExact; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.VariableWidthData.EMPTY_CHUNK; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.VariableWidthData.POINTER_SIZE; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.VariableWidthData.EMPTY_CHUNK; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.VariableWidthData.POINTER_SIZE; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOfByteArray; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOfIntArray; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatHashStrategy.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatHashStrategy.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatHashStrategy.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatHashStrategy.java index b1ac02c9b3ee4..143cbfe68f068 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatHashStrategy.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/FlatHashStrategy.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash; +package org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/GroupByHash.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/GroupByHash.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/GroupByHash.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/GroupByHash.java index 60059ae105f29..50d30045b19ae 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/GroupByHash.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/GroupByHash.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash; +package org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; import com.google.common.annotations.VisibleForTesting; import org.apache.tsfile.block.column.Column; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/HashStrategy.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/HashStrategy.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/HashStrategy.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/HashStrategy.java index 6a5cf351dd994..39fb108f80855 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/HashStrategy.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/HashStrategy.java @@ -16,9 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash; +package org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash; -import org.apache.iotdb.db.queryengine.plan.relational.utils.TypeUtil; +import org.apache.iotdb.commons.queryengine.plan.relational.utils.TypeUtil; import com.google.common.collect.ImmutableList; import org.apache.tsfile.block.column.Column; @@ -27,8 +27,8 @@ import java.util.List; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.TypeUtil.getFlatVariableWidthSize; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.TypeUtil.notDistinctFrom; +import static org.apache.iotdb.commons.queryengine.plan.relational.utils.TypeUtil.getFlatVariableWidthSize; +import static org.apache.iotdb.commons.queryengine.plan.relational.utils.TypeUtil.notDistinctFrom; public class HashStrategy implements FlatHashStrategy { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/MarkDistinctHash.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/MarkDistinctHash.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/MarkDistinctHash.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/MarkDistinctHash.java index 7001bdf056e95..a2bb02b8b9220 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/MarkDistinctHash.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/MarkDistinctHash.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash; +package org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.UpdateMemory; import com.google.common.annotations.VisibleForTesting; import org.apache.tsfile.block.column.Column; @@ -32,8 +32,8 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash.DEFAULT_GROUP_NUMBER; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash.createGroupByHash; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash.DEFAULT_GROUP_NUMBER; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.GroupByHash.createGroupByHash; public class MarkDistinctHash { private final GroupByHash groupByHash; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/NoChannelGroupByHash.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/NoChannelGroupByHash.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/NoChannelGroupByHash.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/NoChannelGroupByHash.java index e0647b895f1f3..7e30e2bd37479 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/NoChannelGroupByHash.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/NoChannelGroupByHash.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash; +package org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.read.common.block.TsBlockBuilder; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/VariableWidthData.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/VariableWidthData.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/VariableWidthData.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/VariableWidthData.java index 143153112db4c..880eb47762209 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/VariableWidthData.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/VariableWidthData.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash; +package org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash; import com.google.common.primitives.Ints; import org.apache.tsfile.utils.RamUsageEstimator; @@ -30,9 +30,9 @@ import static java.lang.Math.addExact; import static java.lang.Math.max; import static java.lang.Math.subtractExact; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.FlatHash.bytesToInt; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.FlatHash.intToBytes; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.FlatHash.sumExact; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.FlatHash.bytesToInt; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.FlatHash.intToBytes; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.FlatHash.sumExact; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOf; import static org.apache.tsfile.utils.RamUsageEstimator.sizeOfObjectArray; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/XxHash64.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/XxHash64.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/XxHash64.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/XxHash64.java index bf38564ee06e3..eb50a76c68646 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/aggregation/grouped/hash/XxHash64.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/execution/operator/source/relational/aggregation/grouped/hash/XxHash64.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash; +package org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash; import java.io.IOException; import java.io.InputStream; diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/analyze/ITableTypeProvider.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/analyze/ITableTypeProvider.java new file mode 100644 index 0000000000000..889f16d9cc35b --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/analyze/ITableTypeProvider.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.analyze; + +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; + +import org.apache.tsfile.read.common.type.Type; + +import java.util.Map; + +public interface ITableTypeProvider { + Type getTableModelType(Symbol symbol); + + boolean isSymbolExist(Symbol symbol); + + void putTableModelType(Symbol symbol, Type type); + + Map allTableModelTypes(); +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/FunctionType.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/expression/multi/FunctionType.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/FunctionType.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/expression/multi/FunctionType.java index ec37e974ee39f..2589fe60489ea 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/FunctionType.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/expression/multi/FunctionType.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.expression.multi; +package org.apache.iotdb.commons.queryengine.plan.expression.multi; /** */ public enum FunctionType { diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/CommonPlanNodeDeserializer.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/CommonPlanNodeDeserializer.java new file mode 100644 index 0000000000000..7576ce0b5ed14 --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/CommonPlanNodeDeserializer.java @@ -0,0 +1,141 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node; + +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GapFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LinearFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MarkDistinctNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PreviousFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowNumberNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValueFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValuesNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; + +import java.io.DataInputStream; +import java.io.IOException; +import java.nio.ByteBuffer; + +public class CommonPlanNodeDeserializer implements IPlanNodeDeserializer { + public static final CommonPlanNodeDeserializer INSTANCE = new CommonPlanNodeDeserializer(); + + @Override + public PlanNode deserializeFromWAL(DataInputStream stream) throws IOException { + throw new UnsupportedOperationException("Not supported for CommonPlanNodeDeserializer"); + } + + @Override + public PlanNode deserializeFromWAL(ByteBuffer buffer) { + throw new UnsupportedOperationException("Not supported for CommonPlanNodeDeserializer"); + } + + @Override + public PlanNode deserialize(ByteBuffer buffer) { + short nodeType = buffer.getShort(); + return deserialize(buffer, nodeType); + } + + @Override + public PlanNode deserialize(ByteBuffer buffer, short nodeType) { + switch (nodeType) { + case 1001: + return org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode + .deserialize(buffer); + case 1002: + return org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode + .deserialize(buffer); + case 1003: + return OutputNode.deserialize(buffer); + case 1004: + return org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode + .deserialize(buffer); + case 1005: + return org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode + .deserialize(buffer); + case 1006: + return org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode + .deserialize(buffer); + case 1007: + return MergeSortNode.deserialize(buffer); + case 1008: + return org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode + .deserialize(buffer); + case 1009: + return org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CollectNode + .deserialize(buffer); + case 1010: + return StreamSortNode.deserialize(buffer); + case 1011: + return JoinNode.deserialize(buffer); + case 1012: + return PreviousFillNode.deserialize(buffer); + case 1013: + return LinearFillNode.deserialize(buffer); + case 1014: + return ValueFillNode.deserialize(buffer); + case 1015: + return org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode + .deserialize(buffer); + case 1017: + return GapFillNode.deserialize(buffer); + case 1020: + return EnforceSingleRowNode.deserialize(buffer); + case 1025: + return SemiJoinNode.deserialize(buffer); + case 1026: + return MarkDistinctNode.deserialize(buffer); + case 1027: + return AssignUniqueId.deserialize(buffer); + case 1028: + return TableFunctionNode.deserialize(buffer); + case 1029: + return TableFunctionProcessorNode.deserialize(buffer); + case 1030: + return GroupNode.deserialize(buffer); + case 1031: + return PatternRecognitionNode.deserialize(buffer); + case 1032: + return WindowNode.deserialize(buffer); + case 1034: + return UnionNode.deserialize(buffer); + case 1035: + return IntersectNode.deserialize(buffer); + case 1036: + return ExceptNode.deserialize(buffer); + case 1037: + return TopKRankingNode.deserialize(buffer); + case 1038: + return RowNumberNode.deserialize(buffer); + case 1039: + return ValuesNode.deserialize(buffer); + default: + throw new IllegalArgumentException("Invalid node type: " + nodeType); + } + } +} diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/ICoreQueryPlanVisitor.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/ICoreQueryPlanVisitor.java new file mode 100644 index 0000000000000..3ecac969c78e1 --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/ICoreQueryPlanVisitor.java @@ -0,0 +1,227 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node; + +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.iterative.GroupReference; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AggregationNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ApplyNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.AssignUniqueId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CollectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.CorrelatedJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.EnforceSingleRowNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ExceptNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.FilterNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GapFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.GroupNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.IntersectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LimitNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.LinearFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MarkDistinctNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.MergeSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OffsetNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.OutputNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PatternRecognitionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.PreviousFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ProjectNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowNumberNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SemiJoinNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.SortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.StreamSortNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TableFunctionProcessorNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.TopKRankingNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.UnionNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValueFillNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.ValuesNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.node.WindowNode; + +public interface ICoreQueryPlanVisitor extends IPlanVisitor { + + ///////////////////////////////////////////////////////////////////////////////////////////////// + // Data Query Node + ///////////////////////////////////////////////////////////////////////////////////////////////// + + // source -------------------------------------------------------------------------------------- + + default R visitSourceNode(SourceNode node, C context) { + return visitPlan(node, context); + } + + // single child -------------------------------------------------------------------------------- + + default R visitSingleChildProcess(SingleChildProcessNode node, C context) { + return visitPlan(node, context); + } + + // two child ----------------------------------------------------------------------------------- + + default R visitTwoChildProcess(TwoChildProcessNode node, C context) { + return visitPlan(node, context); + } + + // multi child -------------------------------------------------------------------------------- + + default R visitMultiChildProcess(MultiChildProcessNode node, C context) { + return visitPlan(node, context); + } + + // =============================== Used for Table Model ==================================== + default R visitFilter(FilterNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitApply(ApplyNode node, C context) { + return visitTwoChildProcess(node, context); + } + + default R visitAssignUniqueId(AssignUniqueId node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitEnforceSingleRow(EnforceSingleRowNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitCorrelatedJoin(CorrelatedJoinNode node, C context) { + return visitTwoChildProcess(node, context); + } + + default R visitProject(ProjectNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitLimit(LimitNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitOffset(OffsetNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitMergeSort(MergeSortNode node, C context) { + return visitMultiChildProcess(node, context); + } + + default R visitOutput(OutputNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitCollect(CollectNode node, C context) { + return visitMultiChildProcess(node, context); + } + + default R visitGapFill(GapFillNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitFill(FillNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitPreviousFill(PreviousFillNode node, C context) { + return visitFill(node, context); + } + + default R visitLinearFill(LinearFillNode node, C context) { + return visitFill(node, context); + } + + default R visitValueFill(ValueFillNode node, C context) { + return visitFill(node, context); + } + + default R visitSort(SortNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitStreamSort(StreamSortNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitGroup(GroupNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitTopK(TopKNode node, C context) { + return visitMultiChildProcess(node, context); + } + + default R visitTopKRanking(TopKRankingNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitRowNumber(RowNumberNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitValuesNode(ValuesNode node, C context) { + return visitPlan(node, context); + } + + default R visitJoin(JoinNode node, C context) { + return visitTwoChildProcess(node, context); + } + + default R visitSemiJoin(SemiJoinNode node, C context) { + return visitTwoChildProcess(node, context); + } + + default R visitGroupReference(GroupReference node, C context) { + return visitPlan(node, context); + } + + default R visitAggregation(AggregationNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitMarkDistinct(MarkDistinctNode node, C context) { + return visitSingleChildProcess(node, context); + } + + default R visitWindowFunction(WindowNode node, C context) { + return visitPlan(node, context); + } + + default R visitTableFunction(TableFunctionNode node, C context) { + return visitPlan(node, context); + } + + default R visitTableFunctionProcessor(TableFunctionProcessorNode node, C context) { + return visitPlan(node, context); + } + + default R visitPatternRecognition(PatternRecognitionNode node, C context) { + return visitPlan(node, context); + } + + default R visitUnion(UnionNode node, C context) { + return visitPlan(node, context); + } + + default R visitIntersect(IntersectNode node, C context) { + return visitPlan(node, context); + } + + default R visitExcept(ExceptNode node, C context) { + return visitPlan(node, context); + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/IPartitionRelatedNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/IPartitionRelatedNode.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/IPartitionRelatedNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/IPartitionRelatedNode.java index 61b078d611708..b1982748e9bd9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/IPartitionRelatedNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/IPartitionRelatedNode.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.planner.plan.node; +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/IPlanNodeDeserializer.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/IPlanNodeDeserializer.java new file mode 100644 index 0000000000000..f73e94b730651 --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/IPlanNodeDeserializer.java @@ -0,0 +1,29 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node; + +import java.io.DataInputStream; +import java.io.IOException; +import java.nio.ByteBuffer; + +public interface IPlanNodeDeserializer { + PlanNode deserializeFromWAL(DataInputStream stream) throws IOException; + + PlanNode deserializeFromWAL(ByteBuffer buffer); + + PlanNode deserialize(ByteBuffer buffer); + + PlanNode deserialize(ByteBuffer buffer, short nodeType); +} diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/IPlanNodeDeserializerProvider.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/IPlanNodeDeserializerProvider.java new file mode 100644 index 0000000000000..caab718fd48ef --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/IPlanNodeDeserializerProvider.java @@ -0,0 +1,19 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node; + +public interface IPlanNodeDeserializerProvider { + IPlanNodeDeserializer getDeserializer(); +} diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/IPlanVisitor.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/IPlanVisitor.java new file mode 100644 index 0000000000000..b07f6d65cba71 --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/IPlanVisitor.java @@ -0,0 +1,24 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node; + +public interface IPlanVisitor { + + default R process(PlanNode node, C context) { + return node.accept(this, context); + } + + R visitPlan(PlanNode node, C context); +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNode.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNode.java index 4e3196c8d42c4..ebb0c69ea3679 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNode.java @@ -17,12 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.planner.plan.node; +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node; import org.apache.iotdb.commons.exception.runtime.SerializationRunTimeException; -import org.apache.iotdb.consensus.common.request.IConsensusRequest; -import org.apache.iotdb.db.queryengine.plan.analyze.TypeProvider; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.request.IConsensusRequest; import org.apache.tsfile.utils.PublicBAOS; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -126,7 +125,7 @@ private int getChildrenCount(List children) { public abstract List getOutputColumnNames(); - public R accept(PlanVisitor visitor, C context) { + public R accept(IPlanVisitor visitor, C context) { return visitor.visitPlan(this, context); } @@ -158,8 +157,7 @@ public void serialize(DataOutputStream stream) throws IOException { } } - public void serializeUseTemplate(DataOutputStream stream, TypeProvider typeProvider) - throws IOException { + public void serializeUseTemplate(DataOutputStream stream) throws IOException { serializeAttributes(stream); id.serialize(stream); List planNodes = getChildren(); @@ -168,15 +166,12 @@ public void serializeUseTemplate(DataOutputStream stream, TypeProvider typeProvi } else { ReadWriteIOUtils.write(planNodes.size(), stream); for (PlanNode planNode : planNodes) { - planNode.serializeUseTemplate(stream, typeProvider); + planNode.serializeUseTemplate(stream); } } } - /** - * Deserialize via {@link - * org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType#deserialize(ByteBuffer)} - */ + /** Deserialize via {@link PlanNodeType#deserialize(ByteBuffer)} */ @Override public ByteBuffer serializeToByteBuffer() { try (PublicBAOS byteArrayOutputStream = new PublicBAOS(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeId.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNodeId.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeId.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNodeId.java index fd842616f7cd7..8bfdf2979f6fc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeId.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNodeId.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.planner.plan.node; +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node; import org.apache.tsfile.utils.Accountable; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNodeType.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNodeType.java new file mode 100644 index 0000000000000..80605db85c309 --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/PlanNodeType.java @@ -0,0 +1,259 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node; + +import org.apache.tsfile.utils.ReadWriteIOUtils; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.ServiceLoader; + +public enum PlanNodeType { + AGGREGATE((short) 0), + DEVICE_VIEW((short) 1), + FILL((short) 2), + FILTER((short) 3), + FILTER_NULL((short) 4), + GROUP_BY_LEVEL((short) 5), + LIMIT((short) 6), + OFFSET((short) 7), + SORT((short) 8), + FULL_OUTER_TIME_JOIN((short) 9), + FRAGMENT_SINK((short) 10), + SERIES_SCAN((short) 11), + SERIES_AGGREGATE_SCAN((short) 12), + INSERT_TABLET((short) 13), + INSERT_ROW((short) 14), + INSERT_ROWS((short) 15), + INSERT_ROWS_OF_ONE_DEVICE((short) 16), + INSERT_MULTI_TABLET((short) 17), + DEVICES_SCHEMA_SCAN((short) 18), + CREATE_TIME_SERIES((short) 19), + EXCHANGE((short) 20), + ALTER_TIME_SERIES((short) 21), + CREATE_ALIGNED_TIME_SERIES((short) 22), + TIME_SERIES_SCHEMA_SCAN((short) 23), + SERIES_SCHEMA_FETCH_SCAN((short) 24), + SCHEMA_QUERY_MERGE((short) 25), + SCHEMA_QUERY_ORDER_BY_HEAT((short) 26), + DEVICES_COUNT((short) 27), + TIME_SERIES_COUNT((short) 28), + LEVEL_TIME_SERIES_COUNT((short) 29), + COUNT_MERGE((short) 30), + SLIDING_WINDOW_AGGREGATION((short) 31), + PROJECT((short) 32), + ALIGNED_SERIES_SCAN((short) 33), + ALIGNED_SERIES_AGGREGATE_SCAN((short) 34), + DEVICE_MERGE((short) 35), + SCHEMA_FETCH_MERGE((short) 36), + TRANSFORM((short) 37), + CREATE_MULTI_TIME_SERIES((short) 39), + NODE_PATHS_SCAN((short) 40), + NODE_PATHS_CONVERT((short) 41), + NODE_MANAGEMENT_MEMORY_MERGE((short) 42), + DELETE_DATA((short) 44), + DELETE_TIME_SERIES((short) 45), + @Deprecated + DEPRECATED_LAST_QUERY_SCAN((short) 46), + @Deprecated + DEPRECATED_ALIGNED_LAST_QUERY_SCAN((short) 47), + LAST_QUERY((short) 48), + LAST_QUERY_MERGE((short) 49), + LAST_QUERY_COLLECT((short) 50), + NODE_PATHS_COUNT((short) 51), + INTERNAL_CREATE_TIME_SERIES((short) 52), + ACTIVATE_TEMPLATE((short) 53), + PATHS_USING_TEMPLATE_SCAN((short) 54), + LOAD_TSFILE((short) 55), + CONSTRUCT_SCHEMA_BLACK_LIST_NODE((short) 56), + ROLLBACK_SCHEMA_BLACK_LIST_NODE((short) 57), + GROUP_BY_TAG((short) 58), + PRE_DEACTIVATE_TEMPLATE_NODE((short) 59), + ROLLBACK_PRE_DEACTIVATE_TEMPLATE_NODE((short) 60), + DEACTIVATE_TEMPLATE_NODE((short) 61), + INTO((short) 62), + DEVICE_VIEW_INTO((short) 63), + VERTICALLY_CONCAT((short) 64), + SINGLE_DEVICE_VIEW((short) 65), + MERGE_SORT((short) 66), + SHOW_QUERIES((short) 67), + INTERNAL_BATCH_ACTIVATE_TEMPLATE((short) 68), + INTERNAL_CREATE_MULTI_TIMESERIES((short) 69), + IDENTITY_SINK((short) 70), + SHUFFLE_SINK((short) 71), + BATCH_ACTIVATE_TEMPLATE((short) 72), + CREATE_LOGICAL_VIEW((short) 73), + CONSTRUCT_LOGICAL_VIEW_BLACK_LIST((short) 74), + ROLLBACK_LOGICAL_VIEW_BLACK_LIST((short) 75), + DELETE_LOGICAL_VIEW((short) 76), + LOGICAL_VIEW_SCHEMA_SCAN((short) 77), + ALTER_LOGICAL_VIEW((short) 78), + PIPE_ENRICHED_INSERT_DATA((short) 79), + INFERENCE((short) 80), + LAST_QUERY_TRANSFORM((short) 81), + TOP_K((short) 82), + COLUMN_INJECT((short) 83), + + PIPE_ENRICHED_DELETE_DATA((short) 84), + PIPE_ENRICHED_WRITE((short) 85), + PIPE_ENRICHED_NON_WRITE((short) 86), + + INNER_TIME_JOIN((short) 87), + LEFT_OUTER_TIME_JOIN((short) 88), + AGG_MERGE_SORT((short) 89), + + EXPLAIN_ANALYZE((short) 90), + + PIPE_OPERATE_SCHEMA_QUEUE_REFERENCE((short) 91), + + RAW_DATA_AGGREGATION((short) 92), + + DEVICE_REGION_SCAN((short) 93), + TIMESERIES_REGION_SCAN((short) 94), + REGION_MERGE((short) 95), + DEVICE_SCHEMA_FETCH_SCAN((short) 96), + + CONTINUOUS_SAME_SEARCH_INDEX_SEPARATOR((short) 97), + + LAST_QUERY_SCAN((short) 98), + ALTER_ENCODING_COMPRESSOR((short) 99), + // 100 - 106 are occupied + SHOW_DISK_USAGE((short) 107), + TREE_COLLECT((short) 108), + LOAD_TSFILE_OBJECT_PIECE((short) 109), + + CREATE_OR_UPDATE_TABLE_DEVICE((short) 902), + TABLE_DEVICE_QUERY_SCAN((short) 903), + TABLE_DEVICE_FETCH((short) 904), + DELETE_TABLE_DEVICE((short) 905), + TABLE_DEVICE_QUERY_COUNT((short) 906), + TABLE_DEVICE_ATTRIBUTE_UPDATE((short) 907), + TABLE_DEVICE_ATTRIBUTE_COMMIT((short) 908), + TABLE_DEVICE_LOCATION_ADD((short) 909), + CONSTRUCT_TABLE_DEVICES_BLACK_LIST((short) 910), + ROLLBACK_TABLE_DEVICES_BLACK_LIST((short) 911), + DELETE_TABLE_DEVICES_IN_BLACK_LIST((short) 912), + TABLE_ATTRIBUTE_COLUMN_DROP((short) 913), + + DEVICE_TABLE_SCAN_NODE((short) 1000), + TABLE_FILTER_NODE((short) 1001), + TABLE_PROJECT_NODE((short) 1002), + TABLE_OUTPUT_NODE((short) 1003), + TABLE_LIMIT_NODE((short) 1004), + TABLE_OFFSET_NODE((short) 1005), + TABLE_SORT_NODE((short) 1006), + TABLE_MERGESORT_NODE((short) 1007), + TABLE_TOPK_NODE((short) 1008), + TABLE_COLLECT_NODE((short) 1009), + TABLE_STREAM_SORT_NODE((short) 1010), + TABLE_JOIN_NODE((short) 1011), + TABLE_PREVIOUS_FILL_NODE((short) 1012), + TABLE_LINEAR_FILL_NODE((short) 1013), + TABLE_VALUE_FILL_NODE((short) 1014), + TABLE_AGGREGATION_NODE((short) 1015), + TABLE_AGGREGATION_TABLE_SCAN_NODE((short) 1016), + TABLE_GAP_FILL_NODE((short) 1017), + TABLE_EXCHANGE_NODE((short) 1018), + TABLE_EXPLAIN_ANALYZE_NODE((short) 1019), + TABLE_ENFORCE_SINGLE_ROW_NODE((short) 1020), + INFORMATION_SCHEMA_TABLE_SCAN_NODE((short) 1021), + @Deprecated + AGGREGATION_TREE_DEVICE_VIEW_SCAN_NODE((short) 1022), + TREE_ALIGNED_DEVICE_VIEW_SCAN_NODE((short) 1023), + TREE_NONALIGNED_DEVICE_VIEW_SCAN_NODE((short) 1024), + TABLE_SEMI_JOIN_NODE((short) 1025), + MARK_DISTINCT_NODE((short) 1026), + TABLE_ASSIGN_UNIQUE_ID((short) 1027), + TABLE_FUNCTION_NODE((short) 1028), + TABLE_FUNCTION_PROCESSOR_NODE((short) 1029), + TABLE_GROUP_NODE((short) 1030), + TABLE_PATTERN_RECOGNITION_NODE((short) 1031), + TABLE_WINDOW_FUNCTION((short) 1032), + TABLE_INTO_NODE((short) 1033), + TABLE_UNION_NODE((short) 1034), + TABLE_INTERSECT_NODE((short) 1035), + TABLE_EXCEPT_NODE((short) 1036), + TABLE_TOPK_RANKING_NODE((short) 1037), + TABLE_ROW_NUMBER_NODE((short) 1038), + TABLE_VALUES_NODE((short) 1039), + TABLE_DISK_USAGE_INFORMATION_SCHEMA_TABLE_SCAN_NODE((short) 1040), + ALIGNED_AGGREGATION_TREE_DEVICE_VIEW_SCAN_NODE((short) 1041), + NON_ALIGNED_AGGREGATION_TREE_DEVICE_VIEW_SCAN_NODE((short) 1042), + + RELATIONAL_INSERT_TABLET((short) 2000), + RELATIONAL_INSERT_ROW((short) 2001), + RELATIONAL_INSERT_ROWS((short) 2002), + RELATIONAL_DELETE_DATA((short) 2003), + OBJECT_FILE_NODE((short) 2004), + ; + + private static final IPlanNodeDeserializer DESERIALIZER; + + static { + IPlanNodeDeserializer deserializer = null; + ServiceLoader loader = + ServiceLoader.load(IPlanNodeDeserializerProvider.class); + for (IPlanNodeDeserializerProvider provider : loader) { + if (deserializer != null) { + throw new IllegalStateException("Multiple IPlanNodeDeserializerProvider found"); + } + deserializer = provider.getDeserializer(); + } + DESERIALIZER = deserializer == null ? CommonPlanNodeDeserializer.INSTANCE : deserializer; + } + + public static final int BYTES = Short.BYTES; + + private final short nodeType; + + PlanNodeType(short nodeType) { + this.nodeType = nodeType; + } + + public short getNodeType() { + return nodeType; + } + + public void serialize(ByteBuffer buffer) { + ReadWriteIOUtils.write(nodeType, buffer); + } + + public void serialize(DataOutputStream stream) throws IOException { + ReadWriteIOUtils.write(nodeType, stream); + } + + public static PlanNode deserializeFromWAL(DataInputStream stream) throws IOException { + return DESERIALIZER.deserializeFromWAL(stream); + } + + public static PlanNode deserializeFromWAL(ByteBuffer buffer) { + return DESERIALIZER.deserializeFromWAL(buffer); + } + + public static PlanNode deserialize(ByteBuffer buffer) { + return DESERIALIZER.deserialize(buffer); + } + + public static PlanNode deserialize(ByteBuffer buffer, short nodeType) { + return DESERIALIZER.deserialize(buffer, nodeType); + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/MultiChildProcessNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/process/MultiChildProcessNode.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/MultiChildProcessNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/process/MultiChildProcessNode.java index b3bd064c910b3..c986e954f4e10 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/MultiChildProcessNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/process/MultiChildProcessNode.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import java.util.ArrayList; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ProcessNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/process/ProcessNode.java similarity index 79% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ProcessNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/process/ProcessNode.java index 8b3dcd41e07b5..f67629038c5ea 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/ProcessNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/process/ProcessNode.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; public abstract class ProcessNode extends PlanNode { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SingleChildProcessNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/process/SingleChildProcessNode.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SingleChildProcessNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/process/SingleChildProcessNode.java index c84e2ef6457a4..cf8c4587dd169 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/SingleChildProcessNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/process/SingleChildProcessNode.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/TwoChildProcessNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/process/TwoChildProcessNode.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/TwoChildProcessNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/process/TwoChildProcessNode.java index c70f88552271f..f91b748071596 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/TwoChildProcessNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/process/TwoChildProcessNode.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.planner.plan.node.process; +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; import com.google.common.collect.ImmutableList; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SourceNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/source/SourceNode.java similarity index 78% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SourceNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/source/SourceNode.java index bf930d1d63b5e..88f3569d116de 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/source/SourceNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/node/source/SourceNode.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.planner.plan.node.source; +package org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.IPartitionRelatedNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPartitionRelatedNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; public abstract class SourceNode extends PlanNode implements AutoCloseable, IPartitionRelatedNode { protected SourceNode() {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/InputLocation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/parameter/InputLocation.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/InputLocation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/parameter/InputLocation.java index d0b88fbda2875..5f390ea0ccc4e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/parameter/InputLocation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/planner/plan/parameter/InputLocation.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.planner.plan.parameter; +package org.apache.iotdb.commons.queryengine.plan.planner.plan.parameter; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/NodeRef.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/analyzer/NodeRef.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/NodeRef.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/analyzer/NodeRef.java index 41564a8d6006d..50dd2a0a2588d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/NodeRef.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/analyzer/NodeRef.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.analyzer; +package org.apache.iotdb.commons.queryengine.plan.relational.analyzer; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; import static java.lang.System.identityHashCode; import static java.util.Objects.requireNonNull; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/BoundSignature.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/BoundSignature.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/BoundSignature.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/BoundSignature.java index e16ce6e549dc9..65b8fd78788d6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/BoundSignature.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/BoundSignature.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function; +package org.apache.iotdb.commons.queryengine.plan.relational.function; -import org.apache.iotdb.db.queryengine.plan.relational.utils.TypeUtil; +import org.apache.iotdb.commons.queryengine.plan.relational.utils.TypeUtil; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/FunctionId.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/FunctionId.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/FunctionId.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/FunctionId.java index d814d8b4db635..f0177a9b87f46 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/FunctionId.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/FunctionId.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function; +package org.apache.iotdb.commons.queryengine.plan.relational.function; import java.util.Locale; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/FunctionKind.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/FunctionKind.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/FunctionKind.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/FunctionKind.java index 1e336502af9a9..a43ccf17834ff 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/FunctionKind.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/FunctionKind.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function; +package org.apache.iotdb.commons.queryengine.plan.relational.function; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/ITableFunctionAINodeService.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/ITableFunctionAINodeService.java new file mode 100644 index 0000000000000..f35790ba97af0 --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/ITableFunctionAINodeService.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.relational.function; + +import org.apache.iotdb.ainode.rpc.thrift.TForecastReq; +import org.apache.iotdb.ainode.rpc.thrift.TForecastResp; + +public interface ITableFunctionAINodeService { + + TForecastResp forecast(TForecastReq req); +} diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/ITableFunctionAINodeServiceProvider.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/ITableFunctionAINodeServiceProvider.java new file mode 100644 index 0000000000000..49d3acc615b0a --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/ITableFunctionAINodeServiceProvider.java @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.relational.function; + +public interface ITableFunctionAINodeServiceProvider { + + ITableFunctionAINodeService getTableFunctionAINodeService(); +} diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/ITableFunctionFactory.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/ITableFunctionFactory.java new file mode 100644 index 0000000000000..adf64c52f3705 --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/ITableFunctionFactory.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.relational.function; + +import org.apache.iotdb.udf.api.relational.TableFunction; + +public interface ITableFunctionFactory { + default TableFunction getTableFunction(String functionName) { + return TableFunctionFactory.getTableFunction(functionName); + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/InterpretedFunctionInvoker.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/InterpretedFunctionInvoker.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/InterpretedFunctionInvoker.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/InterpretedFunctionInvoker.java index c85605233cbd9..2eb4deffc72f7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/InterpretedFunctionInvoker.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/InterpretedFunctionInvoker.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function; +package org.apache.iotdb.commons.queryengine.plan.relational.function; +import org.apache.iotdb.commons.queryengine.common.SessionInfo; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction; -import org.apache.iotdb.db.queryengine.common.SessionInfo; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/LongVariableConstraint.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/LongVariableConstraint.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/LongVariableConstraint.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/LongVariableConstraint.java index 6aa67bb2eeecb..c6d105a3ad81c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/LongVariableConstraint.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/LongVariableConstraint.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function; +package org.apache.iotdb.commons.queryengine.plan.relational.function; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/OperatorType.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/OperatorType.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/OperatorType.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/OperatorType.java index 0a727e8524a5b..8df0429759c9c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/OperatorType.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/OperatorType.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function; +package org.apache.iotdb.commons.queryengine.plan.relational.function; public enum OperatorType { ADD("+", 2), diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/ResolvedFunctionCallBuilder.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/ResolvedFunctionCallBuilder.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/ResolvedFunctionCallBuilder.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/ResolvedFunctionCallBuilder.java index 37cc3009588b2..e36441116dfcd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/ResolvedFunctionCallBuilder.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/ResolvedFunctionCallBuilder.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function; +package org.apache.iotdb.commons.queryengine.plan.relational.function; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; import java.util.ArrayList; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/Signature.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/Signature.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/Signature.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/Signature.java index 1daeadbbce628..ae0797a71534f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/Signature.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/Signature.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function; +package org.apache.iotdb.commons.queryengine.plan.relational.function; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignature; import java.util.ArrayList; import java.util.List; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/TableBuiltinTableFunction.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/TableBuiltinTableFunction.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/TableBuiltinTableFunction.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/TableBuiltinTableFunction.java index 61b96809f847e..577f02aabd719 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/TableBuiltinTableFunction.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/TableBuiltinTableFunction.java @@ -17,17 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function; +package org.apache.iotdb.commons.queryengine.plan.relational.function; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.ClassifyTableFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.ForecastTableFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.PatternMatchTableFunction; import org.apache.iotdb.commons.udf.builtin.relational.tvf.CapacityTableFunction; import org.apache.iotdb.commons.udf.builtin.relational.tvf.CumulateTableFunction; import org.apache.iotdb.commons.udf.builtin.relational.tvf.HOPTableFunction; import org.apache.iotdb.commons.udf.builtin.relational.tvf.SessionTableFunction; import org.apache.iotdb.commons.udf.builtin.relational.tvf.TumbleTableFunction; import org.apache.iotdb.commons.udf.builtin.relational.tvf.VariationTableFunction; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.ClassifyTableFunction; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.ForecastTableFunction; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.PatternMatchTableFunction; import org.apache.iotdb.udf.api.relational.TableFunction; import java.util.Arrays; diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/TableFunctionFactory.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/TableFunctionFactory.java new file mode 100644 index 0000000000000..441eda6499b3e --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/TableFunctionFactory.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.relational.function; + +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.udf.TableUDFUtils; +import org.apache.iotdb.udf.api.relational.TableFunction; + +public class TableFunctionFactory { + + private TableFunctionFactory() {} + + public static TableFunction getTableFunction(String functionName) { + if (TableBuiltinTableFunction.isBuiltInTableFunction(functionName)) { + return TableBuiltinTableFunction.getBuiltinTableFunction(functionName); + } else if (TableUDFUtils.isTableFunction(functionName)) { + return TableUDFUtils.getTableFunction(functionName); + } else { + throw new SemanticException("Unknown function: " + functionName); + } + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/TypeVariableConstraint.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/TypeVariableConstraint.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/TypeVariableConstraint.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/TypeVariableConstraint.java index dc77ecdd285fa..a32cd03d48796 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/TypeVariableConstraint.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/TypeVariableConstraint.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function; +package org.apache.iotdb.commons.queryengine.plan.relational.function; -import org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignature; import java.util.HashSet; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/AdditionResolver.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/AdditionResolver.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/AdditionResolver.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/AdditionResolver.java index c0b70691fb897..6ba98fc2903cb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/AdditionResolver.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/AdditionResolver.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic; +package org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/DivisionResolver.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/DivisionResolver.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/DivisionResolver.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/DivisionResolver.java index b73ab852457f5..0fae5be12fb62 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/DivisionResolver.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/DivisionResolver.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic; +package org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/ModulusResolver.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/ModulusResolver.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/ModulusResolver.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/ModulusResolver.java index 1953381ac5a6a..c8417ab001fbf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/ModulusResolver.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/ModulusResolver.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic; +package org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/MultiplicationResolver.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/MultiplicationResolver.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/MultiplicationResolver.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/MultiplicationResolver.java index f9ca05a2d8e84..d2773fcfab3b4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/MultiplicationResolver.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/MultiplicationResolver.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic; +package org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/SubtractionResolver.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/SubtractionResolver.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/SubtractionResolver.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/SubtractionResolver.java index a6b040168172d..55a6188e0c212 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/arithmetic/SubtractionResolver.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/arithmetic/SubtractionResolver.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.arithmetic; +package org.apache.iotdb.commons.queryengine.plan.relational.function.arithmetic; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/ClassifyTableFunction.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/ClassifyTableFunction.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/ClassifyTableFunction.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/ClassifyTableFunction.java index 61036302af874..45d59b802a8a6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/ClassifyTableFunction.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/ClassifyTableFunction.java @@ -17,18 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.tvf; +package org.apache.iotdb.commons.queryengine.plan.relational.function.tvf; import org.apache.iotdb.ainode.rpc.thrift.TForecastReq; import org.apache.iotdb.ainode.rpc.thrift.TForecastResp; -import org.apache.iotdb.commons.client.IClientManager; -import org.apache.iotdb.commons.client.exception.ClientManagerException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.db.exception.ainode.AINodeConnectionException; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.protocol.client.an.AINodeClient; -import org.apache.iotdb.db.protocol.client.an.AINodeClientManager; -import org.apache.iotdb.db.queryengine.plan.relational.utils.ResultColumnAppender; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.utils.ResultColumnAppender; +import org.apache.iotdb.commons.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.rpc.TSStatusCode; import org.apache.iotdb.udf.api.exception.UDFException; import org.apache.iotdb.udf.api.relational.TableFunction; @@ -46,7 +42,6 @@ import org.apache.iotdb.udf.api.relational.table.specification.TableParameterSpecification; import org.apache.iotdb.udf.api.type.Type; -import org.apache.thrift.TException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; @@ -72,8 +67,8 @@ import java.util.Set; import java.util.stream.Collectors; +import static org.apache.iotdb.commons.queryengine.plan.relational.utils.ResultColumnAppender.createResultColumnAppender; import static org.apache.iotdb.commons.udf.builtin.relational.tvf.WindowTVFUtils.findColumnIndex; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.ResultColumnAppender.createResultColumnAppender; public class ClassifyTableFunction implements TableFunction { @@ -260,8 +255,6 @@ public TableFunctionDataProcessor getDataProcessor() { private static class ClassifyDataProcessor implements TableFunctionDataProcessor { private static final TsBlockSerde SERDE = new TsBlockSerde(); - private static final IClientManager CLIENT_MANAGER = - AINodeClientManager.getInstance(); private final String modelId; private final int maxInputLength; @@ -366,11 +359,10 @@ private TsBlock classify() { TsBlock inputData = inputTsBlockBuilder.build(); TForecastResp resp; - try (AINodeClient client = - CLIENT_MANAGER.borrowClient(AINodeClientManager.AINODE_ID_PLACEHOLDER)) { - resp = client.forecast(new TForecastReq(modelId, SERDE.serialize(inputData), outputLength)); - } catch (ClientManagerException | TException e) { - throw new AINodeConnectionException(e); + try { + resp = + TableUDFUtils.getTableFunctionAINodeService() + .forecast(new TForecastReq(modelId, SERDE.serialize(inputData), outputLength)); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/ForecastTableFunction.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/ForecastTableFunction.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/ForecastTableFunction.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/ForecastTableFunction.java index f406c16c08545..2465d9d1cf785 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/ForecastTableFunction.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/ForecastTableFunction.java @@ -17,18 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.tvf; +package org.apache.iotdb.commons.queryengine.plan.relational.function.tvf; import org.apache.iotdb.ainode.rpc.thrift.TForecastReq; import org.apache.iotdb.ainode.rpc.thrift.TForecastResp; -import org.apache.iotdb.commons.client.IClientManager; -import org.apache.iotdb.commons.client.exception.ClientManagerException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.db.exception.ainode.AINodeConnectionException; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.protocol.client.an.AINodeClient; -import org.apache.iotdb.db.protocol.client.an.AINodeClientManager; -import org.apache.iotdb.db.queryengine.plan.relational.utils.ResultColumnAppender; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.utils.ResultColumnAppender; +import org.apache.iotdb.commons.queryengine.plan.udf.TableUDFUtils; import org.apache.iotdb.rpc.TSStatusCode; import org.apache.iotdb.udf.api.relational.TableFunction; import org.apache.iotdb.udf.api.relational.access.Record; @@ -45,7 +41,6 @@ import org.apache.iotdb.udf.api.relational.table.specification.TableParameterSpecification; import org.apache.iotdb.udf.api.type.Type; -import org.apache.thrift.TException; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; import org.apache.tsfile.enums.TSDataType; @@ -71,10 +66,10 @@ import java.util.Set; import java.util.stream.Collectors; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.TableFunctionUtils.checkType; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.TableFunctionUtils.parseOptions; +import static org.apache.iotdb.commons.queryengine.plan.relational.utils.ResultColumnAppender.createResultColumnAppender; import static org.apache.iotdb.commons.udf.builtin.relational.tvf.WindowTVFUtils.findColumnIndex; -import static org.apache.iotdb.db.queryengine.plan.relational.function.tvf.TableFunctionUtils.checkType; -import static org.apache.iotdb.db.queryengine.plan.relational.function.tvf.TableFunctionUtils.parseOptions; -import static org.apache.iotdb.db.queryengine.plan.relational.utils.ResultColumnAppender.createResultColumnAppender; public class ForecastTableFunction implements TableFunction { @@ -359,8 +354,6 @@ public TableFunctionDataProcessor getDataProcessor() { protected static class ForecastDataProcessor implements TableFunctionDataProcessor { protected static final TsBlockSerde SERDE = new TsBlockSerde(); - protected static final IClientManager CLIENT_MANAGER = - AINodeClientManager.getInstance(); protected final String modelId; private final int maxInputLength; @@ -517,14 +510,12 @@ protected TsBlock forecast() { TsBlock inputData = inputTsBlockBuilder.build(); TForecastResp resp; - try (AINodeClient client = - CLIENT_MANAGER.borrowClient(AINodeClientManager.AINODE_ID_PLACEHOLDER)) { + try { resp = - client.forecast( - new TForecastReq(modelId, SERDE.serialize(inputData), outputLength) - .setOptions(options)); - } catch (ClientManagerException | TException e) { - throw new AINodeConnectionException(e); + TableUDFUtils.getTableFunctionAINodeService() + .forecast( + new TForecastReq(modelId, SERDE.serialize(inputData), outputLength) + .setOptions(options)); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/PatternMatchTableFunction.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/PatternMatchTableFunction.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/PatternMatchTableFunction.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/PatternMatchTableFunction.java index bc9ae1f57f9cc..3bf5ef16ad366 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/PatternMatchTableFunction.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/PatternMatchTableFunction.java @@ -17,13 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.tvf; +package org.apache.iotdb.commons.queryengine.plan.relational.function.tvf; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.QetchAlgorithm; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model.MatchState; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model.Point; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model.RegexMatchState; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model.Section; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.QetchAlgorithm; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model.MatchState; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model.Point; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model.RegexMatchState; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model.Section; import org.apache.iotdb.udf.api.exception.UDFException; import org.apache.iotdb.udf.api.relational.TableFunction; import org.apache.iotdb.udf.api.relational.access.Record; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/TableFunctionUtils.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/TableFunctionUtils.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/TableFunctionUtils.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/TableFunctionUtils.java index 499f133c437e3..1cd225d68b312 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/TableFunctionUtils.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/TableFunctionUtils.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.tvf; +package org.apache.iotdb.commons.queryengine.plan.relational.function.tvf; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.iotdb.udf.api.type.Type; import java.util.Collections; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/MatchConfig.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/MatchConfig.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/MatchConfig.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/MatchConfig.java index 64f32fa2e5e79..37d8116d1fcf3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/MatchConfig.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/MatchConfig.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match; +package org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match; public class MatchConfig { // if the gap between new two points is larger than this times gap before, the new point diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/QetchAlgorithm.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/QetchAlgorithm.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/QetchAlgorithm.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/QetchAlgorithm.java index c693ce968e724..8f290ee02d5fb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/QetchAlgorithm.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/QetchAlgorithm.java @@ -17,13 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match; +package org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model.MatchState; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model.PatternSegment; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model.Point; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model.RegexMatchState; -import org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model.Section; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model.MatchState; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model.PatternSegment; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model.Point; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model.RegexMatchState; +import org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model.Section; import java.util.ArrayDeque; import java.util.ArrayList; @@ -32,9 +32,9 @@ import java.util.List; import java.util.Queue; -import static org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.MatchConfig.GAP_TOLERANCE; -import static org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.MatchConfig.LINE_SECTION_TOLERANCE; -import static org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model.PatternSegment.tangent; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.MatchConfig.GAP_TOLERANCE; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.MatchConfig.LINE_SECTION_TOLERANCE; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model.PatternSegment.tangent; public class QetchAlgorithm { private int pointNum = -1; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/MatchState.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/MatchState.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/MatchState.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/MatchState.java index 4e3b0e1f8513c..593c64e119517 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/MatchState.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/MatchState.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model; +package org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model; import java.util.ArrayList; import java.util.List; -import static org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.MatchConfig.SHAPE_TOLERANCE; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.MatchConfig.SHAPE_TOLERANCE; public class MatchState { private double matchValue = 0.0; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/PatternSegment.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/PatternSegment.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/PatternSegment.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/PatternSegment.java index 5013dc58b9493..cff10d3ed8cfa 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/PatternSegment.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/PatternSegment.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model; +package org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model; import java.util.ArrayList; import java.util.List; -import static org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.MatchConfig.LINE_SECTION_TOLERANCE; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.MatchConfig.LINE_SECTION_TOLERANCE; public class PatternSegment { // variable area diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/Point.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/Point.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/Point.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/Point.java index 7445635c7e0cd..ee6b896b4313c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/Point.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/Point.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model; +package org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model; public class Point { public double x; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/RegexMatchState.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/RegexMatchState.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/RegexMatchState.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/RegexMatchState.java index ecc6d7661850a..3f698faf89ff2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/RegexMatchState.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/RegexMatchState.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model; +package org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model; import java.util.ArrayDeque; import java.util.ArrayList; @@ -25,8 +25,8 @@ import java.util.Iterator; import java.util.List; -import static org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.MatchConfig.CALC_SE_USING_MORE_MEMORY; -import static org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.MatchConfig.SHAPE_TOLERANCE; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.MatchConfig.CALC_SE_USING_MORE_MEMORY; +import static org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.MatchConfig.SHAPE_TOLERANCE; public class RegexMatchState { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/Section.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/Section.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/Section.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/Section.java index cb39f79da6b8c..bfd20b1e67fcc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/tvf/match/model/Section.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/function/tvf/match/model/Section.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.function.tvf.match.model; +package org.apache.iotdb.commons.queryengine.plan.relational.function.tvf.match.model; import java.util.ArrayList; import java.util.HashMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/ColumnMetadata.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/ColumnMetadata.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/ColumnMetadata.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/ColumnMetadata.java index b4c9ba13cb797..cd33806516378 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/ColumnMetadata.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/ColumnMetadata.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.metadata; +package org.apache.iotdb.commons.queryengine.plan.relational.metadata; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/ColumnSchema.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/ColumnSchema.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/ColumnSchema.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/ColumnSchema.java index be1a83e78668c..519fde8721356 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/ColumnSchema.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/ColumnSchema.java @@ -17,11 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.metadata; +package org.apache.iotdb.commons.queryengine.plan.relational.metadata; +import org.apache.iotdb.commons.queryengine.plan.relational.utils.TypeUtil; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; import org.apache.iotdb.commons.schema.table.column.TsTableColumnSchema; -import org.apache.iotdb.db.queryengine.plan.relational.utils.TypeUtil; import org.apache.tsfile.read.common.type.Type; import org.apache.tsfile.read.common.type.TypeFactory; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/FunctionNullability.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/FunctionNullability.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/FunctionNullability.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/FunctionNullability.java index 5d847e074f1f5..237b1cc73cef2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/FunctionNullability.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/FunctionNullability.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.metadata; +package org.apache.iotdb.commons.queryengine.plan.relational.metadata; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/ResolvedFunction.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/ResolvedFunction.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/ResolvedFunction.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/ResolvedFunction.java index e783a05fd0861..09a285a8b3537 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/ResolvedFunction.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/ResolvedFunction.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.metadata; +package org.apache.iotdb.commons.queryengine.plan.relational.metadata; -import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionId; -import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionKind; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.function.BoundSignature; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionId; +import org.apache.iotdb.commons.queryengine.plan.relational.function.FunctionKind; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableSchema.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/TableSchema.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableSchema.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/TableSchema.java index 1344586e42555..d7bfbcc19a2cf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableSchema.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/metadata/TableSchema.java @@ -17,12 +17,12 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.metadata; +package org.apache.iotdb.commons.queryengine.plan.relational.metadata; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.type.InternalTypeManager; import org.apache.iotdb.commons.schema.table.TsTable; import org.apache.iotdb.commons.schema.table.column.TsTableColumnCategory; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager; import org.apache.tsfile.enums.ColumnCategory; import org.apache.tsfile.enums.TSDataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/Assignments.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/Assignments.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/Assignments.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/Assignments.java index 04d2635b3dd70..5374566055511 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/Assignments.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/Assignments.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner; +package org.apache.iotdb.commons.queryengine.plan.relational.planner; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/DataOrganizationSpecification.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/DataOrganizationSpecification.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/DataOrganizationSpecification.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/DataOrganizationSpecification.java index 3aac5faebb503..54a7e537a447b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/DataOrganizationSpecification.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/DataOrganizationSpecification.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner; +package org.apache.iotdb.commons.queryengine.plan.relational.planner; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/OrderingScheme.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/OrderingScheme.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/OrderingScheme.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/OrderingScheme.java index 508408571bc45..95a4503ef85a8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/OrderingScheme.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/OrderingScheme.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner; +package org.apache.iotdb.commons.queryengine.plan.relational.planner; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SortOrder.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/SortOrder.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SortOrder.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/SortOrder.java index 173886794ccd8..1e9144903b128 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SortOrder.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/SortOrder.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner; +package org.apache.iotdb.commons.queryengine.plan.relational.planner; import static java.lang.String.format; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/Symbol.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/Symbol.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/Symbol.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/Symbol.java index eb90d8183e5a1..c96a7cd507207 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/Symbol.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/Symbol.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner; +package org.apache.iotdb.commons.queryengine.plan.relational.planner; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/GroupReference.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/iterative/GroupReference.java similarity index 77% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/GroupReference.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/iterative/GroupReference.java index e9b649036fe1c..3ce2dff69284e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/GroupReference.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/iterative/GroupReference.java @@ -17,12 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.iterative; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.iterative; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.ImmutableList; @@ -71,8 +72,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitGroupReference(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitGroupReference(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/AggregationNode.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/AggregationNode.java index 59bc3df472f4a..610e77ff97ed4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AggregationNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/AggregationNode.java @@ -17,21 +17,20 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; - -import org.apache.iotdb.db.queryengine.common.SessionInfo; -import org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; + +import org.apache.iotdb.commons.queryengine.plan.expression.multi.FunctionType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -218,8 +217,8 @@ public boolean hasOrderings() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitAggregation(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitAggregation(this, context); } @Override @@ -341,38 +340,6 @@ public boolean producesDistinctRows() { && outputs.containsAll(new HashSet<>(groupingSets.getGroupingKeys())); } - public boolean isDecomposable(SessionInfo session, Metadata metadata) { - boolean hasOrderBy = - getAggregations().values().stream() - .map(Aggregation::getOrderingScheme) - .anyMatch(Optional::isPresent); - - boolean hasDistinct = getAggregations().values().stream().anyMatch(Aggregation::isDistinct); - - /*boolean decomposableFunctions = getAggregations().values().stream() - .map(Aggregation::getResolvedFunction) - .map(resolvedFunction -> metadata.getAggregationFunctionMetadata(session, resolvedFunction)) - .allMatch(AggregationFunctionMetadata::isDecomposable);*/ - - return !hasOrderBy && !hasDistinct; - } - - public boolean hasSingleNodeExecutionPreference(SessionInfo session, Metadata metadata) { - // There are two kinds of aggregations the have single node execution preference: - // - // 1. aggregations with only empty grouping sets like - // - // SELECT count(*) FROM lineitem; - // - // there is no need for distributed aggregation. Single node FINAL aggregation will suffice, - // since all input have to be aggregated into one line output. - // - // 2. aggregations that must produce default output and are not decomposable, we cannot - // distribute them. - return (hasEmptyGroupingSet() && !hasNonEmptyGroupingSet()) - || (hasDefaultOutput() && !isDecomposable(session, metadata)); - } - public boolean isStreamable() { return !preGroupedSymbols.isEmpty() && groupingSets.getGroupingSetCount() == 1 @@ -603,7 +570,7 @@ public int hashCode() { return Objects.hash(resolvedFunction, arguments, distinct, filter, orderingScheme, mask); } - void verifyArguments(Step step) { + public void verifyArguments(Step step) { int expectedArgumentCount; if (step == Step.SINGLE || step == Step.PARTIAL) { expectedArgumentCount = resolvedFunction.getSignature().getArgumentTypes().size(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ApplyNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ApplyNode.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ApplyNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ApplyNode.java index 5a9c5817eaefa..17908dc4d6337 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ApplyNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ApplyNode.java @@ -17,14 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; import com.google.common.collect.ImmutableList; @@ -117,8 +118,8 @@ public List getOutputSymbols() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitApply(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitApply(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AssignUniqueId.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/AssignUniqueId.java similarity index 77% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AssignUniqueId.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/AssignUniqueId.java index 3528d8d364902..62452561bc3ac 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/AssignUniqueId.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/AssignUniqueId.java @@ -17,14 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -47,8 +48,8 @@ public AssignUniqueId(PlanNodeId id, PlanNode child, Symbol idColumn) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitAssignUniqueId(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitAssignUniqueId(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CollectNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/CollectNode.java similarity index 82% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CollectNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/CollectNode.java index 07887397b389c..63c9040f6d319 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CollectNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/CollectNode.java @@ -17,14 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.base.Objects; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -56,8 +57,8 @@ public CollectNode(PlanNodeId id, List children, List outputSy } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitCollect(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitCollect(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CorrelatedJoinNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/CorrelatedJoinNode.java similarity index 83% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CorrelatedJoinNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/CorrelatedJoinNode.java index bbee7e5d68fe3..3f76a779833f7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/CorrelatedJoinNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/CorrelatedJoinNode.java @@ -17,16 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; - -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; + +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; import com.google.common.collect.ImmutableList; @@ -138,8 +139,8 @@ public PlanNode replaceChildren(List newChildren) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitCorrelatedJoin(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitCorrelatedJoin(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/EnforceSingleRowNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/EnforceSingleRowNode.java similarity index 73% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/EnforceSingleRowNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/EnforceSingleRowNode.java index 734f6c1a2323b..6447eebf32e1f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/EnforceSingleRowNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/EnforceSingleRowNode.java @@ -17,14 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.Iterables; @@ -49,8 +50,8 @@ public PlanNode getSource() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitEnforceSingleRow(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitEnforceSingleRow(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ExceptNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ExceptNode.java similarity index 81% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ExceptNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ExceptNode.java index 9eb1df4769688..268576e53e4ec 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ExceptNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ExceptNode.java @@ -17,12 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.ListMultimap; @@ -56,8 +57,8 @@ private ExceptNode( } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitExcept(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitExcept(this, context); } public boolean isDistinct() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/FillNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/FillNode.java similarity index 62% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/FillNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/FillNode.java index ac5b578373ba7..7076f1565cd3e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/FillNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/FillNode.java @@ -17,13 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import java.util.List; @@ -34,8 +35,8 @@ protected FillNode(PlanNodeId id, PlanNode child) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitFill(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitFill(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/FilterNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/FilterNode.java similarity index 77% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/FilterNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/FilterNode.java index 812979ed239bb..3374f7826a7d1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/FilterNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/FilterNode.java @@ -17,15 +17,16 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import com.google.common.base.Objects; import com.google.common.collect.Iterables; @@ -44,8 +45,8 @@ public FilterNode(PlanNodeId id, PlanNode child, Expression predicate) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitFilter(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitFilter(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/GapFillNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/GapFillNode.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/GapFillNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/GapFillNode.java index 26cd2252b0200..1bc77eff2ad20 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/GapFillNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/GapFillNode.java @@ -17,14 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.Iterables; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -100,8 +101,8 @@ public long getNonMonthDuration() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitGapFill(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitGapFill(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/GroupNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/GroupNode.java similarity index 82% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/GroupNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/GroupNode.java index 83b034ac7bf91..a607b99070c34 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/GroupNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/GroupNode.java @@ -17,13 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; import com.google.common.collect.Iterables; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -67,8 +68,8 @@ public int getPartitionKeyCount() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitGroup(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitGroup(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/IntersectNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/IntersectNode.java similarity index 81% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/IntersectNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/IntersectNode.java index 3f7a086497180..f3e67f82eddf5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/IntersectNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/IntersectNode.java @@ -17,12 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.ListMultimap; @@ -55,8 +56,8 @@ private IntersectNode( } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitIntersect(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitIntersect(this, context); } public boolean isDistinct() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/JoinNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/JoinNode.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/JoinNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/JoinNode.java index 5e6cc5818acc1..8fb6aa44b5e3e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/JoinNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/JoinNode.java @@ -17,17 +17,18 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; - -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; + +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -45,8 +46,8 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.EquiJoinClause.flipBatch; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.EquiJoinClause.flipBatch; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.JoinNode.JoinType.INNER; public class JoinNode extends TwoChildProcessNode { @@ -174,8 +175,8 @@ public JoinNode flip() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitJoin(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitJoin(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/LimitNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/LimitNode.java similarity index 79% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/LimitNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/LimitNode.java index 70f1eb4921bef..1f8991a32971d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/LimitNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/LimitNode.java @@ -17,15 +17,16 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.base.Objects; import com.google.common.collect.Iterables; @@ -71,8 +72,8 @@ public PlanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitLimit(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitLimit(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/LinearFillNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/LinearFillNode.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/LinearFillNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/LinearFillNode.java index 87824a63e3cb0..9a2434ef51c87 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/LinearFillNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/LinearFillNode.java @@ -17,13 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.Iterables; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -64,8 +65,8 @@ public PlanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitLinearFill(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitLinearFill(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MarkDistinctNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/MarkDistinctNode.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MarkDistinctNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/MarkDistinctNode.java index e8d13ae3a1680..541b50a2a38c4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MarkDistinctNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/MarkDistinctNode.java @@ -17,14 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -97,8 +98,8 @@ public Optional getHashSymbol() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitMarkDistinct(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitMarkDistinct(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Measure.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/Measure.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Measure.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/Measure.java index 273f7e829026e..9a39d6c8b67d3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/Measure.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/Measure.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; -import org.apache.iotdb.db.queryengine.plan.relational.utils.TypeUtil; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; +import org.apache.iotdb.commons.queryengine.plan.relational.utils.TypeUtil; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MergeSortNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/MergeSortNode.java similarity index 82% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MergeSortNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/MergeSortNode.java index 7fb3fe3667867..bc293ee36c3f5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/MergeSortNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/MergeSortNode.java @@ -16,15 +16,16 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.base.Objects; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -64,8 +65,8 @@ public PlanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitMergeSort(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitMergeSort(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OffsetNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/OffsetNode.java similarity index 78% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OffsetNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/OffsetNode.java index 90cf1541e58d0..3b982191a7e07 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OffsetNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/OffsetNode.java @@ -17,14 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.base.Objects; import com.google.common.collect.Iterables; @@ -54,8 +55,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitOffset(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitOffset(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OutputNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/OutputNode.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OutputNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/OutputNode.java index d9d166e711696..40deff74e10ae 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/OutputNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/OutputNode.java @@ -17,14 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.base.Objects; import com.google.common.collect.ImmutableList; @@ -68,8 +69,8 @@ public OutputNode(PlanNodeId id, List columnNames, List outputSy } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitOutput(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitOutput(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/PatternRecognitionNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/PatternRecognitionNode.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/PatternRecognitionNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/PatternRecognitionNode.java index 45650fec203c3..8c6a3c8b5430a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/PatternRecognitionNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/PatternRecognitionNode.java @@ -17,18 +17,19 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; - -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrLabel; -import org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrRowPattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; + +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.ExpressionAndValuePointers; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrLabel; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrRowPattern; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -46,7 +47,7 @@ import java.util.Set; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.node.RowsPerMatch.ONE; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.node.RowsPerMatch.ONE; public class PatternRecognitionNode extends SingleChildProcessNode { private final List partitionBy; @@ -139,8 +140,8 @@ public Map getVariableDefinitions() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitPatternRecognition(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitPatternRecognition(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/PreviousFillNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/PreviousFillNode.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/PreviousFillNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/PreviousFillNode.java index db43f070cfff2..36b66835d2d08 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/PreviousFillNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/PreviousFillNode.java @@ -17,13 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.Iterables; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -77,8 +78,8 @@ public PlanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitPreviousFill(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitPreviousFill(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ProjectNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ProjectNode.java similarity index 79% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ProjectNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ProjectNode.java index b6ad4dc751a82..d31a9bfee71dc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ProjectNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ProjectNode.java @@ -17,16 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; - -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Assignments; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; + +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Assignments; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import com.google.common.base.Objects; import com.google.common.collect.Iterables; @@ -47,8 +48,8 @@ public ProjectNode(PlanNodeId id, PlanNode child, Assignments assignments) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitProject(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitProject(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/RowNumberNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/RowNumberNode.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/RowNumberNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/RowNumberNode.java index af5a95a2f2de9..a32ff34936d92 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/RowNumberNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/RowNumberNode.java @@ -17,14 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.base.Objects; import com.google.common.collect.ImmutableList; @@ -99,8 +100,8 @@ public PlanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitRowNumber(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitRowNumber(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/RowsPerMatch.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/RowsPerMatch.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/RowsPerMatch.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/RowsPerMatch.java index aa92f1d665dce..cdf1dab89590c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/RowsPerMatch.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/RowsPerMatch.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SemiJoinNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/SemiJoinNode.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SemiJoinNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/SemiJoinNode.java index bb8b85752d59e..a0af86af7e889 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SemiJoinNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/SemiJoinNode.java @@ -17,14 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.TwoChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.ImmutableList; @@ -97,8 +98,8 @@ public List getOutputSymbols() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSemiJoin(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitSemiJoin(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SetOperationNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/SetOperationNode.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SetOperationNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/SetOperationNode.java index 6f399c1bedcc6..34a0b13144f20 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SetOperationNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/SetOperationNode.java @@ -17,13 +17,13 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; import com.google.common.base.Function; import com.google.common.collect.FluentIterable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SkipToPosition.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/SkipToPosition.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SkipToPosition.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/SkipToPosition.java index cf610f66f344e..c185a220807e5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SkipToPosition.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/SkipToPosition.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SortNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/SortNode.java similarity index 80% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SortNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/SortNode.java index 1cfa62e71c776..50fcedb312f0c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/SortNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/SortNode.java @@ -17,15 +17,16 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.base.Objects; import com.google.common.collect.Iterables; @@ -65,8 +66,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitSort(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitSort(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/StreamSortNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/StreamSortNode.java similarity index 83% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/StreamSortNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/StreamSortNode.java index 1a60acf236c68..05591c43848ad 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/StreamSortNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/StreamSortNode.java @@ -17,13 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; import com.google.common.base.Objects; import com.google.common.collect.Iterables; @@ -67,8 +68,8 @@ public PlanNode replaceChildren(List newChildren) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitStreamSort(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitStreamSort(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/TableFunctionNode.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/TableFunctionNode.java index a4db3d68d2ff1..223a5ea4d67d8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/TableFunctionNode.java @@ -17,16 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; - -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; + +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.function.TableFunctionFactory; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.udf.api.relational.table.TableFunctionHandle; import com.google.common.collect.ImmutableList; @@ -197,7 +198,7 @@ public static TableFunctionNode deserialize(ByteBuffer byteBuffer) { int size = ReadWriteIOUtils.readInt(byteBuffer); byte[] bytes = ReadWriteIOUtils.readBytes(byteBuffer, size); TableFunctionHandle tableFunctionHandle = - new TableMetadataImpl().getTableFunction(name).createTableFunctionHandle(); + TableFunctionFactory.getTableFunction(name).createTableFunctionHandle(); tableFunctionHandle.deserialize(bytes); size = ReadWriteIOUtils.readInt(byteBuffer); ImmutableList.Builder properOutputs = ImmutableList.builder(); @@ -242,8 +243,8 @@ public static TableFunctionNode deserialize(ByteBuffer byteBuffer) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitTableFunction(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitTableFunction(this, context); } public static class TableArgumentProperties { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionProcessorNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/TableFunctionProcessorNode.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionProcessorNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/TableFunctionProcessorNode.java index 2ffb128b66be7..a6bb8c44e5f22 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionProcessorNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/TableFunctionProcessorNode.java @@ -17,16 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; - -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; + +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.function.TableFunctionFactory; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import org.apache.iotdb.udf.api.relational.table.TableFunctionHandle; import com.google.common.collect.ImmutableList; @@ -182,8 +183,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitTableFunctionProcessor(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitTableFunctionProcessor(this, context); } @Override @@ -259,7 +260,7 @@ public static TableFunctionProcessorNode deserialize(ByteBuffer byteBuffer) { size = ReadWriteIOUtils.readInt(byteBuffer); byte[] bytes = ReadWriteIOUtils.readBytes(byteBuffer, size); TableFunctionHandle tableFunctionHandle = - new TableMetadataImpl().getTableFunction(name).createTableFunctionHandle(); + TableFunctionFactory.getTableFunction(name).createTableFunctionHandle(); tableFunctionHandle.deserialize(bytes); boolean requireRecordSnapshot = ReadWriteIOUtils.readBoolean(byteBuffer); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TopKNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/TopKNode.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TopKNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/TopKNode.java index 20d17cf3c0cc6..843b1296865db 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TopKNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/TopKNode.java @@ -17,15 +17,16 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.base.Objects; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -81,8 +82,8 @@ public PlanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitTopK(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitTopK(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TopKRankingNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/TopKRankingNode.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TopKRankingNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/TopKRankingNode.java index fedb7e1f2e172..36f775713fc0d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TopKRankingNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/TopKRankingNode.java @@ -17,15 +17,16 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.base.Objects; import com.google.common.collect.ImmutableList; @@ -95,8 +96,8 @@ public PlanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitTopKRanking(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitTopKRanking(this, context); } public DataOrganizationSpecification getSpecification() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/UnionNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/UnionNode.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/UnionNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/UnionNode.java index 4332542374c5d..28446f7e6a02d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/UnionNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/UnionNode.java @@ -17,13 +17,14 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import com.google.common.collect.ImmutableListMultimap; import com.google.common.collect.ListMultimap; @@ -60,8 +61,8 @@ public List getOutputColumnNames() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitUnion(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitUnion(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ValueFillNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ValueFillNode.java similarity index 77% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ValueFillNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ValueFillNode.java index 0f987322e7994..5fe3164fd9b4e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ValueFillNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ValueFillNode.java @@ -17,14 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; import com.google.common.collect.Iterables; @@ -52,8 +53,8 @@ public PlanNode clone() { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitValueFill(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitValueFill(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ValuesNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ValuesNode.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ValuesNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ValuesNode.java index cb5c28ea02aaf..473282d41f0b9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/ValuesNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/ValuesNode.java @@ -17,17 +17,18 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SourceNode; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.source.SourceNode; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -115,8 +116,8 @@ public ValuesNode( } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitValuesNode(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitValuesNode(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/WindowNode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/WindowNode.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/WindowNode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/WindowNode.java index 02a77920c3056..0fed9c83f640b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/WindowNode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/node/WindowNode.java @@ -17,20 +17,21 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.node; - -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeType; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanVisitor; -import org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.planner.DataOrganizationSpecification; -import org.apache.iotdb.db.queryengine.plan.relational.planner.OrderingScheme; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.node; + +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.ICoreQueryPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.IPlanVisitor; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNode; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeId; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.PlanNodeType; +import org.apache.iotdb.commons.queryengine.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.DataOrganizationSpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.OrderingScheme; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -54,9 +55,9 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.Iterables.concat; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound.Type.CURRENT_ROW; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound.Type.UNBOUNDED_PRECEDING; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame.Type.RANGE; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound.Type.CURRENT_ROW; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound.Type.UNBOUNDED_PRECEDING; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame.Type.RANGE; public class WindowNode extends SingleChildProcessNode { private final Set prePartitionedInputs; @@ -153,8 +154,8 @@ public PlanNode replaceChildren(List newChildren) { } @Override - public R accept(PlanVisitor visitor, C context) { - return visitor.visitWindowFunction(this, context); + public R accept(IPlanVisitor visitor, C context) { + return ((ICoreQueryPlanVisitor) visitor).visitWindowFunction(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/AggregationLabelSet.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/AggregationLabelSet.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/AggregationLabelSet.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/AggregationLabelSet.java index f002f3d0c1af0..3dd30d2eb1b71 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/AggregationLabelSet.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/AggregationLabelSet.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import java.io.DataOutputStream; import java.io.IOException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/AggregationValuePointer.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/AggregationValuePointer.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/AggregationValuePointer.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/AggregationValuePointer.java index 3636e2673db14..be45e067304bb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/AggregationValuePointer.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/AggregationValuePointer.java @@ -17,23 +17,20 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.planner.SymbolsExtractor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.ResolvedFunction; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import java.io.DataOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import java.util.Objects; import java.util.Optional; -import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; public final class AggregationValuePointer implements ValuePointer { @@ -76,17 +73,6 @@ public Optional getMatchNumberSymbol() { return matchNumberSymbol; } - public List getInputSymbols() { - return arguments.stream() - .map(SymbolsExtractor::extractAll) - .flatMap(Collection::stream) - .filter( - symbol -> - (!classifierSymbol.isPresent() || !classifierSymbol.get().equals(symbol)) - && (!matchNumberSymbol.isPresent() || !matchNumberSymbol.get().equals(symbol))) - .collect(toImmutableList()); - } - @Override public boolean equals(Object obj) { if (this == obj) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ClassifierValuePointer.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/ClassifierValuePointer.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ClassifierValuePointer.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/ClassifierValuePointer.java index a06d3b32f4f11..771fcc92ceb6a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ClassifierValuePointer.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/ClassifierValuePointer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import java.io.DataOutputStream; import java.io.IOException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ExpressionAndValuePointers.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/ExpressionAndValuePointers.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ExpressionAndValuePointers.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/ExpressionAndValuePointers.java index 288fae8fca360..d72d37fffe5e8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ExpressionAndValuePointers.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/ExpressionAndValuePointers.java @@ -17,10 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -35,7 +35,7 @@ import static com.google.common.collect.ImmutableSet.toImmutableSet; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral.TRUE_LITERAL; public class ExpressionAndValuePointers { public static final ExpressionAndValuePointers TRUE = diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrAlternation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrAlternation.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrAlternation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrAlternation.java index f698b923f2a52..17e38f05add89 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrAlternation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrAlternation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrAnchor.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrAnchor.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrAnchor.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrAnchor.java index 5c6651523582b..bca1237e38984 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrAnchor.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrAnchor.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -27,7 +27,7 @@ import java.util.Objects; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrAnchor.Type.PARTITION_START; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrAnchor.Type.PARTITION_START; public class IrAnchor extends IrRowPattern { public enum Type { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrConcatenation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrConcatenation.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrConcatenation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrConcatenation.java index e846ce2a540f5..f698f67840f93 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrConcatenation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrConcatenation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrEmpty.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrEmpty.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrEmpty.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrEmpty.java index ba1c4143c29ed..4a4b69d289b8e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrEmpty.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrEmpty.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import java.io.DataOutputStream; import java.io.IOException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrExclusion.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrExclusion.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrExclusion.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrExclusion.java index abd784d147bea..c9618e8f3c1cd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrExclusion.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrExclusion.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import java.io.DataOutputStream; import java.io.IOException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrLabel.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrLabel.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrLabel.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrLabel.java index 35fb1b10a454f..e2bb562b1bff5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrLabel.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrLabel.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrPatternAlternationOptimizer.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrPatternAlternationOptimizer.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrPatternAlternationOptimizer.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrPatternAlternationOptimizer.java index ccb4e9a89f3eb..2080898706486 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrPatternAlternationOptimizer.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrPatternAlternationOptimizer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import com.google.common.collect.ImmutableList; @@ -25,7 +25,7 @@ import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableList.toImmutableList; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrOne; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrOne; /** * Remove empty pattern from pattern alternation and replace it with quantification of a diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrPermutation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrPermutation.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrPermutation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrPermutation.java index 5367f9dd026a8..3cf5b89ac9b5f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrPermutation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrPermutation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrQuantified.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrQuantified.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrQuantified.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrQuantified.java index 6031bf6430250..2a1f860e6fbd2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrQuantified.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrQuantified.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import java.io.DataOutputStream; import java.io.IOException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrQuantifier.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrQuantifier.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrQuantifier.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrQuantifier.java index 709e23e772279..7201d37f15089 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrQuantifier.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrQuantifier.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPattern.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrRowPattern.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPattern.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrRowPattern.java index 35a6597c52f98..76e39ac15049f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPattern.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrRowPattern.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.utils.ReadWriteIOUtils; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPatternFlattener.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrRowPatternFlattener.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPatternFlattener.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrRowPatternFlattener.java index 98f7c1c88525e..21c049d59d6e7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPatternFlattener.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrRowPatternFlattener.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import java.util.List; import java.util.Optional; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPatternVisitor.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrRowPatternVisitor.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPatternVisitor.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrRowPatternVisitor.java index 4e2ec9b830c88..d435eb9914ea7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/IrRowPatternVisitor.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/IrRowPatternVisitor.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import javax.annotation.Nullable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/LogicalIndexPointer.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/LogicalIndexPointer.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/LogicalIndexPointer.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/LogicalIndexPointer.java index 7660f00492dce..ae3ff2864ad2c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/LogicalIndexPointer.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/LogicalIndexPointer.java @@ -17,9 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; - -import org.apache.iotdb.db.queryengine.execution.operator.process.rowpattern.LogicalIndexNavigation; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -27,12 +25,10 @@ import java.io.IOException; import java.nio.ByteBuffer; import java.util.HashSet; -import java.util.Map; import java.util.Objects; import java.util.Set; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.collect.ImmutableSet.toImmutableSet; import static java.util.Objects.requireNonNull; public class LogicalIndexPointer { @@ -90,15 +86,6 @@ public int getPhysicalOffset() { return physicalOffset; } - public LogicalIndexNavigation toLogicalIndexNavigation(Map mapping) { - return new LogicalIndexNavigation( - labels.stream().map(mapping::get).collect(toImmutableSet()), - last, - running, - logicalOffset, - physicalOffset); - } - @Override public boolean equals(Object o) { if (this == o) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/MatchNumberValuePointer.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/MatchNumberValuePointer.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/MatchNumberValuePointer.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/MatchNumberValuePointer.java index d75dc9e5133a9..dce06d3f300f4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/MatchNumberValuePointer.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/MatchNumberValuePointer.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import java.io.DataOutputStream; import java.io.IOException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/Patterns.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/Patterns.java similarity index 78% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/Patterns.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/Patterns.java index e46f918c2f8b5..e362922e54623 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/Patterns.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/Patterns.java @@ -17,17 +17,17 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; import com.google.common.collect.ImmutableList; import java.util.Optional; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrAnchor.Type.PARTITION_END; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrAnchor.Type.PARTITION_START; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.oneOrMore; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrMore; -import static org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrOne; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrAnchor.Type.PARTITION_END; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrAnchor.Type.PARTITION_START; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrQuantifier.oneOrMore; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrMore; +import static org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern.IrQuantifier.zeroOrOne; public class Patterns { private Patterns() {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ScalarValuePointer.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/ScalarValuePointer.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ScalarValuePointer.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/ScalarValuePointer.java index 5957242d97d7d..0a5895076c608 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ScalarValuePointer.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/ScalarValuePointer.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; -import org.apache.iotdb.db.queryengine.plan.relational.planner.Symbol; +import org.apache.iotdb.commons.queryengine.plan.relational.planner.Symbol; import java.io.DataOutputStream; import java.io.IOException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ValuePointer.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/ValuePointer.java similarity index 88% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ValuePointer.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/ValuePointer.java index 1b73e62a7246d..2d4db45203f57 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/rowpattern/ValuePointer.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/planner/rowpattern/ValuePointer.java @@ -12,6 +12,6 @@ * limitations under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.planner.rowpattern; +package org.apache.iotdb.commons.queryengine.plan.relational.planner.rowpattern; public interface ValuePointer {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/security/Identity.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/security/Identity.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/security/Identity.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/security/Identity.java index 1f9d13716dfaa..b71cec02f77f5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/security/Identity.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/security/Identity.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.security; +package org.apache.iotdb.commons.queryengine.plan.relational.security; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AliasedRelation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AliasedRelation.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AliasedRelation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AliasedRelation.java index ce9eff075b765..c92ff448b2330 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AliasedRelation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AliasedRelation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -64,8 +64,8 @@ public List getColumnNames() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitAliasedRelation(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitAliasedRelation(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AllColumns.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AllColumns.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AllColumns.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AllColumns.java index fd32acce6c7db..92988b29feb31 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AllColumns.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AllColumns.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; @@ -78,8 +78,8 @@ public Optional getTarget() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitAllColumns(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitAllColumns(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AllRows.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AllRows.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AllRows.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AllRows.java index f8cc6454c5b2a..fc194277672cd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AllRows.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AllRows.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -40,8 +40,8 @@ public AllRows(@Nonnull NodeLocation location) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitAllRows(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitAllRows(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AnchorPattern.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AnchorPattern.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AnchorPattern.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AnchorPattern.java index 9063ed7e0ee68..c7de79fea9fd0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AnchorPattern.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AnchorPattern.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -49,8 +49,8 @@ public Type getType() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitAnchorPattern(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitAnchorPattern(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ArithmeticBinaryExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ArithmeticBinaryExpression.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ArithmeticBinaryExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ArithmeticBinaryExpression.java index 69fb130b705a6..1d38eb44261d3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ArithmeticBinaryExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ArithmeticBinaryExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -106,8 +106,8 @@ public Expression getRight() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitArithmeticBinary(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitArithmeticBinary(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ArithmeticUnaryExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ArithmeticUnaryExpression.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ArithmeticUnaryExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ArithmeticUnaryExpression.java index 4b3e0f9a77fa9..8b2ed3ec77d58 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ArithmeticUnaryExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ArithmeticUnaryExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -110,8 +110,8 @@ public Sign getSign() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitArithmeticUnary(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitArithmeticUnary(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AstMemoryEstimationHelper.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AstMemoryEstimationHelper.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AstMemoryEstimationHelper.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AstMemoryEstimationHelper.java index 65f4aa413f9ea..7c39b6bb289fc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/AstMemoryEstimationHelper.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/AstMemoryEstimationHelper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.Accountable; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/BetweenPredicate.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/BetweenPredicate.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/BetweenPredicate.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/BetweenPredicate.java index a421e65630d6f..d301b7f842b6e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/BetweenPredicate.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/BetweenPredicate.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -77,8 +77,8 @@ public Expression getMax() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitBetweenPredicate(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitBetweenPredicate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/BinaryLiteral.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/BinaryLiteral.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/BinaryLiteral.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/BinaryLiteral.java index d5baa741c7bef..c24361269630e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/BinaryLiteral.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/BinaryLiteral.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.ParsingException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.ParsingException; import com.google.common.base.CharMatcher; import com.google.common.io.BaseEncoding; @@ -88,8 +88,8 @@ public byte[] getValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitBinaryLiteral(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitBinaryLiteral(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/BooleanLiteral.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/BooleanLiteral.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/BooleanLiteral.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/BooleanLiteral.java index 42f62559a7286..4ba420bee0b66 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/BooleanLiteral.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/BooleanLiteral.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.RamUsageEstimator; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -64,8 +64,8 @@ public boolean getValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitBooleanLiteral(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitBooleanLiteral(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Cast.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Cast.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Cast.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Cast.java index 1b240db6d865b..6b7d15dfc0e21 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Cast.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Cast.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -100,8 +100,8 @@ public boolean isTypeOnly() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitCast(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitCast(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CoalesceExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CoalesceExpression.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CoalesceExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CoalesceExpression.java index 05fccd1c01cda..e6dff6dca5912 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CoalesceExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CoalesceExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -67,8 +67,8 @@ public List getOperands() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitCoalesceExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitCoalesceExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Columns.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Columns.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Columns.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Columns.java index 6fc00368fe3ef..2ececfd8d19c2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Columns.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Columns.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -50,8 +50,8 @@ public boolean isColumnsAsterisk() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitColumns(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitColumns(this, context); } @Override diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CommonQueryAstVisitor.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CommonQueryAstVisitor.java new file mode 100644 index 0000000000000..8ccdeb9a8457c --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CommonQueryAstVisitor.java @@ -0,0 +1,471 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; + +import org.apache.iotdb.commons.exception.SemanticException; + +import javax.annotation.Nullable; + +public interface CommonQueryAstVisitor extends IAstVisitor { + + default R process(Node node) { + return process(node, null); + } + + default R process(Node node, @Nullable C context) { + return node.accept(this, context); + } + + default R visitNode(Node node, C context) { + return null; + } + + default R visitStatement(Statement node, C context) { + return visitNode(node, context); + } + + default R visitQuery(Query node, C context) { + return visitStatement(node, context); + } + + default R visitExpression(Expression node, C context) { + return visitNode(node, context); + } + + default R visitArithmeticBinary(ArithmeticBinaryExpression node, C context) { + return visitExpression(node, context); + } + + default R visitArithmeticUnary(ArithmeticUnaryExpression node, C context) { + return visitExpression(node, context); + } + + default R visitBetweenPredicate(BetweenPredicate node, C context) { + return visitExpression(node, context); + } + + default R visitCast(Cast node, C context) { + return visitExpression(node, context); + } + + default R visitExtract(Extract node, C context) { + return visitExpression(node, context); + } + + default R visitBooleanLiteral(BooleanLiteral node, C context) { + return visitLiteral(node, context); + } + + default R visitLiteral(Literal node, C context) { + return visitExpression(node, context); + } + + default R visitBinaryLiteral(BinaryLiteral node, C context) { + return visitLiteral(node, context); + } + + default R visitStringLiteral(StringLiteral node, C context) { + return visitLiteral(node, context); + } + + default R visitLongLiteral(LongLiteral node, C context) { + return visitLiteral(node, context); + } + + default R visitDoubleLiteral(DoubleLiteral node, C context) { + return visitLiteral(node, context); + } + + default R visitFloatLiteral(FloatLiteral node, C context) { + return visitLiteral(node, context); + } + + default R visitTimeDurationLiteral(TimeDurationLiteral node, C context) { + return visitLiteral(node, context); + } + + default R visitDecimalLiteral(DecimalLiteral node, C context) { + return visitLiteral(node, context); + } + + default R visitGenericLiteral(GenericLiteral node, C context) { + return visitLiteral(node, context); + } + + default R visitNullLiteral(NullLiteral node, C context) { + return visitLiteral(node, context); + } + + default R visitCurrentDatabase(CurrentDatabase node, C context) { + return visitExpression(node, context); + } + + default R visitCurrentTime(CurrentTime node, C context) { + return visitExpression(node, context); + } + + default R visitCurrentUser(CurrentUser node, C context) { + return visitExpression(node, context); + } + + default R visitComparisonExpression(ComparisonExpression node, C context) { + return visitExpression(node, context); + } + + default R visitCoalesceExpression(CoalesceExpression node, C context) { + return visitExpression(node, context); + } + + default R visitInPredicate(InPredicate node, C context) { + return visitExpression(node, context); + } + + default R visitNotExpression(NotExpression node, C context) { + return visitExpression(node, context); + } + + default R visitLikePredicate(LikePredicate node, C context) { + return visitExpression(node, context); + } + + default R visitIsNotNullPredicate(IsNotNullPredicate node, C context) { + return visitExpression(node, context); + } + + default R visitIsNullPredicate(IsNullPredicate node, C context) { + return visitExpression(node, context); + } + + default R visitLogicalExpression(LogicalExpression node, C context) { + return visitExpression(node, context); + } + + default R visitSymbolReference(SymbolReference node, C context) { + return visitExpression(node, context); + } + + default R visitSimpleCaseExpression(SimpleCaseExpression node, C context) { + return visitExpression(node, context); + } + + default R visitSearchedCaseExpression(SearchedCaseExpression node, C context) { + return visitExpression(node, context); + } + + default R visitFunctionCall(FunctionCall node, C context) { + return visitExpression(node, context); + } + + default R visitTrim(Trim node, C context) { + return visitExpression(node, context); + } + + default R visitIfExpression(IfExpression node, C context) { + return visitExpression(node, context); + } + + default R visitNullIfExpression(NullIfExpression node, C context) { + return visitExpression(node, context); + } + + default R visitDataType(DataType node, C context) { + return visitExpression(node, context); + } + + default R visitGenericDataType(GenericDataType node, C context) { + return visitDataType(node, context); + } + + default R visitFrameBound(FrameBound node, C context) { + return visitNode(node, context); + } + + default R visitWindowFrame(WindowFrame node, C context) { + return visitNode(node, context); + } + + default R visitRow(Row node, C context) { + return visitExpression(node, context); + } + + default R visitIdentifier(Identifier node, C context) { + return visitExpression(node, context); + } + + default R visitDataTypeParameter(DataTypeParameter node, C context) { + return visitNode(node, context); + } + + default R visitNumericTypeParameter(NumericParameter node, C context) { + return visitDataTypeParameter(node, context); + } + + default R visitInListExpression(InListExpression node, C context) { + return visitExpression(node, context); + } + + default R visitWhenClause(WhenClause node, C context) { + return visitExpression(node, context); + } + + default R visitFieldReference(FieldReference node, C context) { + return visitExpression(node, context); + } + + default R visitGroupingElement(GroupingElement node, C context) { + return visitNode(node, context); + } + + default R visitGroupingSets(GroupingSets node, C context) { + return visitGroupingElement(node, context); + } + + default R visitDereferenceExpression(DereferenceExpression node, C context) { + return visitExpression(node, context); + } + + default R visitExists(ExistsPredicate node, C context) { + return visitExpression(node, context); + } + + default R visitColumns(Columns node, C context) { + return visitExpression(node, context); + } + + default R visitAllRows(AllRows node, C context) { + return visitExpression(node, context); + } + + default R visitAllColumns(AllColumns node, C context) { + return visitSelectItem(node, context); + } + + default R visitSelectItem(SelectItem node, C context) { + return visitNode(node, context); + } + + default R visitOrderBy(OrderBy node, C context) { + return visitNode(node, context); + } + + default R visitParameter(Parameter node, C context) { + return visitExpression(node, context); + } + + default R visitGroupBy(GroupBy node, C context) { + return visitNode(node, context); + } + + default R visitSimpleGroupBy(SimpleGroupBy node, C context) { + return visitGroupingElement(node, context); + } + + default R visitQuantifiedComparisonExpression(QuantifiedComparisonExpression node, C context) { + return visitExpression(node, context); + } + + default R visitSubqueryExpression(SubqueryExpression node, C context) { + throw new SemanticException("Only TableSubquery is supported now"); + } + + default R visitSortItem(SortItem node, C context) { + return visitNode(node, context); + } + + default R visitWindowReference(WindowReference node, C context) { + return visitNode(node, context); + } + + default R visitWindowSpecification(WindowSpecification node, C context) { + return visitNode(node, context); + } + + default R visitTypeParameter(TypeParameter node, C context) { + return visitDataTypeParameter(node, context); + } + + default R visitValues(Values node, C context) { + return visitQueryBody(node, context); + } + + default R visitQueryBody(QueryBody node, C context) { + return visitRelation(node, context); + } + + default R visitTableSubquery(TableSubquery node, C context) { + return visitQueryBody(node, context); + } + + default R visitRelation(Relation node, C context) { + return visitNode(node, context); + } + + default R visitAliasedRelation(AliasedRelation node, C context) { + return visitRelation(node, context); + } + + default R visitJoin(Join node, C context) { + return visitRelation(node, context); + } + + default R visitSingleColumn(SingleColumn node, C context) { + return visitSelectItem(node, context); + } + + default R visitProcessingMode(ProcessingMode node, C context) { + return visitNode(node, context); + } + + default R visitWithQuery(WithQuery node, C context) { + return visitNode(node, context); + } + + default R visitWith(With node, C context) { + return visitNode(node, context); + } + + default R visitFill(Fill node, C context) { + return visitNode(node, context); + } + + default R visitOffset(Offset node, C context) { + return visitNode(node, context); + } + + default R visitLimit(Limit node, C context) { + return visitNode(node, context); + } + + default R visitSelect(Select node, C context) { + return visitNode(node, context); + } + + default R visitTable(Table node, C context) { + return visitQueryBody(node, context); + } + + default R visitQuerySpecification(QuerySpecification node, C context) { + return visitQueryBody(node, context); + } + + default R visitWindowDefinition(WindowDefinition node, C context) { + return visitNode(node, context); + } + + default R visitSetOperation(SetOperation node, C context) { + return visitQueryBody(node, context); + } + + default R visitUnion(Union node, C context) { + return visitSetOperation(node, context); + } + + default R visitIntersect(Intersect node, C context) { + return visitSetOperation(node, context); + } + + default R visitExcept(Except node, C context) { + return visitSetOperation(node, context); + } + + default R visitTableArgument(TableFunctionTableArgument tableFunctionTableArgument, C context) { + return visitNode(tableFunctionTableArgument, context); + } + + default R visitTableFunctionArgument(TableFunctionArgument tableFunctionArgument, C context) { + return visitNode(tableFunctionArgument, context); + } + + default R visitTableFunctionInvocation( + TableFunctionInvocation tableFunctionInvocation, C context) { + return visitNode(tableFunctionInvocation, context); + } + + default R visitPatternRecognitionRelation(PatternRecognitionRelation node, C context) { + return visitRelation(node, context); + } + + default R visitRowPattern(RowPattern node, C context) { + return visitNode(node, context); + } + + default R visitPatternAlternation(PatternAlternation node, C context) { + return visitRowPattern(node, context); + } + + default R visitPatternConcatenation(PatternConcatenation node, C context) { + return visitRowPattern(node, context); + } + + default R visitQuantifiedPattern(QuantifiedPattern node, C context) { + return visitRowPattern(node, context); + } + + default R visitAnchorPattern(AnchorPattern node, C context) { + return visitRowPattern(node, context); + } + + default R visitEmptyPattern(EmptyPattern node, C context) { + return visitRowPattern(node, context); + } + + default R visitExcludedPattern(ExcludedPattern node, C context) { + return visitRowPattern(node, context); + } + + default R visitPatternPermutation(PatternPermutation node, C context) { + return visitRowPattern(node, context); + } + + default R visitPatternVariable(PatternVariable node, C context) { + return visitRowPattern(node, context); + } + + default R visitPatternQuantifier(PatternQuantifier node, C context) { + return visitNode(node, context); + } + + default R visitZeroOrMoreQuantifier(ZeroOrMoreQuantifier node, C context) { + return visitPatternQuantifier(node, context); + } + + default R visitOneOrMoreQuantifier(OneOrMoreQuantifier node, C context) { + return visitPatternQuantifier(node, context); + } + + default R visitZeroOrOneQuantifier(ZeroOrOneQuantifier node, C context) { + return visitPatternQuantifier(node, context); + } + + default R visitRangeQuantifier(RangeQuantifier node, C context) { + return visitPatternQuantifier(node, context); + } + + default R visitMeasureDefinition(MeasureDefinition node, C context) { + return visitNode(node, context); + } + + default R visitSkipTo(SkipTo node, C context) { + return visitNode(node, context); + } + + default R visitSubsetDefinition(SubsetDefinition node, C context) { + return visitNode(node, context); + } + + default R visitVariableDefinition(VariableDefinition node, C context) { + return visitNode(node, context); + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ComparisonExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ComparisonExpression.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ComparisonExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ComparisonExpression.java index 7935435407849..5cb892f95755c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ComparisonExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ComparisonExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -141,8 +141,8 @@ public Expression getRight() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitComparisonExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitComparisonExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CurrentDatabase.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CurrentDatabase.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CurrentDatabase.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CurrentDatabase.java index e22baecca7f7c..bb92937b29b52 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CurrentDatabase.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CurrentDatabase.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -47,8 +47,8 @@ public List getChildren() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitCurrentDatabase(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((CommonQueryAstVisitor) visitor).visitCurrentDatabase(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CurrentTime.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CurrentTime.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CurrentTime.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CurrentTime.java index 75223204013db..28df3b23bf4fc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CurrentTime.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CurrentTime.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -79,8 +79,8 @@ public Optional getPrecision() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitCurrentTime(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitCurrentTime(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CurrentUser.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CurrentUser.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CurrentUser.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CurrentUser.java index 4849649d19e33..a3a767dc46e00 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/CurrentUser.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/CurrentUser.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -47,8 +47,8 @@ public List getChildren() { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitCurrentUser(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((CommonQueryAstVisitor) visitor).visitCurrentUser(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DataType.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DataType.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DataType.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DataType.java index c0e3421efcb50..80a836fa208ed 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DataType.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DataType.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import javax.annotation.Nullable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DataTypeParameter.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DataTypeParameter.java similarity index 81% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DataTypeParameter.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DataTypeParameter.java index 8ed48ae30157c..f366931dd992c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DataTypeParameter.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DataTypeParameter.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import javax.annotation.Nullable; @@ -28,7 +28,7 @@ protected DataTypeParameter(@Nullable NodeLocation location) { } @Override - protected R accept(AstVisitor visitor, C context) { - return visitor.visitDataTypeParameter(this, context); + protected R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitDataTypeParameter(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DecimalLiteral.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DecimalLiteral.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DecimalLiteral.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DecimalLiteral.java index 1676e88070574..1ea253369575e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DecimalLiteral.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DecimalLiteral.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.Binary; import org.apache.tsfile.utils.RamUsageEstimator; @@ -54,8 +54,8 @@ public String getValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitDecimalLiteral(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitDecimalLiteral(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DereferenceExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DereferenceExpression.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DereferenceExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DereferenceExpression.java index 76e86948e8e31..052741f26b2ce 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DereferenceExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DereferenceExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -63,8 +63,8 @@ public DereferenceExpression(NodeLocation location, Identifier field) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitDereferenceExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitDereferenceExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DoubleLiteral.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DoubleLiteral.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DoubleLiteral.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DoubleLiteral.java index 44c732e66f0e6..f0481473684be 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/DoubleLiteral.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/DoubleLiteral.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.RamUsageEstimator; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -55,8 +55,8 @@ public double getValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitDoubleLiteral(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitDoubleLiteral(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/EmptyPattern.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/EmptyPattern.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/EmptyPattern.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/EmptyPattern.java index 20485df6cf595..d9c017983edfc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/EmptyPattern.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/EmptyPattern.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -35,8 +35,8 @@ public EmptyPattern(NodeLocation location) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitEmptyPattern(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitEmptyPattern(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Except.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Except.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Except.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Except.java index 1d300134651a2..d9ad587f6e9b2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Except.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Except.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -57,8 +57,8 @@ public Relation getRight() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitExcept(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitExcept(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExcludedPattern.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ExcludedPattern.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExcludedPattern.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ExcludedPattern.java index 066961a98b79c..672e78c405dc5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExcludedPattern.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ExcludedPattern.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -44,8 +44,8 @@ public RowPattern getPattern() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitExcludedPattern(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitExcludedPattern(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExistsPredicate.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ExistsPredicate.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExistsPredicate.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ExistsPredicate.java index c87b704761c21..c5849adbf6362 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ExistsPredicate.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ExistsPredicate.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -50,8 +50,8 @@ public Expression getSubquery() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitExists(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitExists(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Expression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Expression.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Expression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Expression.java index 9ebe61cdb35e5..e5643692e89a4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Expression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Expression.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.util.ExpressionFormatter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.util.ExpressionFormatter; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -35,10 +35,14 @@ protected Expression(@Nullable NodeLocation location) { super(location); } - /** Accessible for {@link AstVisitor}, use {@link AstVisitor#process(Node, Object)} instead. */ + /** + * Accessible for {@link org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor}, use + * {@link org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor#process(Node, + * Object)} instead. + */ @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Extract.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Extract.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Extract.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Extract.java index 3c85af1f4b695..ee8771ee1cd86 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Extract.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Extract.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import com.google.errorprone.annotations.Immutable; @@ -104,8 +104,8 @@ public Field getField() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitExtract(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitExtract(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FieldReference.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/FieldReference.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FieldReference.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/FieldReference.java index 26ce73eeb8ed4..8f6d1ec997a75 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FieldReference.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/FieldReference.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -45,8 +45,8 @@ public int getFieldIndex() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitFieldReference(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitFieldReference(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Fill.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Fill.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Fill.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Fill.java index 71c0e75e5c656..c544b2eac7e8d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Fill.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Fill.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; @@ -106,8 +106,8 @@ public Optional> getFillGroupingElements() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitFill(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitFill(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FloatLiteral.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/FloatLiteral.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FloatLiteral.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/FloatLiteral.java index 1611eef84e2a8..c0bfd41e0f607 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FloatLiteral.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/FloatLiteral.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import org.apache.tsfile.utils.RamUsageEstimator; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -57,8 +57,8 @@ public float getValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitFloatLiteral(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitFloatLiteral(this, context); } @SuppressWarnings("UnaryPlus") diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FrameBound.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/FrameBound.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FrameBound.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/FrameBound.java index 2d901545b6113..50e70a2610d19 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FrameBound.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/FrameBound.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -67,8 +67,8 @@ public Optional getValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitFrameBound(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitFrameBound(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FunctionCall.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/FunctionCall.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FunctionCall.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/FunctionCall.java index 9119b68913ac6..68a6aa3a50c4b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/FunctionCall.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/FunctionCall.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -169,8 +169,8 @@ public Optional getNullTreatment() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitFunctionCall(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitFunctionCall(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GenericDataType.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GenericDataType.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GenericDataType.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GenericDataType.java index ebc5b7880cd3a..c1e7e97759592 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GenericDataType.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GenericDataType.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -68,8 +68,8 @@ public List getChildren() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitGenericDataType(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitGenericDataType(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GenericLiteral.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GenericLiteral.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GenericLiteral.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GenericLiteral.java index 8a78fd4059c04..073be944d6bb9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GenericLiteral.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GenericLiteral.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.ParsingException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.ParsingException; import org.apache.tsfile.utils.Binary; import org.apache.tsfile.utils.RamUsageEstimator; @@ -79,8 +79,8 @@ public String getValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitGenericLiteral(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitGenericLiteral(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GroupBy.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GroupBy.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GroupBy.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GroupBy.java index 00d201648ca8f..9a22e84243481 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GroupBy.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GroupBy.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -57,8 +57,8 @@ public List getGroupingElements() { } @Override - protected R accept(AstVisitor visitor, C context) { - return visitor.visitGroupBy(this, context); + protected R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitGroupBy(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GroupingElement.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GroupingElement.java similarity index 82% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GroupingElement.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GroupingElement.java index 17f1e9cc916bc..44de910504346 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GroupingElement.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GroupingElement.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import java.util.List; @@ -30,7 +30,7 @@ protected GroupingElement(NodeLocation location) { public abstract List getExpressions(); @Override - protected R accept(AstVisitor visitor, C context) { - return visitor.visitGroupingElement(this, context); + protected R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitGroupingElement(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GroupingSets.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GroupingSets.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GroupingSets.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GroupingSets.java index 8060e14a2c670..31cf494a9a1d6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/GroupingSets.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/GroupingSets.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -74,8 +74,8 @@ public List getExpressions() { } @Override - protected R accept(AstVisitor visitor, C context) { - return visitor.visitGroupingSets(this, context); + protected R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitGroupingSets(this, context); } @Override diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/IAstVisitor.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/IAstVisitor.java new file mode 100644 index 0000000000000..98e887cc6bcd5 --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/IAstVisitor.java @@ -0,0 +1,17 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; + +public interface IAstVisitor {} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Identifier.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Identifier.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Identifier.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Identifier.java index d881a6998fcac..7c492c641ca96 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Identifier.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Identifier.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.base.CharMatcher; import com.google.common.base.Strings; @@ -107,8 +107,8 @@ public String getCanonicalValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitIdentifier(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitIdentifier(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/IfExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/IfExpression.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/IfExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/IfExpression.java index 4a6f41d4d2ab0..ca3d7cf8a01d1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/IfExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/IfExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -70,8 +70,8 @@ public Optional getFalseValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitIfExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitIfExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InListExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/InListExpression.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InListExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/InListExpression.java index fb8f8752a14ba..9b7ea4a3e5877 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InListExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/InListExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -81,8 +81,8 @@ public List getValues() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitInListExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitInListExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InPredicate.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/InPredicate.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InPredicate.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/InPredicate.java index 464e9af4d6f18..976f0d25a9dff 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/InPredicate.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/InPredicate.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -59,8 +59,8 @@ public Expression getValueList() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitInPredicate(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitInPredicate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Intersect.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Intersect.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Intersect.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Intersect.java index a64bcbdaec5df..cbe31fee92bc2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Intersect.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Intersect.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -50,8 +50,8 @@ public List getRelations() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitIntersect(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitIntersect(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/IsNotNullPredicate.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/IsNotNullPredicate.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/IsNotNullPredicate.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/IsNotNullPredicate.java index 4db717ce69217..2578710096a5f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/IsNotNullPredicate.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/IsNotNullPredicate.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -67,8 +67,8 @@ public Expression getValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitIsNotNullPredicate(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitIsNotNullPredicate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/IsNullPredicate.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/IsNullPredicate.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/IsNullPredicate.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/IsNullPredicate.java index 0d297ebac8ec8..ad52b29ce8a41 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/IsNullPredicate.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/IsNullPredicate.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -67,8 +67,8 @@ public Expression getValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitIsNullPredicate(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitIsNullPredicate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Join.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Join.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Join.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Join.java index 7d2043c78969f..2aaadc2d1bb1b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Join.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Join.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -111,8 +111,8 @@ public Optional getCriteria() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitJoin(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitJoin(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinCriteria.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/JoinCriteria.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinCriteria.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/JoinCriteria.java index da0cdbf312d42..2c28696cfc8b0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinCriteria.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/JoinCriteria.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.Accountable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinOn.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/JoinOn.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinOn.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/JoinOn.java index 12035339eb56a..4cc5e60f1d5cf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinOn.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/JoinOn.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinUsing.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/JoinUsing.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinUsing.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/JoinUsing.java index a9a22e4eb2631..8121280f87f4e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/JoinUsing.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/JoinUsing.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LikePredicate.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/LikePredicate.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LikePredicate.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/LikePredicate.java index 6f0490bfc44d4..0db19609b5a32 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LikePredicate.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/LikePredicate.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -112,8 +112,8 @@ public Optional getEscape() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitLikePredicate(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitLikePredicate(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Limit.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Limit.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Limit.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Limit.java index b234d1b407491..1f16efb24308d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Limit.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Limit.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -61,8 +61,8 @@ public Expression getRowCount() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitLimit(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitLimit(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Literal.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Literal.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Literal.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Literal.java index b60e5a454a78d..2de498b28b42c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Literal.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Literal.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; @@ -31,8 +31,8 @@ protected Literal(@Nullable NodeLocation location) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitLiteral(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitLiteral(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LogicalExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/LogicalExpression.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LogicalExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/LogicalExpression.java index de7dc1ad06294..13a5400339524 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LogicalExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/LogicalExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -83,8 +83,8 @@ public void setTerms(List terms) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitLogicalExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitLogicalExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LongLiteral.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/LongLiteral.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LongLiteral.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/LongLiteral.java index 930714f1181e3..461683c424091 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/LongLiteral.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/LongLiteral.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.ParsingException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.ParsingException; import org.apache.tsfile.utils.RamUsageEstimator; import org.apache.tsfile.utils.ReadWriteIOUtils; @@ -67,8 +67,8 @@ public long getParsedValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitLongLiteral(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitLongLiteral(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/MeasureDefinition.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/MeasureDefinition.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/MeasureDefinition.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/MeasureDefinition.java index c61b5bd3ba5fc..b99e25270ce06 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/MeasureDefinition.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/MeasureDefinition.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -50,8 +50,8 @@ public Identifier getName() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitMeasureDefinition(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitMeasureDefinition(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NaturalJoin.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NaturalJoin.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NaturalJoin.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NaturalJoin.java index 9dd25c6cc2c05..b8afddd75542f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NaturalJoin.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NaturalJoin.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Node.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Node.java similarity index 82% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Node.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Node.java index 1f5a4e645ccfb..f28a252c0a883 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Node.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Node.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.Accountable; @@ -34,9 +34,13 @@ protected Node(@Nullable NodeLocation location) { this.location = location; } - /** Accessible for {@link AstVisitor}, use {@link AstVisitor#process(Node, Object)} instead. */ - protected R accept(AstVisitor visitor, C context) { - return visitor.visitNode(this, context); + /** + * Accessible for {@link org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor}, use + * {@link org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor#process(Node, + * Object)} instead. + */ + protected R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitNode(this, context); } public Optional getLocation() { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NodeLocation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NodeLocation.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NodeLocation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NodeLocation.java index 98f32813d7e33..c634ac27fc04c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NodeLocation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NodeLocation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NotExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NotExpression.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NotExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NotExpression.java index 617d2b5665878..09f35a2fdf0a6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NotExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NotExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -52,8 +52,8 @@ public Expression getValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitNotExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitNotExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NullIfExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NullIfExpression.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NullIfExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NullIfExpression.java index 96ac85152eb1e..564954920b349 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NullIfExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NullIfExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -56,8 +56,8 @@ public Expression getSecond() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitNullIfExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitNullIfExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NullLiteral.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NullLiteral.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NullLiteral.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NullLiteral.java index 3dd4cab22b0d1..ff305bbc9f051 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NullLiteral.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NullLiteral.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.RamUsageEstimator; @@ -41,8 +41,8 @@ public NullLiteral(NodeLocation location) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitNullLiteral(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitNullLiteral(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NumericParameter.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NumericParameter.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NumericParameter.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NumericParameter.java index c643f2582dd9a..842fd795d7e49 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/NumericParameter.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/NumericParameter.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -59,8 +59,8 @@ public List getChildren() { } @Override - protected R accept(AstVisitor visitor, C context) { - return visitor.visitNumericTypeParameter(this, context); + protected R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitNumericTypeParameter(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Offset.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Offset.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Offset.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Offset.java index 378eb21119497..3a4ed9f81283d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Offset.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Offset.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -59,8 +59,8 @@ public Expression getRowCount() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitOffset(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitOffset(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/OneOrMoreQuantifier.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/OneOrMoreQuantifier.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/OneOrMoreQuantifier.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/OneOrMoreQuantifier.java index b91c9016cc835..14531c88748cc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/OneOrMoreQuantifier.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/OneOrMoreQuantifier.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.RamUsageEstimator; @@ -30,8 +30,8 @@ public OneOrMoreQuantifier(NodeLocation location, boolean greedy) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitOneOrMoreQuantifier(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitOneOrMoreQuantifier(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/OrderBy.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/OrderBy.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/OrderBy.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/OrderBy.java index c589acae3b965..6a83489342b7a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/OrderBy.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/OrderBy.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -59,8 +59,8 @@ public List getSortItems() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitOrderBy(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitOrderBy(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Parameter.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Parameter.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Parameter.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Parameter.java index 9f585304f60a4..bc0d7f02ca976 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Parameter.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Parameter.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -48,8 +48,8 @@ public int getId() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitParameter(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitParameter(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternAlternation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternAlternation.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternAlternation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternAlternation.java index 15f6f22d10073..98940ef838e33 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternAlternation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternAlternation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -46,8 +46,8 @@ public List getPatterns() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitPatternAlternation(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitPatternAlternation(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternConcatenation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternConcatenation.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternConcatenation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternConcatenation.java index 6a43b61cd5653..bc380cec48f45 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternConcatenation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternConcatenation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -46,8 +46,8 @@ public List getPatterns() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitPatternConcatenation(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitPatternConcatenation(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternPermutation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternPermutation.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternPermutation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternPermutation.java index f44727a444e3b..a1467daa5e8a5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternPermutation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternPermutation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -46,8 +46,8 @@ public List getPatterns() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitPatternPermutation(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitPatternPermutation(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternQuantifier.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternQuantifier.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternQuantifier.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternQuantifier.java index e94249e93087f..fd30c6f64284b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternQuantifier.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternQuantifier.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; @@ -39,8 +39,8 @@ public boolean isGreedy() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitPatternQuantifier(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitPatternQuantifier(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternRecognitionRelation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternRecognitionRelation.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternRecognitionRelation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternRecognitionRelation.java index 156b5b251e75c..91d8569b68786 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternRecognitionRelation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternRecognitionRelation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -106,8 +106,8 @@ public List getVariableDefinitions() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitPatternRecognitionRelation(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitPatternRecognitionRelation(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternVariable.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternVariable.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternVariable.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternVariable.java index 3189f78433a39..8ca766fc9d1ac 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/PatternVariable.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/PatternVariable.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -44,8 +44,8 @@ public Identifier getName() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitPatternVariable(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitPatternVariable(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ProcessingMode.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ProcessingMode.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ProcessingMode.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ProcessingMode.java index b7b5e8f8870cf..2cecdee607ce3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ProcessingMode.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ProcessingMode.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -44,8 +44,8 @@ public Mode getMode() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitProcessingMode(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitProcessingMode(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QualifiedName.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QualifiedName.java similarity index 99% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QualifiedName.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QualifiedName.java index 32a148f632154..4f5cc295f2595 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QualifiedName.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QualifiedName.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QuantifiedComparisonExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QuantifiedComparisonExpression.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QuantifiedComparisonExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QuantifiedComparisonExpression.java index 18e7f8b7606a5..f724c4db709cf 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QuantifiedComparisonExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QuantifiedComparisonExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -85,8 +85,9 @@ public Expression getSubquery() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitQuantifiedComparisonExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor) + .visitQuantifiedComparisonExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QuantifiedPattern.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QuantifiedPattern.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QuantifiedPattern.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QuantifiedPattern.java index a6e9cb0b2d2f3..b3145f3f69fe5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QuantifiedPattern.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QuantifiedPattern.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -51,8 +51,8 @@ public PatternQuantifier getPatternQuantifier() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitQuantifiedPattern(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitQuantifiedPattern(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Query.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Query.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Query.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Query.java index 5bed50b17d89b..2e29e85c399eb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Query.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Query.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; -import org.apache.iotdb.db.utils.cte.CteDataStore; +import org.apache.iotdb.commons.queryengine.utils.cte.CteDataStore; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -139,8 +139,8 @@ public CteDataStore getCteDataStore() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitQuery(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitQuery(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QueryBody.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QueryBody.java similarity index 82% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QueryBody.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QueryBody.java index 35fefdfbf3294..e59d277ea023f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QueryBody.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QueryBody.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import javax.annotation.Nullable; @@ -28,7 +28,7 @@ protected QueryBody(@Nullable NodeLocation location) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitQueryBody(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitQueryBody(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QuerySpecification.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QuerySpecification.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QuerySpecification.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QuerySpecification.java index 5de61a2dde2e2..28489a91bbcc6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/QuerySpecification.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/QuerySpecification.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -126,8 +126,8 @@ public Optional getLimit() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitQuerySpecification(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitQuerySpecification(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RangeQuantifier.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/RangeQuantifier.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RangeQuantifier.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/RangeQuantifier.java index dc62c47bb0436..560b6cef40344 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RangeQuantifier.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/RangeQuantifier.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -55,8 +55,8 @@ public Optional getAtMost() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitRangeQuantifier(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitRangeQuantifier(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Relation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Relation.java similarity index 81% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Relation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Relation.java index 0bb39725468fd..6d8522f90d873 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Relation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Relation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; public abstract class Relation extends Node { @@ -26,7 +26,7 @@ protected Relation(NodeLocation location) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitRelation(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitRelation(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Row.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Row.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Row.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Row.java index 8510abb5b1b3f..4670908983c07 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Row.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Row.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -81,8 +81,8 @@ public List getItems() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitRow(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitRow(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RowPattern.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/RowPattern.java similarity index 81% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RowPattern.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/RowPattern.java index af5bf76786017..7439ce188cbe2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/RowPattern.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/RowPattern.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; public abstract class RowPattern extends Node { protected RowPattern(NodeLocation location) { @@ -25,7 +25,7 @@ protected RowPattern(NodeLocation location) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitRowPattern(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitRowPattern(this, context); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SearchedCaseExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SearchedCaseExpression.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SearchedCaseExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SearchedCaseExpression.java index c6ccd5dc6f493..e4d123d136880 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SearchedCaseExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SearchedCaseExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.external.commons.lang3.Validate; @@ -96,8 +96,8 @@ public Optional getDefaultValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSearchedCaseExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitSearchedCaseExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Select.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Select.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Select.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Select.java index db644daa872b4..300524043ceba 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Select.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Select.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -56,8 +56,8 @@ public List getSelectItems() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSelect(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitSelect(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SelectItem.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SelectItem.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SelectItem.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SelectItem.java index b5faf104287b8..777c95da3f854 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SelectItem.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SelectItem.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; public abstract class SelectItem extends Node { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetOperation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SetOperation.java similarity index 84% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetOperation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SetOperation.java index c470cbf1d9ca8..41f4eb576e211 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SetOperation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SetOperation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import java.util.List; @@ -34,8 +34,8 @@ public boolean isDistinct() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSetOperation(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitSetOperation(this, context); } public abstract List getRelations(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SimpleCaseExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SimpleCaseExpression.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SimpleCaseExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SimpleCaseExpression.java index e8a4fdad0fe53..cce24b7bce0e1 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SimpleCaseExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SimpleCaseExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.external.commons.lang3.Validate; @@ -106,8 +106,8 @@ public Optional getDefaultValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSimpleCaseExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitSimpleCaseExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SimpleGroupBy.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SimpleGroupBy.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SimpleGroupBy.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SimpleGroupBy.java index 2827480b86195..c9c84bc423cd2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SimpleGroupBy.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SimpleGroupBy.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -55,8 +55,8 @@ public List getExpressions() { } @Override - protected R accept(AstVisitor visitor, C context) { - return visitor.visitSimpleGroupBy(this, context); + protected R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitSimpleGroupBy(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SingleColumn.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SingleColumn.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SingleColumn.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SingleColumn.java index f9786f9f8b6ed..97f377cafd747 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SingleColumn.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SingleColumn.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -119,8 +119,8 @@ public String toString() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSingleColumn(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitSingleColumn(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SkipTo.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SkipTo.java similarity index 87% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SkipTo.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SkipTo.java index 1894f9f120a4d..1a2768b6e28c0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SkipTo.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SkipTo.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -29,10 +29,10 @@ import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo.Position.FIRST; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo.Position.LAST; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo.Position.NEXT; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SkipTo.Position.PAST_LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo.Position.FIRST; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo.Position.LAST; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo.Position.NEXT; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SkipTo.Position.PAST_LAST; public class SkipTo extends Node { private static final long INSTANCE_SIZE = RamUsageEstimator.shallowSizeOfInstance(SkipTo.class); @@ -89,8 +89,8 @@ public Optional getIdentifier() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSkipTo(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitSkipTo(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SortItem.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SortItem.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SortItem.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SortItem.java index 50fe12b2c5b07..c9a4bb7bfdb35 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SortItem.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SortItem.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -79,8 +79,8 @@ public NullOrdering getNullOrdering() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSortItem(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitSortItem(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Statement.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Statement.java similarity index 89% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Statement.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Statement.java index 6548748f7c159..8b8c37eadb83e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Statement.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Statement.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import javax.annotation.Nullable; @@ -32,8 +32,8 @@ protected Statement(final @Nullable NodeLocation location) { } @Override - public R accept(final AstVisitor visitor, final C context) { - return visitor.visitStatement(this, context); + public R accept(final IAstVisitor visitor, final C context) { + return ((CommonQueryAstVisitor) visitor).visitStatement(this, context); } /** diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StringLiteral.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/StringLiteral.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StringLiteral.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/StringLiteral.java index 981ccd6c1e834..9550da25a8d46 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/StringLiteral.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/StringLiteral.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.Binary; import org.apache.tsfile.utils.RamUsageEstimator; @@ -60,8 +60,8 @@ public int length() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitStringLiteral(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitStringLiteral(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SubqueryExpression.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SubqueryExpression.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SubqueryExpression.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SubqueryExpression.java index 97d2c9bc740e4..f5bb7c52bfd9e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SubqueryExpression.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SubqueryExpression.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -49,8 +49,8 @@ public Query getQuery() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSubqueryExpression(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitSubqueryExpression(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SubsetDefinition.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SubsetDefinition.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SubsetDefinition.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SubsetDefinition.java index cd4a5adda9d0b..ba5c506ce9c45 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SubsetDefinition.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SubsetDefinition.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.RamUsageEstimator; @@ -52,8 +52,8 @@ public List getIdentifiers() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSubsetDefinition(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitSubsetDefinition(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SymbolReference.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SymbolReference.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SymbolReference.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SymbolReference.java index b1b05cfd550f9..74fca5d8fc949 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/SymbolReference.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/SymbolReference.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -46,8 +46,8 @@ public String getName() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitSymbolReference(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitSymbolReference(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Table.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Table.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Table.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Table.java index bf397932ffd85..5909dc8af52e0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Table.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Table.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -49,8 +49,8 @@ public QualifiedName getName() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitTable(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitTable(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableExpressionType.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableExpressionType.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableExpressionType.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableExpressionType.java index bb24b097207c2..33aa23698d33d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableExpressionType.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableExpressionType.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; public enum TableExpressionType { ARITHMETIC_BINARY((short) 1), diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableFunctionArgument.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableFunctionArgument.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableFunctionArgument.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableFunctionArgument.java index b170a0c507ee3..2175fcac60a04 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableFunctionArgument.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableFunctionArgument.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -53,8 +53,8 @@ public Node getValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitTableFunctionArgument(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitTableFunctionArgument(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableFunctionInvocation.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableFunctionInvocation.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableFunctionInvocation.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableFunctionInvocation.java index 38f362dc9142f..687b331c3e8af 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableFunctionInvocation.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableFunctionInvocation.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.RamUsageEstimator; @@ -50,8 +50,8 @@ public List getArguments() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitTableFunctionInvocation(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitTableFunctionInvocation(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableFunctionTableArgument.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableFunctionTableArgument.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableFunctionTableArgument.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableFunctionTableArgument.java index 63bba06daa30e..5c176f2f5d6b2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableFunctionTableArgument.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableFunctionTableArgument.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -28,7 +28,7 @@ import java.util.stream.Collectors; import static java.util.Objects.requireNonNull; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.util.ExpressionFormatter.formatSortItems; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.util.ExpressionFormatter.formatSortItems; public class TableFunctionTableArgument extends Node { private static final long INSTANCE_SIZE = @@ -66,8 +66,8 @@ public void updateOrderBy(OrderBy orderBy) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitTableArgument(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitTableArgument(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableSubquery.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableSubquery.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableSubquery.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableSubquery.java index 1036959ea4c78..4c5968a23cfa5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableSubquery.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TableSubquery.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -50,8 +50,8 @@ public Query getQuery() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitTableSubquery(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitTableSubquery(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TimeDurationLiteral.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TimeDurationLiteral.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TimeDurationLiteral.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TimeDurationLiteral.java index 1016634f26069..9a626b84548f4 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TimeDurationLiteral.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TimeDurationLiteral.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.RamUsageEstimator; import org.apache.tsfile.utils.TimeDuration; @@ -51,8 +51,8 @@ public TimeDuration getValue() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitTimeDurationLiteral(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitTimeDurationLiteral(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Trim.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Trim.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Trim.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Trim.java index bebf51629f3da..2be6af1fda8b9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Trim.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Trim.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -82,8 +82,8 @@ public Optional getTrimCharacter() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitTrim(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitTrim(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TypeParameter.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TypeParameter.java similarity index 90% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TypeParameter.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TypeParameter.java index f691bd2ea5488..4e27dddb3bdab 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TypeParameter.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/TypeParameter.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -54,8 +54,8 @@ public List getChildren() { } @Override - protected R accept(AstVisitor visitor, C context) { - return visitor.visitTypeParameter(this, context); + protected R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitTypeParameter(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Union.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Union.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Union.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Union.java index cda978b0312c1..b99e7fd45a316 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Union.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Union.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -50,8 +50,8 @@ public List getRelations() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitUnion(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitUnion(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Values.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Values.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Values.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Values.java index 4850571478de1..5e6e094dbe72b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Values.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Values.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; @@ -48,8 +48,8 @@ public List getRows() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitValues(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitValues(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/VariableDefinition.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/VariableDefinition.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/VariableDefinition.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/VariableDefinition.java index b965e9154755e..4a42a13f506e5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/VariableDefinition.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/VariableDefinition.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -50,8 +50,8 @@ public Expression getExpression() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitVariableDefinition(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitVariableDefinition(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WhenClause.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WhenClause.java similarity index 94% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WhenClause.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WhenClause.java index c46cb716ed6f3..666dc9626c32c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WhenClause.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WhenClause.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -65,8 +65,8 @@ public Expression getResult() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitWhenClause(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitWhenClause(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Window.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Window.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Window.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Window.java index edbe81408fa84..aa885f0274e18 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Window.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/Window.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import java.io.DataOutputStream; import java.io.IOException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WindowDefinition.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WindowDefinition.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WindowDefinition.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WindowDefinition.java index ada49ae37e8c4..b72033e403bfe 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WindowDefinition.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WindowDefinition.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -50,8 +50,8 @@ public WindowSpecification getWindow() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitWindowDefinition(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitWindowDefinition(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WindowFrame.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WindowFrame.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WindowFrame.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WindowFrame.java index 9e5ec43b4cb76..20134c5b1cd18 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WindowFrame.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WindowFrame.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -67,8 +67,8 @@ public Optional getEnd() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitWindowFrame(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitWindowFrame(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WindowReference.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WindowReference.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WindowReference.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WindowReference.java index 9b797d812fa5a..a086a644c934c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WindowReference.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WindowReference.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -47,8 +47,8 @@ public Identifier getName() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitWindowReference(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitWindowReference(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WindowSpecification.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WindowSpecification.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WindowSpecification.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WindowSpecification.java index 44a5779b49fda..715e867fd177b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WindowSpecification.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WindowSpecification.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -73,8 +73,8 @@ public Optional getFrame() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitWindowSpecification(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitWindowSpecification(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/With.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/With.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/With.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/With.java index 3fd654b660753..86d8dd4994138 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/With.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/With.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -65,8 +65,8 @@ public List getQueries() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitWith(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitWith(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WithQuery.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WithQuery.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WithQuery.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WithQuery.java index 3d7fb15e4f79b..a0b4f78d6f5e7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/WithQuery.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/WithQuery.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import com.google.common.collect.ImmutableList; import org.apache.tsfile.utils.RamUsageEstimator; @@ -97,8 +97,8 @@ public boolean isMaterialized() { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitWithQuery(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitWithQuery(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ZeroOrMoreQuantifier.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ZeroOrMoreQuantifier.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ZeroOrMoreQuantifier.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ZeroOrMoreQuantifier.java index 019906e025824..6963b1b9b1a30 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ZeroOrMoreQuantifier.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ZeroOrMoreQuantifier.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.RamUsageEstimator; @@ -30,8 +30,8 @@ public ZeroOrMoreQuantifier(NodeLocation location, boolean greedy) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitZeroOrMoreQuantifier(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitZeroOrMoreQuantifier(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ZeroOrOneQuantifier.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ZeroOrOneQuantifier.java similarity index 85% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ZeroOrOneQuantifier.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ZeroOrOneQuantifier.java index 791a5dd705f2f..68449b1d79cee 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/ZeroOrOneQuantifier.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/ast/ZeroOrOneQuantifier.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.ast; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.ast; import org.apache.tsfile.utils.RamUsageEstimator; @@ -30,8 +30,8 @@ public ZeroOrOneQuantifier(NodeLocation location, boolean greedy) { } @Override - public R accept(AstVisitor visitor, C context) { - return visitor.visitZeroOrOneQuantifier(this, context); + public R accept(IAstVisitor visitor, C context) { + return ((CommonQueryAstVisitor) visitor).visitZeroOrOneQuantifier(this, context); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/CaseInsensitiveStream.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/parser/CaseInsensitiveStream.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/CaseInsensitiveStream.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/parser/CaseInsensitiveStream.java index ff7185d08686a..4c3dc8c17b996 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/CaseInsensitiveStream.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/parser/CaseInsensitiveStream.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.parser; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.parser; import org.antlr.v4.runtime.CharStream; import org.antlr.v4.runtime.IntStream; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/ParsingException.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/parser/ParsingException.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/ParsingException.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/parser/ParsingException.java index 3dfc72a46a890..f42b61545b08b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/ParsingException.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/parser/ParsingException.java @@ -17,9 +17,9 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.parser; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.parser; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NodeLocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NodeLocation; import org.antlr.v4.runtime.RecognitionException; diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/util/CommonQuerySqlFormatter.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/util/CommonQuerySqlFormatter.java new file mode 100644 index 0000000000000..0869dbb309aef --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/util/CommonQuerySqlFormatter.java @@ -0,0 +1,705 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.relational.sql.util; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AliasedRelation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AllColumns; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Except; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Fill; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Intersect; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Join; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinCriteria; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinOn; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.JoinUsing; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Limit; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NaturalJoin; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Offset; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternRecognitionRelation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Query; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuerySpecification; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Relation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Select; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SingleColumn; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Table; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableFunctionArgument; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableFunctionInvocation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableFunctionTableArgument; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TableSubquery; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Union; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Values; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WithQuery; +import org.apache.iotdb.commons.queryengine.plan.statement.component.FillPolicy; + +import com.google.common.base.Joiner; +import com.google.common.base.Strings; +import com.google.errorprone.annotations.CanIgnoreReturnValue; + +import java.util.Iterator; +import java.util.List; + +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkState; +import static com.google.common.collect.ImmutableList.toImmutableList; +import static com.google.common.collect.Iterables.getOnlyElement; +import static java.util.Objects.requireNonNull; +import static java.util.stream.Collectors.joining; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.util.ExpressionFormatter.formatOrderBy; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.util.RowPatternFormatter.formatPattern; + +public class CommonQuerySqlFormatter implements CommonQueryAstVisitor { + + protected static final String INDENT = " "; + protected final SqlBuilder builder; + + public CommonQuerySqlFormatter(StringBuilder builder) { + this.builder = new SqlBuilder(builder); + } + + protected static String formatName(Identifier identifier) { + return ExpressionFormatter.formatExpression(identifier); + } + + public static String formatName(QualifiedName name) { + return name.getOriginalParts().stream() + .map(CommonQuerySqlFormatter::formatName) + .collect(joining(".")); + } + + protected static String formatExpression(Expression expression) { + return ExpressionFormatter.formatExpression(expression); + } + + @Override + public Void visitNode(Node node, Integer indent) { + throw new UnsupportedOperationException("not yet implemented: " + node); + } + + @Override + public Void visitExpression(Expression node, Integer indent) { + checkArgument(indent == 0, "visitExpression should only be called at root"); + builder.append(formatExpression(node)); + return null; + } + + @Override + public Void visitQuery(Query node, Integer indent) { + node.getWith() + .ifPresent( + with -> { + append(indent, "WITH"); + if (with.isRecursive()) { + builder.append(" RECURSIVE"); + } + builder.append("\n "); + Iterator queries = with.getQueries().iterator(); + while (queries.hasNext()) { + WithQuery query = queries.next(); + append(indent, formatName(query.getName())); + query + .getColumnNames() + .ifPresent(columnNames -> appendAliasColumns(builder, columnNames)); + builder.append(" AS "); + process(new TableSubquery(query.getQuery()), indent); + builder.append('\n'); + if (queries.hasNext()) { + builder.append(", "); + } + } + }); + + processRelation(node.getQueryBody(), indent); + node.getOrderBy().ifPresent(orderBy -> process(orderBy, indent)); + node.getOffset().ifPresent(offset -> process(offset, indent)); + node.getLimit().ifPresent(limit -> process(limit, indent)); + return null; + } + + @Override + public Void visitFill(Fill node, Integer indent) { + append(indent, "FILL METHOD ").append(node.getFillMethod().name()); + + if (node.getFillMethod() == FillPolicy.CONSTANT) { + builder.append(formatExpression(node.getFillValue().get())); + } else if (node.getFillMethod() == FillPolicy.LINEAR) { + node.getTimeColumnIndex() + .ifPresent(index -> builder.append(" TIME_COLUMN ").append(String.valueOf(index))); + node.getFillGroupingElements() + .ifPresent( + elements -> + builder + .append(" FILL_GROUP ") + .append( + elements.stream() + .map(CommonQuerySqlFormatter::formatExpression) + .collect(joining(", ")))); + } else if (node.getFillMethod() == FillPolicy.PREVIOUS) { + node.getTimeBound() + .ifPresent(timeBound -> builder.append(" TIME_BOUND ").append(timeBound.toString())); + node.getTimeColumnIndex() + .ifPresent(index -> builder.append(" TIME_COLUMN ").append(String.valueOf(index))); + node.getFillGroupingElements() + .ifPresent( + elements -> + builder + .append(" FILL_GROUP ") + .append( + elements.stream() + .map(CommonQuerySqlFormatter::formatExpression) + .collect(joining(", ")))); + } else { + throw new IllegalArgumentException("Unknown fill method: " + node.getFillMethod()); + } + return null; + } + + @Override + public Void visitOrderBy(OrderBy node, Integer indent) { + append(indent, formatOrderBy(node)).append('\n'); + return null; + } + + @Override + public Void visitOffset(Offset node, Integer indent) { + append(indent, "OFFSET ").append(formatExpression(node.getRowCount())).append(" ROWS\n"); + return null; + } + + @Override + public Void visitLimit(Limit node, Integer indent) { + append(indent, "LIMIT ").append(formatExpression(node.getRowCount())).append('\n'); + return null; + } + + @Override + public Void visitSingleColumn(SingleColumn node, Integer indent) { + builder.append(formatExpression(node.getExpression())); + node.getAlias().ifPresent(alias -> builder.append(' ').append(formatName(alias))); + return null; + } + + @Override + public Void visitAllColumns(AllColumns node, Integer indent) { + node.getTarget().ifPresent(value -> builder.append(formatExpression(value)).append(".")); + builder.append("*"); + + if (!node.getAliases().isEmpty()) { + builder + .append(" AS (") + .append( + Joiner.on(", ") + .join( + node.getAliases().stream() + .map(CommonQuerySqlFormatter::formatName) + .collect(toImmutableList()))) + .append(")"); + } + + return null; + } + + @Override + public Void visitJoin(Join node, Integer indent) { + JoinCriteria criteria = node.getCriteria().orElse(null); + String type = node.getType().toString(); + if (criteria instanceof NaturalJoin) { + type = "NATURAL " + type; + } + + if (node.getType() != Join.Type.IMPLICIT) { + builder.append('('); + } + process(node.getLeft(), indent); + + builder.append('\n'); + if (node.getType() == Join.Type.IMPLICIT) { + append(indent, ", "); + } else { + append(indent, type).append(" JOIN "); + } + + process(node.getRight(), indent); + + if (node.getType() != Join.Type.CROSS && node.getType() != Join.Type.IMPLICIT) { + if (criteria instanceof JoinUsing) { + JoinUsing using = (JoinUsing) criteria; + builder.append(" USING (").append(Joiner.on(", ").join(using.getColumns())).append(")"); + } else if (criteria instanceof JoinOn) { + JoinOn on = (JoinOn) criteria; + builder.append(" ON ").append(formatExpression(on.getExpression())); + } else if (!(criteria instanceof NaturalJoin)) { + throw new UnsupportedOperationException("unknown join criteria: " + criteria); + } + } + + if (node.getType() != Join.Type.IMPLICIT) { + builder.append(")"); + } + + return null; + } + + @Override + public Void visitAliasedRelation(AliasedRelation node, Integer indent) { + processRelationSuffix(node.getRelation(), indent); + + builder.append(' ').append(formatName(node.getAlias())); + appendAliasColumns(builder, node.getColumnNames()); + + return null; + } + + @Override + public Void visitValues(Values node, Integer indent) { + builder.append(" VALUES "); + + boolean first = true; + for (Expression row : node.getRows()) { + builder.append("\n").append(indentString(indent)).append(first ? " " : ", "); + builder.append(formatExpression(row)); + first = false; + } + builder.append('\n'); + + return null; + } + + @Override + public Void visitTableSubquery(TableSubquery node, Integer indent) { + builder.append('(').append('\n'); + + process(node.getQuery(), indent + 1); + + append(indent, ") "); + + return null; + } + + @Override + public Void visitRow(Row node, Integer indent) { + builder.append("ROW("); + boolean firstItem = true; + for (Expression item : node.getItems()) { + if (!firstItem) { + builder.append(", "); + } + process(item, indent); + firstItem = false; + } + builder.append(")"); + return null; + } + + protected void processRelationSuffix(Relation relation, Integer indent) { + if (needsParenthesesForRelationSuffix(relation)) { + builder.append("( "); + process(relation, indent + 1); + append(indent, ")"); + } else { + process(relation, indent); + } + } + + protected boolean needsParenthesesForRelationSuffix(Relation relation) { + return relation instanceof AliasedRelation; + } + + protected void processRelation(Relation relation, Integer indent) { + if (isSimpleTableRelation(relation)) { + builder.append("TABLE ").append(formatSimpleTableRelationName(relation)).append('\n'); + } else { + process(relation, indent); + } + } + + protected boolean isSimpleTableRelation(Relation relation) { + return false; + } + + protected String formatSimpleTableRelationName(Relation relation) { + throw new UnsupportedOperationException("unsupported relation: " + relation); + } + + protected SqlBuilder append(int indent, String value) { + return builder.append(indentString(indent)).append(value); + } + + protected static String indentString(int indent) { + return Strings.repeat(INDENT, indent); + } + + protected void formatDefinitionList(List elements, int indent) { + if (elements.size() == 1) { + builder.append(" ").append(getOnlyElement(elements)).append("\n"); + } else { + builder.append("\n"); + for (int i = 0; i < elements.size() - 1; i++) { + append(indent, elements.get(i)).append(",\n"); + } + append(indent, elements.get(elements.size() - 1)).append("\n"); + } + } + + protected void appendAliasColumns(SqlBuilder builder, List columns) { + if ((columns != null) && !columns.isEmpty()) { + String formattedColumns = + columns.stream().map(CommonQuerySqlFormatter::formatName).collect(joining(", ")); + builder.append(" (").append(formattedColumns).append(')'); + } + } + + @Override + public Void visitRowPattern(RowPattern node, Integer indent) { + checkArgument(indent == 0, "visitRowPattern should only be called at root"); + builder.append(formatPattern(node)); + return null; + } + + @Override + public Void visitQuerySpecification(QuerySpecification node, Integer indent) { + process(node.getSelect(), indent); + + node.getFrom() + .ifPresent( + from -> { + append(indent, "FROM"); + builder.append('\n'); + append(indent, " "); + process(from, indent); + }); + + builder.append('\n'); + + node.getWhere() + .ifPresent(where -> append(indent, "WHERE " + formatExpression(where)).append('\n')); + + node.getGroupBy() + .ifPresent( + groupBy -> + append( + indent, + "GROUP BY " + + (groupBy.isDistinct() ? " DISTINCT " : "") + + org.apache.iotdb.commons.queryengine.plan.relational.sql.util + .ExpressionFormatter.formatGroupBy(groupBy.getGroupingElements())) + .append('\n')); + + node.getHaving() + .ifPresent(having -> append(indent, "HAVING " + formatExpression(having)).append('\n')); + + node.getOrderBy().ifPresent(orderBy -> process(orderBy, indent)); + node.getOffset().ifPresent(offset -> process(offset, indent)); + node.getLimit().ifPresent(limit -> process(limit, indent)); + return null; + } + + @Override + public Void visitSelect(Select node, Integer indent) { + append(indent, "SELECT"); + if (node.isDistinct()) { + builder.append(" DISTINCT"); + } + + if (node.getSelectItems().size() > 1) { + boolean first = true; + for (org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SelectItem item : + node.getSelectItems()) { + builder.append("\n").append(indentString(indent)).append(first ? " " : ", "); + process(item, indent); + first = false; + } + } else { + builder.append(' '); + process(com.google.common.collect.Iterables.getOnlyElement(node.getSelectItems()), indent); + } + + builder.append('\n'); + + return null; + } + + @Override + public Void visitTable(Table node, Integer indent) { + builder.append(formatName(node.getName())); + return null; + } + + @Override + public Void visitUnion(Union node, Integer indent) { + Iterator relations = node.getRelations().iterator(); + + while (relations.hasNext()) { + processRelation(relations.next(), indent); + + if (relations.hasNext()) { + builder.append("UNION "); + if (!node.isDistinct()) { + builder.append("ALL "); + } + } + } + + return null; + } + + @Override + public Void visitExcept(Except node, Integer indent) { + processRelation(node.getLeft(), indent); + + builder.append("EXCEPT "); + if (!node.isDistinct()) { + builder.append("ALL "); + } + + processRelation(node.getRight(), indent); + + return null; + } + + @Override + public Void visitIntersect(Intersect node, Integer indent) { + Iterator relations = node.getRelations().iterator(); + + while (relations.hasNext()) { + processRelation(relations.next(), indent); + + if (relations.hasNext()) { + builder.append("INTERSECT "); + if (!node.isDistinct()) { + builder.append("ALL "); + } + } + } + + return null; + } + + @Override + public Void visitTableFunctionInvocation(TableFunctionInvocation node, Integer indent) { + append(indent, "TABLE("); + appendTableFunctionInvocation(node, indent + 1); + builder.append(")"); + return null; + } + + @Override + public Void visitTableArgument(TableFunctionTableArgument node, Integer indent) { + Relation relation = node.getTable(); + Node unaliased = + relation instanceof AliasedRelation ? ((AliasedRelation) relation).getRelation() : relation; + if (unaliased instanceof TableSubquery) { + unaliased = ((TableSubquery) unaliased).getQuery(); + } + builder.append("TABLE("); + process(unaliased, indent); + builder.append(")"); + if (relation instanceof AliasedRelation) { + AliasedRelation aliasedRelation = (AliasedRelation) relation; + builder.append(" AS ").append(formatName(aliasedRelation.getAlias())); + appendAliasColumns(builder, aliasedRelation.getColumnNames()); + } + if (node.getPartitionBy().isPresent()) { + builder.append("\n"); + append(indent, "PARTITION BY ") + .append( + node.getPartitionBy().get().stream() + .map(CommonQuerySqlFormatter::formatExpression) + .collect(joining(", "))); + } + node.getOrderBy() + .ifPresent( + orderBy -> { + builder.append("\n"); + append(indent, formatOrderBy(orderBy)); + }); + + return null; + } + + private void appendTableFunctionInvocation(TableFunctionInvocation node, Integer indent) { + builder.append(formatName(node.getName())).append("(\n"); + appendTableFunctionArguments(node.getArguments(), indent + 1); + builder.append(")"); + } + + private void appendTableFunctionArguments(List arguments, int indent) { + for (int i = 0; i < arguments.size(); i++) { + TableFunctionArgument argument = arguments.get(i); + if (argument.getName().isPresent()) { + append(indent, formatName(argument.getName().get())); + builder.append(" => "); + } else { + append(indent, ""); + } + Node value = argument.getValue(); + if (value instanceof Expression) { + builder.append(formatExpression((Expression) value)); + } else { + process(value, indent + 1); + } + if (i < arguments.size() - 1) { + builder.append(",\n"); + } + } + } + + protected static class SqlBuilder { + private final StringBuilder builder; + + public SqlBuilder(StringBuilder builder) { + this.builder = requireNonNull(builder, "builder is null"); + } + + @CanIgnoreReturnValue + public SqlBuilder append(CharSequence value) { + builder.append(value); + return this; + } + + @CanIgnoreReturnValue + public SqlBuilder append(char c) { + builder.append(c); + return this; + } + } + + @Override + public Void visitPatternRecognitionRelation(PatternRecognitionRelation node, Integer indent) { + processRelationSuffix(node.getInput(), indent); + + builder.append(" MATCH_RECOGNIZE (\n"); + if (!node.getPartitionBy().isEmpty()) { + append(indent + 1, "PARTITION BY ") + .append( + node.getPartitionBy().stream() + .map( + org.apache.iotdb.commons.queryengine.plan.relational.sql.util + .ExpressionFormatter + ::formatExpression) + .collect(joining(", "))) + .append("\n"); + } + if (node.getOrderBy().isPresent()) { + process(node.getOrderBy().get(), indent + 1); + } + if (!node.getMeasures().isEmpty()) { + append(indent + 1, "MEASURES"); + formatDefinitionList( + node.getMeasures().stream() + .map( + measure -> + formatExpression(measure.getExpression()) + + " AS " + + formatExpression(measure.getName())) + .collect(com.google.common.collect.ImmutableList.toImmutableList()), + indent + 2); + } + if (node.getRowsPerMatch().isPresent()) { + String rowsPerMatch; + switch (node.getRowsPerMatch().get()) { + case ONE: + rowsPerMatch = "ONE ROW PER MATCH"; + break; + case ALL_SHOW_EMPTY: + rowsPerMatch = "ALL ROWS PER MATCH SHOW EMPTY MATCHES"; + break; + case ALL_OMIT_EMPTY: + rowsPerMatch = "ALL ROWS PER MATCH OMIT EMPTY MATCHES"; + break; + case ALL_WITH_UNMATCHED: + rowsPerMatch = "ALL ROWS PER MATCH WITH UNMATCHED ROWS"; + break; + default: + throw new IllegalStateException( + "unexpected rowsPerMatch: " + node.getRowsPerMatch().get()); + } + append(indent + 1, rowsPerMatch).append("\n"); + } + if (node.getAfterMatchSkipTo().isPresent()) { + String skipTo; + switch (node.getAfterMatchSkipTo().get().getPosition()) { + case PAST_LAST: + skipTo = "AFTER MATCH SKIP PAST LAST ROW"; + break; + case NEXT: + skipTo = "AFTER MATCH SKIP TO NEXT ROW"; + break; + case LAST: + checkState( + node.getAfterMatchSkipTo().get().getIdentifier().isPresent(), + "missing identifier in AFTER MATCH SKIP TO LAST"); + skipTo = + "AFTER MATCH SKIP TO LAST " + + formatExpression(node.getAfterMatchSkipTo().get().getIdentifier().get()); + break; + case FIRST: + checkState( + node.getAfterMatchSkipTo().get().getIdentifier().isPresent(), + "missing identifier in AFTER MATCH SKIP TO FIRST"); + skipTo = + "AFTER MATCH SKIP TO FIRST " + + formatExpression(node.getAfterMatchSkipTo().get().getIdentifier().get()); + break; + default: + throw new IllegalStateException("unexpected skipTo: " + node.getAfterMatchSkipTo().get()); + } + append(indent + 1, skipTo).append("\n"); + } + append(indent + 1, "PATTERN (").append(formatPattern(node.getPattern())).append(")\n"); + if (!node.getSubsets().isEmpty()) { + append(indent + 1, "SUBSET"); + formatDefinitionList( + node.getSubsets().stream() + .map( + subset -> + formatExpression(subset.getName()) + + " = " + + subset.getIdentifiers().stream() + .map( + org.apache.iotdb.commons.queryengine.plan.relational.sql.util + .ExpressionFormatter + ::formatExpression) + .collect(joining(", ", "(", ")"))) + .collect(com.google.common.collect.ImmutableList.toImmutableList()), + indent + 2); + } + append(indent + 1, "DEFINE"); + formatDefinitionList( + node.getVariableDefinitions().stream() + .map( + variable -> + formatExpression(variable.getName()) + + " AS " + + formatExpression(variable.getExpression())) + .collect(com.google.common.collect.ImmutableList.toImmutableList()), + indent + 2); + + builder.append(")"); + + return null; + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ExpressionFormatter.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/util/ExpressionFormatter.java similarity index 68% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ExpressionFormatter.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/util/ExpressionFormatter.java index 52bd329cd68b5..d5efd01647c9b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/ExpressionFormatter.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/util/ExpressionFormatter.java @@ -17,72 +17,72 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.util; - -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AllColumns; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AllRows; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BetweenPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BinaryLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.BooleanLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Cast; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CoalesceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Columns; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentDatabase; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentTime; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.CurrentUser; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DecimalLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DereferenceExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DoubleLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExistsPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Expression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Extract; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FieldReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FloatLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FunctionCall; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericDataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GroupingElement; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GroupingSets; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InListExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.InPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNotNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.IsNullPredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LikePredicate; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Literal; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LogicalExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.LongLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NotExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullIfExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NullLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NumericParameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OrderBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Parameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QualifiedName; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Row; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleGroupBy; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SortItem; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SubqueryExpression; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TimeDurationLiteral; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Trim; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TypeParameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WhenClause; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Window; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowFrame; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowReference; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WindowSpecification; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.util; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AllColumns; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AllRows; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticBinaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ArithmeticUnaryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BetweenPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BinaryLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.BooleanLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Cast; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CoalesceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Columns; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentDatabase; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentTime; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CurrentUser; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DecimalLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DereferenceExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DoubleLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExistsPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Expression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Extract; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FieldReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FloatLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FrameBound; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.FunctionCall; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericDataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupingElement; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GroupingSets; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InListExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.InPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNotNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.IsNullPredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LikePredicate; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Literal; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LogicalExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.LongLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NotExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullIfExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NullLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NumericParameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OrderBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Parameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QualifiedName; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedComparisonExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Row; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SearchedCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleCaseExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SimpleGroupBy; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SortItem; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.StringLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SubqueryExpression; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.SymbolReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TimeDurationLiteral; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Trim; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TypeParameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WhenClause; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Window; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowFrame; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowReference; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.WindowSpecification; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; @@ -99,11 +99,9 @@ import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.joining; import static java.util.stream.Collectors.toList; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.util.CommonQuerySqlFormatter.formatName; +import static org.apache.iotdb.commons.queryengine.plan.relational.sql.util.ReservedIdentifiers.reserved; import static org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction.DATE_BIN; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.ast.FrameBound.Type.UNBOUNDED_PRECEDING; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.util.ReservedIdentifiers.reserved; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.util.SqlFormatter.formatName; -import static org.apache.iotdb.db.queryengine.plan.relational.sql.util.SqlFormatter.formatSql; public final class ExpressionFormatter { @@ -118,7 +116,13 @@ public static String formatExpression(Expression expression) { return new Formatter(Optional.empty(), Optional.empty()).process(expression, null); } - public static class Formatter extends AstVisitor { + private static String formatSql(Node root) { + StringBuilder builder = new StringBuilder(); + new CommonQuerySqlFormatter(builder).process(root, 0); + return builder.toString(); + } + + public static class Formatter implements CommonQueryAstVisitor { private final Optional> literalFormatter; private final Optional> symbolReferenceFormatter; @@ -131,19 +135,19 @@ public Formatter( } @Override - protected String visitNode(Node node, Void context) { + public String visitNode(Node node, Void context) { throw new UnsupportedOperationException(); } @Override - protected String visitRow(Row node, Void context) { + public String visitRow(Row node, Void context) { return node.getItems().stream() .map(child -> process(child, context)) .collect(joining(", ", "ROW (", ")")); } @Override - protected String visitExpression(Expression node, Void context) { + public String visitExpression(Expression node, Void context) { throw new UnsupportedOperationException( String.format( "not yet implemented: %s.visit%s", @@ -151,17 +155,17 @@ protected String visitExpression(Expression node, Void context) { } @Override - protected String visitCurrentDatabase(CurrentDatabase node, Void context) { + public String visitCurrentDatabase(CurrentDatabase node, Void context) { return "CURRENT_DATABASE"; } @Override - protected String visitCurrentUser(CurrentUser node, Void context) { + public String visitCurrentUser(CurrentUser node, Void context) { return "CURRENT_USER"; } @Override - protected String visitTrim(Trim node, Void context) { + public String visitTrim(Trim node, Void context) { if (!node.getTrimCharacter().isPresent()) { return String.format( "trim(%s FROM %s)", node.getSpecification(), process(node.getTrimSource(), context)); @@ -175,7 +179,7 @@ protected String visitTrim(Trim node, Void context) { } @Override - protected String visitCurrentTime(CurrentTime node, Void context) { + public String visitCurrentTime(CurrentTime node, Void context) { StringBuilder builder = new StringBuilder(); builder.append(node.getFunction().getName()); @@ -188,48 +192,48 @@ protected String visitCurrentTime(CurrentTime node, Void context) { } @Override - protected String visitExtract(Extract node, Void context) { + public String visitExtract(Extract node, Void context) { return "EXTRACT(" + node.getField() + " FROM " + process(node.getExpression(), context) + ")"; } @Override - protected String visitBooleanLiteral(BooleanLiteral node, Void context) { + public String visitBooleanLiteral(BooleanLiteral node, Void context) { return literalFormatter .map(formatter -> formatter.apply(node)) .orElseGet(() -> String.valueOf(node.getValue())); } @Override - protected String visitStringLiteral(StringLiteral node, Void context) { + public String visitStringLiteral(StringLiteral node, Void context) { return literalFormatter .map(formatter -> formatter.apply(node)) .orElseGet(() -> formatStringLiteral(node.getValue())); } @Override - protected String visitBinaryLiteral(BinaryLiteral node, Void context) { + public String visitBinaryLiteral(BinaryLiteral node, Void context) { return literalFormatter .map(formatter -> formatter.apply(node)) .orElseGet(() -> "X'" + node.toHexString() + "'"); } @Override - protected String visitParameter(Parameter node, Void context) { + public String visitParameter(Parameter node, Void context) { return "?"; } @Override - protected String visitAllRows(AllRows node, Void context) { + public String visitAllRows(AllRows node, Void context) { return "ALL"; } @Override - protected String visitLongLiteral(LongLiteral node, Void context) { + public String visitLongLiteral(LongLiteral node, Void context) { return literalFormatter.map(formatter -> formatter.apply(node)).orElseGet(node::getValue); } @Override - protected String visitDoubleLiteral(DoubleLiteral node, Void context) { + public String visitDoubleLiteral(DoubleLiteral node, Void context) { return literalFormatter .map(formatter -> formatter.apply(node)) .orElseGet(() -> doubleFormatter.get().format(node.getValue())); @@ -237,14 +241,14 @@ protected String visitDoubleLiteral(DoubleLiteral node, Void context) { // do not use doubleFormatter, to prevent from introducing the precision noise @Override - protected String visitFloatLiteral(FloatLiteral node, Void context) { + public String visitFloatLiteral(FloatLiteral node, Void context) { return literalFormatter .map(formatter -> formatter.apply(node)) .orElseGet(() -> String.valueOf(node.getValue())); } @Override - protected String visitDecimalLiteral(DecimalLiteral node, Void context) { + public String visitDecimalLiteral(DecimalLiteral node, Void context) { return literalFormatter .map(formatter -> formatter.apply(node)) // TODO return node value without "DECIMAL '..'" when @@ -253,14 +257,14 @@ protected String visitDecimalLiteral(DecimalLiteral node, Void context) { } @Override - protected String visitGenericLiteral(GenericLiteral node, Void context) { + public String visitGenericLiteral(GenericLiteral node, Void context) { return literalFormatter .map(formatter -> formatter.apply(node)) .orElseGet(() -> node.getType() + " " + formatStringLiteral(node.getValue())); } @Override - protected String visitNullLiteral(NullLiteral node, Void context) { + public String visitNullLiteral(NullLiteral node, Void context) { return literalFormatter.map(formatter -> formatter.apply(node)).orElse("null"); } @@ -270,17 +274,17 @@ public String visitTimeDurationLiteral(TimeDurationLiteral node, Void context) { } @Override - protected String visitSubqueryExpression(SubqueryExpression node, Void context) { + public String visitSubqueryExpression(SubqueryExpression node, Void context) { return "(" + formatSql(node.getQuery()) + ")"; } @Override - protected String visitExists(ExistsPredicate node, Void context) { + public String visitExists(ExistsPredicate node, Void context) { return "(EXISTS " + formatSql(node.getSubquery()) + ")"; } @Override - protected String visitIdentifier(Identifier node, Void context) { + public String visitIdentifier(Identifier node, Void context) { if (node.isDelimited() || reserved(node.getValue())) { return '"' + node.getValue().replace("\"", "\"\"") + '"'; } @@ -288,7 +292,7 @@ protected String visitIdentifier(Identifier node, Void context) { } @Override - protected String visitSymbolReference(SymbolReference node, Void context) { + public String visitSymbolReference(SymbolReference node, Void context) { if (symbolReferenceFormatter.isPresent()) { return symbolReferenceFormatter.get().apply(node); } @@ -300,7 +304,7 @@ private String formatIdentifier(String s) { } @Override - protected String visitDereferenceExpression(DereferenceExpression node, Void context) { + public String visitDereferenceExpression(DereferenceExpression node, Void context) { String baseString = process(node.getBase(), context); return baseString + "." + node.getField().map(this::process).orElse("*"); } @@ -312,7 +316,7 @@ public String visitFieldReference(FieldReference node, Void context) { } @Override - protected String visitFunctionCall(FunctionCall node, Void context) { + public String visitFunctionCall(FunctionCall node, Void context) { if (QualifiedName.of("LISTAGG").equals(node.getName())) { return visitListagg(node); } @@ -352,7 +356,7 @@ protected String visitFunctionCall(FunctionCall node, Void context) { } @Override - protected String visitLogicalExpression(LogicalExpression node, Void context) { + public String visitLogicalExpression(LogicalExpression node, Void context) { return "(" + node.getTerms().stream() .map(term -> process(term, context)) @@ -361,27 +365,27 @@ protected String visitLogicalExpression(LogicalExpression node, Void context) { } @Override - protected String visitNotExpression(NotExpression node, Void context) { + public String visitNotExpression(NotExpression node, Void context) { return "(NOT " + process(node.getValue(), context) + ")"; } @Override - protected String visitComparisonExpression(ComparisonExpression node, Void context) { + public String visitComparisonExpression(ComparisonExpression node, Void context) { return formatBinaryExpression(node.getOperator().getValue(), node.getLeft(), node.getRight()); } @Override - protected String visitIsNullPredicate(IsNullPredicate node, Void context) { + public String visitIsNullPredicate(IsNullPredicate node, Void context) { return "(" + process(node.getValue(), context) + " IS NULL)"; } @Override - protected String visitIsNotNullPredicate(IsNotNullPredicate node, Void context) { + public String visitIsNotNullPredicate(IsNotNullPredicate node, Void context) { return "(" + process(node.getValue(), context) + " IS NOT NULL)"; } @Override - protected String visitNullIfExpression(NullIfExpression node, Void context) { + public String visitNullIfExpression(NullIfExpression node, Void context) { return "NULLIF(" + process(node.getFirst(), context) + ", " @@ -390,7 +394,7 @@ protected String visitNullIfExpression(NullIfExpression node, Void context) { } @Override - protected String visitIfExpression(IfExpression node, Void context) { + public String visitIfExpression(IfExpression node, Void context) { StringBuilder builder = new StringBuilder(); builder .append("IF(") @@ -404,12 +408,12 @@ protected String visitIfExpression(IfExpression node, Void context) { } @Override - protected String visitCoalesceExpression(CoalesceExpression node, Void context) { + public String visitCoalesceExpression(CoalesceExpression node, Void context) { return "COALESCE(" + joinExpressions(node.getOperands()) + ")"; } @Override - protected String visitArithmeticUnary(ArithmeticUnaryExpression node, Void context) { + public String visitArithmeticUnary(ArithmeticUnaryExpression node, Void context) { String value = process(node.getValue(), context); switch (node.getSign()) { @@ -426,12 +430,12 @@ protected String visitArithmeticUnary(ArithmeticUnaryExpression node, Void conte } @Override - protected String visitArithmeticBinary(ArithmeticBinaryExpression node, Void context) { + public String visitArithmeticBinary(ArithmeticBinaryExpression node, Void context) { return formatBinaryExpression(node.getOperator().getValue(), node.getLeft(), node.getRight()); } @Override - protected String visitLikePredicate(LikePredicate node, Void context) { + public String visitLikePredicate(LikePredicate node, Void context) { StringBuilder builder = new StringBuilder(); builder @@ -449,7 +453,7 @@ protected String visitLikePredicate(LikePredicate node, Void context) { } @Override - protected String visitAllColumns(AllColumns node, Void context) { + public String visitAllColumns(AllColumns node, Void context) { StringBuilder builder = new StringBuilder(); if (node.getTarget().isPresent()) { builder.append(process(node.getTarget().get(), context)); @@ -481,7 +485,7 @@ public String visitCast(Cast node, Void context) { } @Override - protected String visitSearchedCaseExpression(SearchedCaseExpression node, Void context) { + public String visitSearchedCaseExpression(SearchedCaseExpression node, Void context) { ImmutableList.Builder parts = ImmutableList.builder(); parts.add("CASE"); for (WhenClause whenClause : node.getWhenClauses()) { @@ -496,7 +500,7 @@ protected String visitSearchedCaseExpression(SearchedCaseExpression node, Void c } @Override - protected String visitSimpleCaseExpression(SimpleCaseExpression node, Void context) { + public String visitSimpleCaseExpression(SimpleCaseExpression node, Void context) { ImmutableList.Builder parts = ImmutableList.builder(); parts.add("CASE").add(process(node.getOperand(), context)); @@ -513,7 +517,7 @@ protected String visitSimpleCaseExpression(SimpleCaseExpression node, Void conte } @Override - protected String visitWhenClause(WhenClause node, Void context) { + public String visitWhenClause(WhenClause node, Void context) { return "WHEN " + process(node.getOperand(), context) + " THEN " @@ -521,7 +525,7 @@ protected String visitWhenClause(WhenClause node, Void context) { } @Override - protected String visitBetweenPredicate(BetweenPredicate node, Void context) { + public String visitBetweenPredicate(BetweenPredicate node, Void context) { return "(" + process(node.getValue(), context) + " BETWEEN " @@ -532,7 +536,7 @@ protected String visitBetweenPredicate(BetweenPredicate node, Void context) { } @Override - protected String visitInPredicate(InPredicate node, Void context) { + public String visitInPredicate(InPredicate node, Void context) { return "(" + process(node.getValue(), context) + " IN " @@ -541,12 +545,12 @@ protected String visitInPredicate(InPredicate node, Void context) { } @Override - protected String visitInListExpression(InListExpression node, Void context) { + public String visitInListExpression(InListExpression node, Void context) { return "(" + joinExpressions(node.getValues()) + ")"; } @Override - protected String visitQuantifiedComparisonExpression( + public String visitQuantifiedComparisonExpression( QuantifiedComparisonExpression node, Void context) { return String.format( "(%s %s %s %s)", @@ -557,7 +561,7 @@ protected String visitQuantifiedComparisonExpression( } @Override - protected String visitGenericDataType(GenericDataType node, Void context) { + public String visitGenericDataType(GenericDataType node, Void context) { StringBuilder result = new StringBuilder(); result.append(node.getName()); @@ -570,17 +574,17 @@ protected String visitGenericDataType(GenericDataType node, Void context) { } @Override - protected String visitTypeParameter(TypeParameter node, Void context) { + public String visitTypeParameter(TypeParameter node, Void context) { return process(node.getValue(), context); } @Override - protected String visitNumericTypeParameter(NumericParameter node, Void context) { + public String visitNumericTypeParameter(NumericParameter node, Void context) { return node.getValue(); } @Override - protected String visitColumns(Columns node, Void context) { + public String visitColumns(Columns node, Void context) { return "COLUMNS(" + (node.isColumnsAsterisk() ? "*" : node.getPattern()) + ")"; } @@ -714,7 +718,7 @@ private static String formatFrameBound(FrameBound frameBound) { } } - static String formatGroupBy(List groupingElements) { + public static String formatGroupBy(List groupingElements) { return groupingElements.stream() .map( groupingElement -> { diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/util/ReservedIdentifiers.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/util/ReservedIdentifiers.java new file mode 100644 index 0000000000000..e7fd081dce24e --- /dev/null +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/util/ReservedIdentifiers.java @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.commons.queryengine.plan.relational.sql.util; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.CaseInsensitiveStream; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.parser.ParsingException; +import org.apache.iotdb.db.relational.grammar.sql.RelationalSqlLexer; +import org.apache.iotdb.db.relational.grammar.sql.RelationalSqlParser; + +import org.antlr.v4.runtime.ANTLRErrorListener; +import org.antlr.v4.runtime.BaseErrorListener; +import org.antlr.v4.runtime.CharStreams; +import org.antlr.v4.runtime.CommonTokenStream; +import org.antlr.v4.runtime.RecognitionException; +import org.antlr.v4.runtime.Recognizer; +import org.antlr.v4.runtime.Token; + +import java.util.Set; + +import static com.google.common.collect.ImmutableSet.toImmutableSet; +import static org.apache.iotdb.db.relational.grammar.sql.RelationalSqlKeywords.sqlKeywords; + +public final class ReservedIdentifiers { + + private static final ANTLRErrorListener ERROR_LISTENER = + new BaseErrorListener() { + @Override + public void syntaxError( + Recognizer recognizer, + Object offendingSymbol, + int line, + int charPositionInLine, + String message, + RecognitionException e) { + throw new ParsingException(message, e, line, charPositionInLine + 1); + } + }; + + private ReservedIdentifiers() {} + + public static Set reservedIdentifiers() { + return sqlKeywords().stream() + .filter(ReservedIdentifiers::reserved) + .sorted() + .collect(toImmutableSet()); + } + + public static boolean reserved(final String name) { + try { + RelationalSqlLexer lexer = + new RelationalSqlLexer(new CaseInsensitiveStream(CharStreams.fromString(name))); + CommonTokenStream tokenStream = new CommonTokenStream(lexer); + RelationalSqlParser parser = new RelationalSqlParser(tokenStream); + + lexer.removeErrorListeners(); + lexer.addErrorListener(ERROR_LISTENER); + + parser.removeErrorListeners(); + parser.addErrorListener(ERROR_LISTENER); + + parser.identifier(); + return parser.getCurrentToken().getType() != Token.EOF; + } catch (final ParsingException ignored) { + return true; + } + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/RowPatternFormatter.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/util/RowPatternFormatter.java similarity index 54% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/RowPatternFormatter.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/util/RowPatternFormatter.java index e9eb828b29415..33d795065b7e0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/util/RowPatternFormatter.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/sql/util/RowPatternFormatter.java @@ -17,23 +17,23 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.sql.util; - -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AnchorPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.AstVisitor; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.EmptyPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ExcludedPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Node; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.OneOrMoreQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternAlternation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternConcatenation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternPermutation; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.PatternVariable; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.QuantifiedPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RangeQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.RowPattern; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ZeroOrMoreQuantifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ZeroOrOneQuantifier; +package org.apache.iotdb.commons.queryengine.plan.relational.sql.util; + +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.AnchorPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.CommonQueryAstVisitor; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.EmptyPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ExcludedPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Node; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.OneOrMoreQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternAlternation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternConcatenation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternPermutation; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.PatternVariable; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.QuantifiedPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RangeQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.RowPattern; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ZeroOrMoreQuantifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.ZeroOrOneQuantifier; import static java.util.stream.Collectors.joining; @@ -44,14 +44,14 @@ public static String formatPattern(RowPattern pattern) { return new Formatter().process(pattern, null); } - public static class Formatter extends AstVisitor { + public static class Formatter implements CommonQueryAstVisitor { @Override - protected String visitNode(Node node, Void context) { + public String visitNode(Node node, Void context) { throw new UnsupportedOperationException(); } @Override - protected String visitRowPattern(RowPattern node, Void context) { + public String visitRowPattern(RowPattern node, Void context) { throw new UnsupportedOperationException( String.format( "not yet implemented: %s.visit%s", @@ -59,21 +59,21 @@ protected String visitRowPattern(RowPattern node, Void context) { } @Override - protected String visitPatternAlternation(PatternAlternation node, Void context) { + public String visitPatternAlternation(PatternAlternation node, Void context) { return node.getPatterns().stream() .map(child -> process(child, context)) .collect(joining(" | ", "(", ")")); } @Override - protected String visitPatternConcatenation(PatternConcatenation node, Void context) { + public String visitPatternConcatenation(PatternConcatenation node, Void context) { return node.getPatterns().stream() .map(child -> process(child, context)) .collect(joining(" ", "(", ")")); } @Override - protected String visitQuantifiedPattern(QuantifiedPattern node, Void context) { + public String visitQuantifiedPattern(QuantifiedPattern node, Void context) { return "(" + process(node.getPattern(), context) + process(node.getPatternQuantifier(), context) @@ -81,24 +81,24 @@ protected String visitQuantifiedPattern(QuantifiedPattern node, Void context) { } @Override - protected String visitPatternVariable(PatternVariable node, Void context) { + public String visitPatternVariable(PatternVariable node, Void context) { return ExpressionFormatter.formatExpression(node.getName()); } @Override - protected String visitEmptyPattern(EmptyPattern node, Void context) { + public String visitEmptyPattern(EmptyPattern node, Void context) { return "()"; } @Override - protected String visitPatternPermutation(PatternPermutation node, Void context) { + public String visitPatternPermutation(PatternPermutation node, Void context) { return node.getPatterns().stream() .map(child -> process(child, context)) .collect(joining(", ", "PERMUTE(", ")")); } @Override - protected String visitAnchorPattern(AnchorPattern node, Void context) { + public String visitAnchorPattern(AnchorPattern node, Void context) { switch (node.getType()) { case PARTITION_START: return "^"; @@ -110,30 +110,30 @@ protected String visitAnchorPattern(AnchorPattern node, Void context) { } @Override - protected String visitExcludedPattern(ExcludedPattern node, Void context) { + public String visitExcludedPattern(ExcludedPattern node, Void context) { return "{-" + process(node.getPattern(), context) + "-}"; } @Override - protected String visitZeroOrMoreQuantifier(ZeroOrMoreQuantifier node, Void context) { + public String visitZeroOrMoreQuantifier(ZeroOrMoreQuantifier node, Void context) { String greedy = node.isGreedy() ? "" : "?"; return "*" + greedy; } @Override - protected String visitOneOrMoreQuantifier(OneOrMoreQuantifier node, Void context) { + public String visitOneOrMoreQuantifier(OneOrMoreQuantifier node, Void context) { String greedy = node.isGreedy() ? "" : "?"; return "+" + greedy; } @Override - protected String visitZeroOrOneQuantifier(ZeroOrOneQuantifier node, Void context) { + public String visitZeroOrOneQuantifier(ZeroOrOneQuantifier node, Void context) { String greedy = node.isGreedy() ? "" : "?"; return "?" + greedy; } @Override - protected String visitRangeQuantifier(RangeQuantifier node, Void context) { + public String visitRangeQuantifier(RangeQuantifier node, Void context) { String greedy = node.isGreedy() ? "" : "?"; String atLeast = node.getAtLeast().map(ExpressionFormatter::formatExpression).orElse(""); String atMost = node.getAtMost().map(ExpressionFormatter::formatExpression).orElse(""); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/InternalTypeManager.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/InternalTypeManager.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/InternalTypeManager.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/InternalTypeManager.java index 5719a4555ff12..c3d2fcd880fc9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/InternalTypeManager.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/InternalTypeManager.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.type; +package org.apache.iotdb.commons.queryengine.plan.relational.type; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/NamedTypeSignature.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/NamedTypeSignature.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/NamedTypeSignature.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/NamedTypeSignature.java index b0b8e76edc68f..63b1436e578b8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/NamedTypeSignature.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/NamedTypeSignature.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.type; +package org.apache.iotdb.commons.queryengine.plan.relational.type; import com.google.errorprone.annotations.Immutable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/ParameterKind.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/ParameterKind.java similarity index 92% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/ParameterKind.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/ParameterKind.java index f52cb50946bdc..fabb735ef3c7d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/ParameterKind.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/ParameterKind.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.type; +package org.apache.iotdb.commons.queryengine.plan.relational.type; public enum ParameterKind { TYPE, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/RowFieldName.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/RowFieldName.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/RowFieldName.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/RowFieldName.java index d1896d8a9ee97..18df01e3e24c6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/RowFieldName.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/RowFieldName.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.type; +package org.apache.iotdb.commons.queryengine.plan.relational.type; import com.google.errorprone.annotations.Immutable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/StandardTypes.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/StandardTypes.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/StandardTypes.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/StandardTypes.java index 37ae2db6a2129..3edcab8654fc5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/StandardTypes.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/StandardTypes.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.type; +package org.apache.iotdb.commons.queryengine.plan.relational.type; public class StandardTypes { public static final String BIGINT = "bigint"; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeId.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeId.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeId.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeId.java index 9f445377fbbe5..4340249f49415 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeId.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeId.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.type; +package org.apache.iotdb.commons.queryengine.plan.relational.type; import java.util.Objects; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeManager.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeManager.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeManager.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeManager.java index a39947aa4d3c8..0ad32a60615c8 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeManager.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeManager.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.type; +package org.apache.iotdb.commons.queryengine.plan.relational.type; import org.apache.tsfile.read.common.type.Type; @@ -25,7 +25,8 @@ public interface TypeManager { /** * Gets the type with the specified signature. * - * @throws TypeNotFoundException if not found + * @throws org.apache.iotdb.commons.queryengine.plan.relational.type.TypeNotFoundException if not + * found */ Type getType(TypeSignature signature); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeNotFoundException.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeNotFoundException.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeNotFoundException.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeNotFoundException.java index 99df1101bda46..9d3460b9488cd 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeNotFoundException.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeNotFoundException.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.type; +package org.apache.iotdb.commons.queryengine.plan.relational.type; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeSignature.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeSignature.java similarity index 95% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeSignature.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeSignature.java index f6977d7a6a028..f848c665e485c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeSignature.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeSignature.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.type; +package org.apache.iotdb.commons.queryengine.plan.relational.type; import com.google.errorprone.annotations.FormatMethod; import com.google.errorprone.annotations.Immutable; @@ -31,8 +31,8 @@ import static java.lang.String.format; import static java.util.Arrays.asList; -import static org.apache.iotdb.db.queryengine.plan.relational.type.StandardTypes.TIME_WITH_TIME_ZONE; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureParameter.typeParameter; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.StandardTypes.TIME_WITH_TIME_ZONE; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureParameter.typeParameter; @Immutable public class TypeSignature { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeSignatureParameter.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeSignatureParameter.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeSignatureParameter.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeSignatureParameter.java index 9f12515e874a2..2a55d4f1c7294 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeSignatureParameter.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeSignatureParameter.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.type; +package org.apache.iotdb.commons.queryengine.plan.relational.type; import com.google.errorprone.annotations.Immutable; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeSignatureTranslator.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeSignatureTranslator.java similarity index 80% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeSignatureTranslator.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeSignatureTranslator.java index 9390cd4826a24..fec8adba91539 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/type/TypeSignatureTranslator.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/type/TypeSignatureTranslator.java @@ -17,15 +17,15 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.type; +package org.apache.iotdb.commons.queryengine.plan.relational.type; -import org.apache.iotdb.db.exception.sql.SemanticException; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.DataTypeParameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.GenericDataType; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Identifier; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.NumericParameter; -import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.TypeParameter; +import org.apache.iotdb.commons.exception.SemanticException; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.DataTypeParameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.GenericDataType; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.Identifier; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.NumericParameter; +import org.apache.iotdb.commons.queryengine.plan.relational.sql.ast.TypeParameter; import com.google.common.collect.ImmutableList; import org.apache.tsfile.read.common.type.Type; @@ -35,9 +35,9 @@ import java.util.Set; import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureParameter.numericParameter; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureParameter.typeParameter; -import static org.apache.iotdb.db.queryengine.plan.relational.type.TypeSignatureParameter.typeVariable; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureParameter.numericParameter; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureParameter.typeParameter; +import static org.apache.iotdb.commons.queryengine.plan.relational.type.TypeSignatureParameter.typeVariable; public class TypeSignatureTranslator { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/ResultColumnAppender.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/utils/ResultColumnAppender.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/ResultColumnAppender.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/utils/ResultColumnAppender.java index 7748f39382d5d..57e86fd137be7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/ResultColumnAppender.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/utils/ResultColumnAppender.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils; +package org.apache.iotdb.commons.queryengine.plan.relational.utils; import org.apache.iotdb.udf.api.relational.access.Record; import org.apache.iotdb.udf.api.type.Type; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/TypeUtil.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/utils/TypeUtil.java similarity index 96% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/TypeUtil.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/utils/TypeUtil.java index fe951d1e4ce10..e9255b3071bdb 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/utils/TypeUtil.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/relational/utils/TypeUtil.java @@ -16,11 +16,11 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.queryengine.plan.relational.utils; +package org.apache.iotdb.commons.queryengine.plan.relational.utils; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.FlatHashStrategy; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.HashStrategy; -import org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.XxHash64; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.FlatHashStrategy; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.HashStrategy; +import org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.XxHash64; import org.apache.tsfile.block.column.Column; import org.apache.tsfile.block.column.ColumnBuilder; @@ -48,8 +48,8 @@ import static java.lang.Double.doubleToLongBits; import static java.lang.Float.floatToIntBits; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.XxHash64.FALSE_XX_HASH; -import static org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.grouped.hash.XxHash64.TRUE_XX_HASH; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.XxHash64.FALSE_XX_HASH; +import static org.apache.iotdb.commons.queryengine.execution.operator.source.relational.aggregation.grouped.hash.XxHash64.TRUE_XX_HASH; import static org.apache.tsfile.read.common.type.BooleanType.BOOLEAN; import static org.apache.tsfile.read.common.type.DateType.DATE; import static org.apache.tsfile.read.common.type.IntType.INT32; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/FillPolicy.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/statement/component/FillPolicy.java similarity index 93% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/FillPolicy.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/statement/component/FillPolicy.java index 4100faffa5090..507eda6d1b8e5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/component/FillPolicy.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/statement/component/FillPolicy.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.statement.component; +package org.apache.iotdb.commons.queryengine.plan.statement.component; public enum FillPolicy { PREVIOUS((byte) 0), diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/BuiltinAggregationFunction.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/BuiltinAggregationFunction.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/BuiltinAggregationFunction.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/BuiltinAggregationFunction.java index 2913ddf86db4e..1c3c5aba15b6c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/BuiltinAggregationFunction.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/BuiltinAggregationFunction.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.udf; +package org.apache.iotdb.commons.queryengine.plan.udf; import java.util.Arrays; import java.util.HashSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/BuiltinScalarFunction.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/BuiltinScalarFunction.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/BuiltinScalarFunction.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/BuiltinScalarFunction.java index f47b738cc89d1..881abc0d7b624 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/BuiltinScalarFunction.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/BuiltinScalarFunction.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.udf; +package org.apache.iotdb.commons.queryengine.plan.udf; import com.google.common.collect.ImmutableSet; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/BuiltinTimeSeriesGeneratingFunction.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/BuiltinTimeSeriesGeneratingFunction.java similarity index 99% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/BuiltinTimeSeriesGeneratingFunction.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/BuiltinTimeSeriesGeneratingFunction.java index 533ab2d97ecc8..c9cca33b8ae2b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/BuiltinTimeSeriesGeneratingFunction.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/BuiltinTimeSeriesGeneratingFunction.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.udf; +package org.apache.iotdb.commons.queryengine.plan.udf; import org.apache.iotdb.commons.udf.builtin.String.UDTFConcat; import org.apache.iotdb.commons.udf.builtin.String.UDTFEndsWith; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/TableUDFUtils.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/TableUDFUtils.java similarity index 67% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/TableUDFUtils.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/TableUDFUtils.java index 861bc701a4927..0e23cfcf1d026 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/TableUDFUtils.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/TableUDFUtils.java @@ -17,22 +17,50 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.udf; +package org.apache.iotdb.commons.queryengine.plan.udf; import org.apache.iotdb.common.rpc.thrift.FunctionType; import org.apache.iotdb.common.rpc.thrift.Model; +import org.apache.iotdb.commons.queryengine.plan.relational.function.ITableFunctionAINodeService; +import org.apache.iotdb.commons.queryengine.plan.relational.function.ITableFunctionAINodeServiceProvider; import org.apache.iotdb.commons.udf.UDFInformation; import org.apache.iotdb.udf.api.exception.UDFException; import org.apache.iotdb.udf.api.relational.AggregateFunction; import org.apache.iotdb.udf.api.relational.ScalarFunction; import org.apache.iotdb.udf.api.relational.TableFunction; +import java.util.ServiceLoader; + public class TableUDFUtils { + private static final ITableFunctionAINodeService EMPTY_AI_NODE_SERVICE = + req -> { + throw new UnsupportedOperationException( + "Table function AINode service is not available in current node"); + }; + private static final ITableFunctionAINodeService AI_NODE_SERVICE = loadAINodeService(); + private TableUDFUtils() { // private constructor } + private static ITableFunctionAINodeService loadAINodeService() { + ITableFunctionAINodeService aiNodeService = null; + ServiceLoader loader = + ServiceLoader.load(ITableFunctionAINodeServiceProvider.class); + for (ITableFunctionAINodeServiceProvider provider : loader) { + if (aiNodeService != null) { + throw new IllegalStateException("Multiple ITableFunctionAINodeServiceProvider found"); + } + aiNodeService = provider.getTableFunctionAINodeService(); + } + return aiNodeService == null ? EMPTY_AI_NODE_SERVICE : aiNodeService; + } + + public static ITableFunctionAINodeService getTableFunctionAINodeService() { + return AI_NODE_SERVICE; + } + public static boolean isScalarFunction(String functionName) { UDFInformation information = UDFManagementService.getInstance().getUDFInformation(Model.TABLE, functionName); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/UDFManagementService.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/UDFManagementService.java similarity index 98% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/UDFManagementService.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/UDFManagementService.java index 14acfa529e39b..e75dc6174918a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/UDFManagementService.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/UDFManagementService.java @@ -17,9 +17,10 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.udf; +package org.apache.iotdb.commons.queryengine.plan.udf; import org.apache.iotdb.common.rpc.thrift.Model; +import org.apache.iotdb.commons.queryengine.plan.relational.function.TableBuiltinTableFunction; import org.apache.iotdb.commons.udf.UDFInformation; import org.apache.iotdb.commons.udf.UDFTable; import org.apache.iotdb.commons.udf.UDFType; @@ -29,7 +30,6 @@ import org.apache.iotdb.commons.udf.service.UDFClassLoaderManager; import org.apache.iotdb.commons.udf.service.UDFExecutableManager; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.queryengine.plan.relational.function.TableBuiltinTableFunction; import org.apache.iotdb.udf.api.UDF; import org.apache.iotdb.udf.api.exception.UDFException; import org.apache.iotdb.udf.api.exception.UDFManagementException; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/UDTFForecast.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/UDTFForecast.java similarity index 91% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/UDTFForecast.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/UDTFForecast.java index efcc4c82eaa33..48ea964a4ce48 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/udf/UDTFForecast.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/plan/udf/UDTFForecast.java @@ -17,16 +17,11 @@ * under the License. */ -package org.apache.iotdb.db.queryengine.plan.udf; +package org.apache.iotdb.commons.queryengine.plan.udf; import org.apache.iotdb.ainode.rpc.thrift.TForecastReq; import org.apache.iotdb.ainode.rpc.thrift.TForecastResp; -import org.apache.iotdb.commons.client.IClientManager; -import org.apache.iotdb.commons.client.exception.ClientManagerException; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.db.exception.ainode.AINodeConnectionException; -import org.apache.iotdb.db.protocol.client.an.AINodeClient; -import org.apache.iotdb.db.protocol.client.an.AINodeClientManager; import org.apache.iotdb.rpc.TSStatusCode; import org.apache.iotdb.udf.api.UDTF; import org.apache.iotdb.udf.api.access.Row; @@ -36,7 +31,6 @@ import org.apache.iotdb.udf.api.customizer.strategy.RowByRowAccessStrategy; import org.apache.iotdb.udf.api.type.Type; -import org.apache.thrift.TException; import org.apache.tsfile.enums.TSDataType; import org.apache.tsfile.read.common.block.TsBlock; import org.apache.tsfile.read.common.block.TsBlockBuilder; @@ -54,8 +48,6 @@ public class UDTFForecast implements UDTF { private static final TsBlockSerde serde = new TsBlockSerde(); - private static final IClientManager CLIENT_MANAGER = - AINodeClientManager.getInstance(); private String model_id; private int maxInputLength; private int outputLength; @@ -209,16 +201,11 @@ private TsBlock forecast() throws Exception { TsBlock inputData = inputTsBlockBuilder.build(); - TForecastResp resp; - try (AINodeClient client = - CLIENT_MANAGER.borrowClient(AINodeClientManager.AINODE_ID_PLACEHOLDER)) { - resp = - client.forecast( - new TForecastReq(model_id, serde.serialize(inputData), outputLength) - .setOptions(options)); - } catch (ClientManagerException | TException e) { - throw new AINodeConnectionException(e); - } + TForecastResp resp = + TableUDFUtils.getTableFunctionAINodeService() + .forecast( + new TForecastReq(model_id, serde.serialize(inputData), outputLength) + .setOptions(options)); if (resp.getStatus().getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) { throw new IoTDBRuntimeException( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/DateTimeUtils.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/utils/DateTimeUtils.java similarity index 76% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/DateTimeUtils.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/utils/DateTimeUtils.java index 63e577407cb02..ccab91ba0a996 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/DateTimeUtils.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/utils/DateTimeUtils.java @@ -16,21 +16,11 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.utils; +package org.apache.iotdb.commons.queryengine.utils; import org.apache.iotdb.commons.conf.CommonDescriptor; import org.apache.iotdb.commons.exception.IoTDBRuntimeException; -import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.protocol.session.SessionManager; -import org.apache.iotdb.db.qp.sql.IoTDBSqlParser; -import org.apache.iotdb.db.qp.sql.SqlLexer; -import org.apache.iotdb.db.queryengine.plan.parser.ASTVisitor; -import org.apache.iotdb.db.queryengine.plan.parser.SqlParseError; - -import org.antlr.v4.runtime.CharStream; -import org.antlr.v4.runtime.CharStreams; -import org.antlr.v4.runtime.CommonTokenStream; -import org.antlr.v4.runtime.atn.PredictionMode; + import org.apache.tsfile.utils.DateUtils; import org.apache.tsfile.utils.TimeDuration; @@ -46,7 +36,6 @@ import java.time.format.ResolverStyle; import java.time.format.SignStyle; import java.time.temporal.ChronoField; -import java.util.Calendar; import java.util.TimeZone; import java.util.concurrent.TimeUnit; import java.util.function.Function; @@ -61,6 +50,10 @@ private DateTimeUtils() { private static String timestampPrecision; + public static String getTimestampPrecision() { + return timestampPrecision; + } + public static long correctPrecision(long millis) { try { switch (timestampPrecision) { @@ -616,158 +609,6 @@ public static long convertDatetimeStrToLong( return getInstantWithPrecision(str, timestampPrecision); } - /** - * Convert duration string to time value. CurrentTime is used to calculate the days of natural - * month. If it's set as -1, which means a context free situation, then '1mo' will be thought as - * 30 days. - * - * @param duration represent duration string like: 12d8m9ns, 1y1mo, etc. - * @return time in milliseconds, microseconds, or nanoseconds depending on the profile - */ - public static long convertDurationStrToLong(String duration) { - return convertDurationStrToLong(-1, duration, false); - } - - public static long convertDurationStrToLong(String duration, boolean convertYearToMonth) { - return convertDurationStrToLong(-1, duration, convertYearToMonth); - } - - public static long convertDurationStrToLong( - String duration, String timestampPrecision, boolean convertYearToMonth) { - return convertDurationStrToLong(-1, duration, timestampPrecision, convertYearToMonth); - } - - public static long convertDurationStrToLong( - long currentTime, String duration, boolean convertYearToMonth) { - return convertDurationStrToLong( - currentTime, - duration, - CommonDescriptor.getInstance().getConfig().getTimestampPrecision(), - convertYearToMonth); - } - - /** - * convert duration string to time value. - * - * @param duration represent duration string like: 12d8m9ns, 1y1mo, etc. - * @param convertYearToMonth if we need convert year to month. eg: 1y -> 12mo - * @return time in milliseconds, microseconds, or nanoseconds depending on the profile - */ - public static long convertDurationStrToLong( - long currentTime, String duration, String timestampPrecision, boolean convertYearToMonth) { - long total = 0; - long temp = 0; - for (int i = 0; i < duration.length(); i++) { - char ch = duration.charAt(i); - if (Character.isDigit(ch)) { - temp *= 10; - temp += (ch - '0'); - } else { - String unit = String.valueOf(duration.charAt(i)); - // This is to identify units with two letters. - if (i + 1 < duration.length() && !Character.isDigit(duration.charAt(i + 1))) { - i++; - unit += duration.charAt(i); - } - unit = unit.toLowerCase(); - if (convertYearToMonth && unit.equals("y")) { - temp *= 12; - unit = "mo"; - } - total += - DateTimeUtils.convertDurationStrToLong( - currentTime == -1 ? -1 : currentTime + total, temp, unit, timestampPrecision); - temp = 0; - } - } - return total; - } - - @TestOnly - public static long convertDurationStrToLongForTest( - long value, String unit, String timestampPrecision) { - return convertDurationStrToLong(-1, value, unit, timestampPrecision); - } - - /** convert duration string to millisecond, microsecond or nanosecond. */ - public static long convertDurationStrToLong( - long currentTime, long value, String unit, String timestampPrecision) { - DurationUnit durationUnit = DurationUnit.valueOf(unit); - long res = value; - switch (durationUnit) { - case y: - case year: - res *= 365 * 86_400_000L; - break; - case mo: - case month: - if (currentTime == -1) { - res *= 30 * 86_400_000L; - } else { - Calendar calendar = Calendar.getInstance(); - calendar.setTimeZone(SessionManager.getInstance().getSessionTimeZone()); - calendar.setTimeInMillis(currentTime); - calendar.add(Calendar.MONTH, (int) (value)); - res = calendar.getTimeInMillis() - currentTime; - } - break; - case w: - case week: - res *= 7 * 86_400_000L; - break; - case d: - case day: - res *= 86_400_000L; - break; - case h: - case hour: - res *= 3_600_000L; - break; - case m: - case minute: - res *= 60_000L; - break; - case s: - case second: - res *= 1_000L; - break; - default: - break; - } - - if ("us".equals(timestampPrecision) || "microsecond".equals(timestampPrecision)) { - if (unit.equals(DurationUnit.ns.toString()) - || unit.equals(DurationUnit.nanosecond.toString())) { - return value / 1000; - } else if (unit.equals(DurationUnit.us.toString()) - || unit.equals(DurationUnit.microsecond.toString())) { - return value; - } else { - return res * 1000; - } - } else if ("ns".equals(timestampPrecision) || "nanosecond".equals(timestampPrecision)) { - if (unit.equals(DurationUnit.ns.toString()) - || unit.equals(DurationUnit.nanosecond.toString())) { - return value; - } else if (unit.equals(DurationUnit.us.toString()) - || unit.equals(DurationUnit.microsecond.toString())) { - return value * 1000; - } else { - return res * 1000_000; - } - } else { - if (unit.equals(DurationUnit.ns.toString()) - || unit.equals(DurationUnit.nanosecond.toString())) { - return value / 1000_000; - } else if (unit.equals(DurationUnit.us.toString()) - || unit.equals(DurationUnit.microsecond.toString())) { - return value / 1000; - } else { - return res; - } - } - } - public static TimeUnit timestampPrecisionStringToTimeUnit(String timestampPrecision) { if ("us".equals(timestampPrecision) || "microsecond".equals(timestampPrecision)) { return TimeUnit.MICROSECONDS; @@ -885,73 +726,6 @@ public static long calcPositiveIntervalByMonth( startTime, duration, TimeZone.getTimeZone(zoneId), TimestampPrecisionUtils.currPrecision); } - /** - * Storage the duration into two parts: month part and non-month part, the non-month part's - * precision is depended on current time precision. e.g. ms precision: '1y1mo1ms' -> monthDuration - * = 13, nonMonthDuration = 1, ns precision: '1y1mo1ms' -> monthDuration = 13, nonMonthDuration = - * 1000_000. - * - * @param duration the input duration string - * @return the TimeDuration instance contains month part and non-month part - */ - public static TimeDuration constructTimeDuration(String duration) { - duration = duration.toLowerCase(); - String currTimePrecision = CommonDescriptor.getInstance().getConfig().getTimestampPrecision(); - long temp = 0; - long monthDuration = 0; - long nonMonthDuration = 0; - int i = 0; - for (; i < duration.length(); i++) { - char ch = duration.charAt(i); - if (Character.isDigit(ch)) { - temp *= 10; - temp += (ch - '0'); - } else { - StringBuilder unit = new StringBuilder(String.valueOf(duration.charAt(i))); - i++; - // This is to identify units. - while (i < duration.length() && !Character.isDigit(duration.charAt(i))) { - unit.append(duration.charAt(i)); - i++; - } - i--; - if ("y".contentEquals(unit) || "year".contentEquals(unit)) { - monthDuration += temp * 12; - temp = 0; - continue; - } - if ("mo".contentEquals(unit) || "month".contentEquals(unit)) { - monthDuration += temp; - temp = 0; - continue; - } - nonMonthDuration += - DateTimeUtils.convertDurationStrToLong(-1, temp, unit.toString(), currTimePrecision); - temp = 0; - } - } - return new TimeDuration((int) monthDuration, nonMonthDuration); - } - - public static Long parseDateTimeExpressionToLong(String dateExpression, ZoneId zoneId) { - ASTVisitor astVisitor = new ASTVisitor(); - astVisitor.setZoneId(zoneId); - - CharStream charStream1 = CharStreams.fromString(dateExpression); - - SqlLexer lexer1 = new SqlLexer(charStream1); - lexer1.removeErrorListeners(); - lexer1.addErrorListener(SqlParseError.INSTANCE); - - CommonTokenStream tokens1 = new CommonTokenStream(lexer1); - - IoTDBSqlParser parser1 = new IoTDBSqlParser(tokens1); - parser1.getInterpreter().setPredictionMode(PredictionMode.SLL); - parser1.removeErrorListeners(); - parser1.addErrorListener(SqlParseError.INSTANCE); - return astVisitor.parseDateExpression(parser1.dateExpression(), timestampPrecision); - } - public static Integer parseDateExpressionToInt(String dateExpression) { return DateUtils.parseDateExpressionToInt(dateExpression); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/TimestampPrecisionUtils.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/utils/TimestampPrecisionUtils.java similarity index 97% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/TimestampPrecisionUtils.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/utils/TimestampPrecisionUtils.java index 1dee0a9738f26..54d1c70a679be 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/TimestampPrecisionUtils.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/utils/TimestampPrecisionUtils.java @@ -16,10 +16,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.iotdb.db.utils; +package org.apache.iotdb.commons.queryengine.utils; import org.apache.iotdb.commons.conf.CommonDescriptor; -import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.commons.exception.SemanticException; import java.util.concurrent.TimeUnit; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/cte/CteDataStore.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/utils/cte/CteDataStore.java similarity index 86% rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/cte/CteDataStore.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/utils/cte/CteDataStore.java index cb37759e20099..d2cbcc17fa55b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/cte/CteDataStore.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/queryengine/utils/cte/CteDataStore.java @@ -19,12 +19,12 @@ * */ -package org.apache.iotdb.db.utils.cte; +package org.apache.iotdb.commons.queryengine.utils.cte; +import org.apache.iotdb.commons.conf.CommonConfig; +import org.apache.iotdb.commons.conf.CommonDescriptor; +import org.apache.iotdb.commons.queryengine.plan.relational.metadata.TableSchema; import org.apache.iotdb.commons.utils.TestOnly; -import org.apache.iotdb.db.conf.IoTDBConfig; -import org.apache.iotdb.db.conf.IoTDBDescriptor; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema; import org.apache.tsfile.read.common.block.TsBlock; import org.apache.tsfile.utils.Accountable; @@ -58,11 +58,11 @@ public CteDataStore(TableSchema tableSchema, List columnIndex2TsBlockCo } public boolean addTsBlock(TsBlock tsBlock) { - IoTDBConfig iotConfig = IoTDBDescriptor.getInstance().getConfig(); + CommonConfig config = CommonDescriptor.getInstance().getConfig(); long bytesSize = tsBlock.getRetainedSizeInBytes(); int rows = tsBlock.getPositionCount(); - if (bytesSize + cachedBytes >= iotConfig.getCteBufferSize() - || rows + cachedRows >= iotConfig.getMaxRowsInCteBuffer()) { + if (bytesSize + cachedBytes >= config.getCteBufferSize() + || rows + cachedRows >= config.getMaxRowsInCteBuffer()) { return false; } cachedData.add(tsBlock); diff --git a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/IConsensusRequest.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/request/IConsensusRequest.java similarity index 96% rename from iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/IConsensusRequest.java rename to iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/request/IConsensusRequest.java index cae54c2bcbcbc..541d62eb55ed3 100644 --- a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/common/request/IConsensusRequest.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/request/IConsensusRequest.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.iotdb.consensus.common.request; +package org.apache.iotdb.commons.request; import java.nio.ByteBuffer; diff --git a/iotdb-core/pom.xml b/iotdb-core/pom.xml index afa8ba25d26b5..7566dbd82adf1 100644 --- a/iotdb-core/pom.xml +++ b/iotdb-core/pom.xml @@ -37,6 +37,7 @@ metrics node-commons relational-grammar + calc-commons