This is an automated email from the ASF dual-hosted git repository.
chenyz pushed a commit to branch rel/1.2
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/1.2 by this push:
new 56ac549caa4 [To rel/1.2][IOTDB-6147] Alter view does not check the
source path (#11123)
56ac549caa4 is described below
commit 56ac549caa4b1dc92d96a801733c6ac0be510fe2
Author: Chen YZ <[email protected]>
AuthorDate: Wed Sep 13 15:04:54 2023 +0800
[To rel/1.2][IOTDB-6147] Alter view does not check the source path (#11123)
---
.../db/queryengine/plan/analyze/Analyzer.java | 13 +-
.../plan/execution/config/ConfigExecution.java | 8 +-
.../plan/execution/config/ConfigTaskVisitor.java | 200 +++++++++------------
.../config/executor/ClusterConfigTaskExecutor.java | 29 +--
.../config/executor/IConfigTaskExecutor.java | 8 +-
.../config/metadata/CreateContinuousQueryTask.java | 13 +-
.../config/metadata/model/CreateModelTask.java | 7 +-
.../config/metadata/view/AlterLogicalViewTask.java | 10 +-
8 files changed, 132 insertions(+), 156 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analyzer.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analyzer.java
index 3dddc67ed68..f7ca04f7d05 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analyzer.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/Analyzer.java
@@ -25,7 +25,6 @@ import
org.apache.iotdb.db.queryengine.plan.analyze.schema.ClusterSchemaFetcher;
import org.apache.iotdb.db.queryengine.plan.analyze.schema.ISchemaFetcher;
import org.apache.iotdb.db.queryengine.plan.statement.Statement;
-import static org.apache.iotdb.db.queryengine.common.QueryId.MOCK_QUERY_ID;
import static
org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet.ANALYZER;
/** Analyze the statement and generate Analysis. */
@@ -53,15 +52,9 @@ public class Analyzer {
return analysis;
}
- public static void validate(Statement statement) {
- Analyzer analyzer = getAnalyzer();
- analyzer.analyze(statement);
- }
-
- public static Analyzer getAnalyzer() {
+ public static Analysis analyze(Statement statement, MPPQueryContext context)
{
return new Analyzer(
- new MPPQueryContext(MOCK_QUERY_ID),
- ClusterPartitionFetcher.getInstance(),
- ClusterSchemaFetcher.getInstance());
+ context, ClusterPartitionFetcher.getInstance(),
ClusterSchemaFetcher.getInstance())
+ .analyze(statement);
}
}
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 54f6583b56e..e549f713278 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
@@ -81,13 +81,7 @@ public class ConfigExecution implements IQueryExecution {
this.executor = executor;
this.stateMachine = new QueryStateMachine(context.getQueryId(), executor);
this.taskFuture = SettableFuture.create();
- this.task =
- statement.accept(
- new ConfigTaskVisitor(),
- new ConfigTaskVisitor.TaskContext(
- context.getQueryId().getId(),
- context.getSql(),
- context.getSession() == null ? null :
context.getSession().getUserName()));
+ this.task = statement.accept(new ConfigTaskVisitor(), context);
this.resultSetConsumed = false;
configTaskExecutor = ClusterConfigTaskExecutor.getInstance();
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigTaskVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigTaskVisitor.java
index 57b6a3cbad9..8e438fcabad 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigTaskVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/ConfigTaskVisitor.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.queryengine.plan.execution.config;
+import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
import
org.apache.iotdb.db.queryengine.plan.execution.config.metadata.CountDatabaseTask;
import
org.apache.iotdb.db.queryengine.plan.execution.config.metadata.CountTimeSlotListTask;
import
org.apache.iotdb.db.queryengine.plan.execution.config.metadata.CreateContinuousQueryTask;
@@ -53,7 +54,6 @@ import
org.apache.iotdb.db.queryengine.plan.execution.config.metadata.UnSetTTLTa
import
org.apache.iotdb.db.queryengine.plan.execution.config.metadata.model.CreateModelTask;
import
org.apache.iotdb.db.queryengine.plan.execution.config.metadata.model.DropModelTask;
import
org.apache.iotdb.db.queryengine.plan.execution.config.metadata.model.ShowModelsTask;
-import
org.apache.iotdb.db.queryengine.plan.execution.config.metadata.model.ShowTrailsTask;
import
org.apache.iotdb.db.queryengine.plan.execution.config.metadata.template.AlterSchemaTemplateTask;
import
org.apache.iotdb.db.queryengine.plan.execution.config.metadata.template.CreateSchemaTemplateTask;
import
org.apache.iotdb.db.queryengine.plan.execution.config.metadata.template.DeactivateSchemaTemplateTask;
@@ -118,7 +118,6 @@ import
org.apache.iotdb.db.queryengine.plan.statement.metadata.UnSetTTLStatement
import
org.apache.iotdb.db.queryengine.plan.statement.metadata.model.CreateModelStatement;
import
org.apache.iotdb.db.queryengine.plan.statement.metadata.model.DropModelStatement;
import
org.apache.iotdb.db.queryengine.plan.statement.metadata.model.ShowModelsStatement;
-import
org.apache.iotdb.db.queryengine.plan.statement.metadata.model.ShowTrailsStatement;
import
org.apache.iotdb.db.queryengine.plan.statement.metadata.pipe.CreatePipeStatement;
import
org.apache.iotdb.db.queryengine.plan.statement.metadata.pipe.DropPipeStatement;
import
org.apache.iotdb.db.queryengine.plan.statement.metadata.pipe.ShowPipesStatement;
@@ -149,70 +148,72 @@ import
org.apache.iotdb.db.queryengine.plan.statement.sys.quota.ShowSpaceQuotaSt
import
org.apache.iotdb.db.queryengine.plan.statement.sys.quota.ShowThrottleQuotaStatement;
import org.apache.iotdb.tsfile.exception.NotImplementedException;
-public class ConfigTaskVisitor
- extends StatementVisitor<IConfigTask, ConfigTaskVisitor.TaskContext> {
+public class ConfigTaskVisitor extends StatementVisitor<IConfigTask,
MPPQueryContext> {
@Override
- public IConfigTask visitNode(StatementNode node, TaskContext context) {
+ public IConfigTask visitNode(StatementNode node, MPPQueryContext context) {
throw new UnsupportedOperationException(
"Unsupported statement type: " + node.getClass().getName());
}
@Override
- public IConfigTask visitStatement(Statement statement, TaskContext context) {
+ public IConfigTask visitStatement(Statement statement, MPPQueryContext
context) {
throw new NotImplementedException("ConfigTask is not implemented for: " +
statement);
}
@Override
- public IConfigTask visitSetDatabase(DatabaseSchemaStatement statement,
TaskContext context) {
+ public IConfigTask visitSetDatabase(DatabaseSchemaStatement statement,
MPPQueryContext context) {
return new DatabaseSchemaTask(statement);
}
@Override
- public IConfigTask visitAlterDatabase(DatabaseSchemaStatement statement,
TaskContext context) {
+ public IConfigTask visitAlterDatabase(
+ DatabaseSchemaStatement statement, MPPQueryContext context) {
return new DatabaseSchemaTask(statement);
}
@Override
public IConfigTask visitDeleteStorageGroup(
- DeleteDatabaseStatement statement, TaskContext context) {
+ DeleteDatabaseStatement statement, MPPQueryContext context) {
return new DeleteStorageGroupTask(statement);
}
@Override
- public IConfigTask visitShowStorageGroup(ShowDatabaseStatement statement,
TaskContext context) {
+ public IConfigTask visitShowStorageGroup(
+ ShowDatabaseStatement statement, MPPQueryContext context) {
return new ShowDatabaseTask(statement);
}
@Override
- public IConfigTask visitCountStorageGroup(CountDatabaseStatement statement,
TaskContext context) {
+ public IConfigTask visitCountStorageGroup(
+ CountDatabaseStatement statement, MPPQueryContext context) {
return new CountDatabaseTask(statement);
}
@Override
- public IConfigTask visitSetTTL(SetTTLStatement statement, TaskContext
context) {
+ public IConfigTask visitSetTTL(SetTTLStatement statement, MPPQueryContext
context) {
return new SetTTLTask(statement);
}
@Override
- public IConfigTask visitUnSetTTL(UnSetTTLStatement statement, TaskContext
context) {
+ public IConfigTask visitUnSetTTL(UnSetTTLStatement statement,
MPPQueryContext context) {
return new UnSetTTLTask(statement);
}
@Override
- public IConfigTask visitShowTTL(ShowTTLStatement showTTLStatement,
TaskContext context) {
+ public IConfigTask visitShowTTL(ShowTTLStatement showTTLStatement,
MPPQueryContext context) {
return new ShowTTLTask(showTTLStatement);
}
@Override
public IConfigTask visitShowVariables(
- ShowVariablesStatement showVariablesStatement, TaskContext context) {
+ ShowVariablesStatement showVariablesStatement, MPPQueryContext context) {
return new ShowVariablesTask();
}
@Override
public IConfigTask visitShowCluster(
- ShowClusterStatement showClusterStatement, TaskContext context) {
+ ShowClusterStatement showClusterStatement, MPPQueryContext context) {
if (showClusterStatement.isDetails()) {
return new ShowClusterDetailsTask(showClusterStatement);
} else {
@@ -221,335 +222,312 @@ public class ConfigTaskVisitor
}
@Override
- public IConfigTask visitAuthor(AuthorStatement statement, TaskContext
context) {
+ public IConfigTask visitAuthor(AuthorStatement statement, MPPQueryContext
context) {
return new AuthorizerTask(statement);
}
@Override
- public IConfigTask visitMerge(MergeStatement mergeStatement, TaskContext
context) {
+ public IConfigTask visitMerge(MergeStatement mergeStatement, MPPQueryContext
context) {
return new MergeTask(mergeStatement);
}
@Override
- public IConfigTask visitFlush(FlushStatement flushStatement, TaskContext
context) {
+ public IConfigTask visitFlush(FlushStatement flushStatement, MPPQueryContext
context) {
return new FlushTask(flushStatement);
}
@Override
- public IConfigTask visitClearCache(ClearCacheStatement clearCacheStatement,
TaskContext context) {
+ public IConfigTask visitClearCache(
+ ClearCacheStatement clearCacheStatement, MPPQueryContext context) {
return new ClearCacheTask(clearCacheStatement);
}
@Override
public IConfigTask visitLoadConfiguration(
- LoadConfigurationStatement loadConfigurationStatement, TaskContext
context) {
+ LoadConfigurationStatement loadConfigurationStatement, MPPQueryContext
context) {
return new LoadConfigurationTask(loadConfigurationStatement);
}
@Override
public IConfigTask visitSetSystemStatus(
- SetSystemStatusStatement setSystemStatusStatement, TaskContext context) {
+ SetSystemStatusStatement setSystemStatusStatement, MPPQueryContext
context) {
return new SetSystemStatusTask(setSystemStatusStatement);
}
@Override
- public IConfigTask visitKillQuery(KillQueryStatement killQueryStatement,
TaskContext context) {
+ public IConfigTask visitKillQuery(
+ KillQueryStatement killQueryStatement, MPPQueryContext context) {
return new KillQueryTask(killQueryStatement);
}
@Override
public IConfigTask visitCreateFunction(
- CreateFunctionStatement createFunctionStatement, TaskContext context) {
+ CreateFunctionStatement createFunctionStatement, MPPQueryContext
context) {
return new CreateFunctionTask(createFunctionStatement);
}
@Override
public IConfigTask visitDropFunction(
- DropFunctionStatement dropFunctionStatement, TaskContext context) {
+ DropFunctionStatement dropFunctionStatement, MPPQueryContext context) {
return new DropFunctionTask(dropFunctionStatement);
}
@Override
public IConfigTask visitShowFunctions(
- ShowFunctionsStatement showFunctionsStatement, TaskContext context) {
+ ShowFunctionsStatement showFunctionsStatement, MPPQueryContext context) {
return new ShowFunctionsTask();
}
@Override
public IConfigTask visitCreateTrigger(
- CreateTriggerStatement createTriggerStatement, TaskContext context) {
+ CreateTriggerStatement createTriggerStatement, MPPQueryContext context) {
return new CreateTriggerTask(createTriggerStatement);
}
@Override
public IConfigTask visitDropTrigger(
- DropTriggerStatement dropTriggerStatement, TaskContext context) {
+ DropTriggerStatement dropTriggerStatement, MPPQueryContext context) {
return new DropTriggerTask(dropTriggerStatement);
}
@Override
public IConfigTask visitShowTriggers(
- ShowTriggersStatement showTriggersStatement, TaskContext context) {
+ ShowTriggersStatement showTriggersStatement, MPPQueryContext context) {
return new ShowTriggersTask();
}
@Override
public IConfigTask visitCreatePipePlugin(
- CreatePipePluginStatement createPipePluginStatement, TaskContext
context) {
+ CreatePipePluginStatement createPipePluginStatement, MPPQueryContext
context) {
return new CreatePipePluginTask(createPipePluginStatement);
}
@Override
public IConfigTask visitDropPipePlugin(
- DropPipePluginStatement dropPipePluginStatement, TaskContext context) {
+ DropPipePluginStatement dropPipePluginStatement, MPPQueryContext
context) {
return new DropPipePluginTask(dropPipePluginStatement);
}
@Override
public IConfigTask visitShowPipePlugins(
- ShowPipePluginsStatement showPipePluginStatement, TaskContext context) {
+ ShowPipePluginsStatement showPipePluginStatement, MPPQueryContext
context) {
return new ShowPipePluginsTask();
}
@Override
- public IConfigTask visitShowRegion(ShowRegionStatement showRegionStatement,
TaskContext context) {
+ public IConfigTask visitShowRegion(
+ ShowRegionStatement showRegionStatement, MPPQueryContext context) {
return new ShowRegionTask(showRegionStatement);
}
@Override
public IConfigTask visitCreateSchemaTemplate(
- CreateSchemaTemplateStatement createSchemaTemplateStatement, TaskContext
context) {
+ CreateSchemaTemplateStatement createSchemaTemplateStatement,
MPPQueryContext context) {
return new CreateSchemaTemplateTask(createSchemaTemplateStatement);
}
@Override
public IConfigTask visitShowNodesInSchemaTemplate(
- ShowNodesInSchemaTemplateStatement showNodesInSchemaTemplateStatement,
TaskContext context) {
+ ShowNodesInSchemaTemplateStatement showNodesInSchemaTemplateStatement,
+ MPPQueryContext context) {
return new
ShowNodesInSchemaTemplateTask(showNodesInSchemaTemplateStatement);
}
@Override
public IConfigTask visitShowSchemaTemplate(
- ShowSchemaTemplateStatement showSchemaTemplateStatement, TaskContext
context) {
+ ShowSchemaTemplateStatement showSchemaTemplateStatement, MPPQueryContext
context) {
return new ShowSchemaTemplateTask(showSchemaTemplateStatement);
}
@Override
public IConfigTask visitSetSchemaTemplate(
- SetSchemaTemplateStatement setSchemaTemplateStatement, TaskContext
context) {
- return new SetSchemaTemplateTask(context.getQueryId(),
setSchemaTemplateStatement);
+ SetSchemaTemplateStatement setSchemaTemplateStatement, MPPQueryContext
context) {
+ return new SetSchemaTemplateTask(context.getQueryId().getId(),
setSchemaTemplateStatement);
}
@Override
public IConfigTask visitShowPathSetTemplate(
- ShowPathSetTemplateStatement showPathSetTemplateStatement, TaskContext
context) {
+ ShowPathSetTemplateStatement showPathSetTemplateStatement,
MPPQueryContext context) {
return new ShowPathSetTemplateTask(showPathSetTemplateStatement);
}
@Override
public IConfigTask visitDeactivateTemplate(
- DeactivateTemplateStatement deactivateTemplateStatement, TaskContext
context) {
- return new DeactivateSchemaTemplateTask(context.getQueryId(),
deactivateTemplateStatement);
+ DeactivateTemplateStatement deactivateTemplateStatement, MPPQueryContext
context) {
+ return new DeactivateSchemaTemplateTask(
+ context.getQueryId().getId(), deactivateTemplateStatement);
}
@Override
public IConfigTask visitUnsetSchemaTemplate(
- UnsetSchemaTemplateStatement unsetSchemaTemplateStatement, TaskContext
context) {
- return new UnsetSchemaTemplateTask(context.getQueryId(),
unsetSchemaTemplateStatement);
+ UnsetSchemaTemplateStatement unsetSchemaTemplateStatement,
MPPQueryContext context) {
+ return new UnsetSchemaTemplateTask(context.getQueryId().getId(),
unsetSchemaTemplateStatement);
}
@Override
public IConfigTask visitDropSchemaTemplate(
- DropSchemaTemplateStatement dropSchemaTemplateStatement, TaskContext
context) {
+ DropSchemaTemplateStatement dropSchemaTemplateStatement, MPPQueryContext
context) {
return new DropSchemaTemplateTask(dropSchemaTemplateStatement);
}
@Override
public IConfigTask visitAlterSchemaTemplate(
- AlterSchemaTemplateStatement alterSchemaTemplateStatement, TaskContext
context) {
- return new AlterSchemaTemplateTask(alterSchemaTemplateStatement,
context.getQueryId());
+ AlterSchemaTemplateStatement alterSchemaTemplateStatement,
MPPQueryContext context) {
+ return new AlterSchemaTemplateTask(alterSchemaTemplateStatement,
context.getQueryId().getId());
}
@Override
public IConfigTask visitShowDataNodes(
- ShowDataNodesStatement showDataNodesStatement, TaskContext context) {
+ ShowDataNodesStatement showDataNodesStatement, MPPQueryContext context) {
return new ShowDataNodesTask(showDataNodesStatement);
}
@Override
public IConfigTask visitShowConfigNodes(
- ShowConfigNodesStatement showConfigNodesStatement, TaskContext context) {
+ ShowConfigNodesStatement showConfigNodesStatement, MPPQueryContext
context) {
return new ShowConfigNodesTask();
}
@Override
- public IConfigTask visitShowPipes(ShowPipesStatement showPipesStatement,
TaskContext context) {
+ public IConfigTask visitShowPipes(
+ ShowPipesStatement showPipesStatement, MPPQueryContext context) {
return new ShowPipeTask(showPipesStatement);
}
@Override
- public IConfigTask visitDropPipe(DropPipeStatement dropPipeStatement,
TaskContext context) {
+ public IConfigTask visitDropPipe(DropPipeStatement dropPipeStatement,
MPPQueryContext context) {
return new DropPipeTask(dropPipeStatement);
}
@Override
- public IConfigTask visitCreatePipe(CreatePipeStatement createPipeStatement,
TaskContext context) {
+ public IConfigTask visitCreatePipe(
+ CreatePipeStatement createPipeStatement, MPPQueryContext context) {
return new CreatePipeTask(createPipeStatement);
}
@Override
- public IConfigTask visitStartPipe(StartPipeStatement startPipeStatement,
TaskContext context) {
+ public IConfigTask visitStartPipe(
+ StartPipeStatement startPipeStatement, MPPQueryContext context) {
return new StartPipeTask(startPipeStatement);
}
@Override
- public IConfigTask visitStopPipe(StopPipeStatement stopPipeStatement,
TaskContext context) {
+ public IConfigTask visitStopPipe(StopPipeStatement stopPipeStatement,
MPPQueryContext context) {
return new StopPipeTask(stopPipeStatement);
}
@Override
public IConfigTask visitDeleteTimeseries(
- DeleteTimeSeriesStatement deleteTimeSeriesStatement, TaskContext
context) {
- return new DeleteTimeSeriesTask(context.getQueryId(),
deleteTimeSeriesStatement);
+ DeleteTimeSeriesStatement deleteTimeSeriesStatement, MPPQueryContext
context) {
+ return new DeleteTimeSeriesTask(context.getQueryId().getId(),
deleteTimeSeriesStatement);
}
@Override
public IConfigTask visitDeleteLogicalView(
- DeleteLogicalViewStatement deleteLogicalViewStatement, TaskContext
context) {
- return new DeleteLogicalViewTask(context.getQueryId(),
deleteLogicalViewStatement);
+ DeleteLogicalViewStatement deleteLogicalViewStatement, MPPQueryContext
context) {
+ return new DeleteLogicalViewTask(context.getQueryId().getId(),
deleteLogicalViewStatement);
}
@Override
public IConfigTask visitRenameLogicalView(
- RenameLogicalViewStatement renameLogicalViewStatement, TaskContext
context) {
- return new RenameLogicalViewTask(context.queryId,
renameLogicalViewStatement);
+ RenameLogicalViewStatement renameLogicalViewStatement, MPPQueryContext
context) {
+ return new RenameLogicalViewTask(context.getQueryId().getId(),
renameLogicalViewStatement);
}
@Override
public IConfigTask visitAlterLogicalView(
- AlterLogicalViewStatement alterLogicalViewStatement, TaskContext
context) {
- return new AlterLogicalViewTask(context.queryId,
alterLogicalViewStatement);
+ AlterLogicalViewStatement alterLogicalViewStatement, MPPQueryContext
context) {
+ return new AlterLogicalViewTask(alterLogicalViewStatement, context);
}
@Override
public IConfigTask visitGetRegionId(
- GetRegionIdStatement getRegionIdStatement, TaskContext context) {
+ GetRegionIdStatement getRegionIdStatement, MPPQueryContext context) {
return new GetRegionIdTask(getRegionIdStatement);
}
@Override
public IConfigTask visitGetSeriesSlotList(
- GetSeriesSlotListStatement getSeriesSlotListStatement, TaskContext
context) {
+ GetSeriesSlotListStatement getSeriesSlotListStatement, MPPQueryContext
context) {
return new GetSeriesSlotListTask(getSeriesSlotListStatement);
}
@Override
public IConfigTask visitGetTimeSlotList(
- GetTimeSlotListStatement getTimeSlotListStatement, TaskContext context) {
+ GetTimeSlotListStatement getTimeSlotListStatement, MPPQueryContext
context) {
return new GetTimeSlotListTask(getTimeSlotListStatement);
}
@Override
public IConfigTask visitCountTimeSlotList(
- CountTimeSlotListStatement countTimeSlotListStatement, TaskContext
context) {
+ CountTimeSlotListStatement countTimeSlotListStatement, MPPQueryContext
context) {
return new CountTimeSlotListTask(countTimeSlotListStatement);
}
@Override
public IConfigTask visitMigrateRegion(
- MigrateRegionStatement migrateRegionStatement, TaskContext context) {
+ MigrateRegionStatement migrateRegionStatement, MPPQueryContext context) {
return new MigrateRegionTask(migrateRegionStatement);
}
@Override
public IConfigTask visitCreateContinuousQuery(
- CreateContinuousQueryStatement createContinuousQueryStatement,
TaskContext context) {
- return new CreateContinuousQueryTask(
- createContinuousQueryStatement, context.sql, context.username);
+ CreateContinuousQueryStatement createContinuousQueryStatement,
MPPQueryContext context) {
+ return new CreateContinuousQueryTask(createContinuousQueryStatement,
context);
}
@Override
public IConfigTask visitDropContinuousQuery(
- DropContinuousQueryStatement dropContinuousQueryStatement, TaskContext
context) {
+ DropContinuousQueryStatement dropContinuousQueryStatement,
MPPQueryContext context) {
return new DropContinuousQueryTask(dropContinuousQueryStatement);
}
@Override
public IConfigTask visitShowContinuousQueries(
- ShowContinuousQueriesStatement showContinuousQueriesStatement,
TaskContext context) {
+ ShowContinuousQueriesStatement showContinuousQueriesStatement,
MPPQueryContext context) {
return new ShowContinuousQueriesTask();
}
@Override
public IConfigTask visitSetSpaceQuota(
- SetSpaceQuotaStatement setSpaceQuotaStatement, TaskContext context) {
+ SetSpaceQuotaStatement setSpaceQuotaStatement, MPPQueryContext context) {
return new SetSpaceQuotaTask(setSpaceQuotaStatement);
}
@Override
public IConfigTask visitShowSpaceQuota(
- ShowSpaceQuotaStatement showSpaceQuotaStatement, TaskContext context) {
+ ShowSpaceQuotaStatement showSpaceQuotaStatement, MPPQueryContext
context) {
return new ShowSpaceQuotaTask(showSpaceQuotaStatement);
}
@Override
public IConfigTask visitSetThrottleQuota(
- SetThrottleQuotaStatement setThrottleQuotaStatement, TaskContext
context) {
+ SetThrottleQuotaStatement setThrottleQuotaStatement, MPPQueryContext
context) {
return new SetThrottleQuotaTask(setThrottleQuotaStatement);
}
@Override
public IConfigTask visitShowThrottleQuota(
- ShowThrottleQuotaStatement showThrottleQuotaStatement, TaskContext
context) {
+ ShowThrottleQuotaStatement showThrottleQuotaStatement, MPPQueryContext
context) {
return new ShowThrottleQuotaTask(showThrottleQuotaStatement);
}
/** ML Model Management */
@Override
public IConfigTask visitCreateModel(
- CreateModelStatement createModelStatement, TaskContext context) {
- return new CreateModelTask(createModelStatement);
+ CreateModelStatement createModelStatement, MPPQueryContext context) {
+ return new CreateModelTask(createModelStatement, context);
}
@Override
- public IConfigTask visitDropModel(DropModelStatement dropModelStatement,
TaskContext context) {
+ public IConfigTask visitDropModel(
+ DropModelStatement dropModelStatement, MPPQueryContext context) {
return new DropModelTask(dropModelStatement.getModelId());
}
@Override
- public IConfigTask visitShowModels(ShowModelsStatement showModelsStatement,
TaskContext context) {
+ public IConfigTask visitShowModels(
+ ShowModelsStatement showModelsStatement, MPPQueryContext context) {
return new ShowModelsTask();
}
-
- @Override
- public IConfigTask visitShowTrails(ShowTrailsStatement showTrailsStatement,
TaskContext context) {
- return new ShowTrailsTask(showTrailsStatement.getModelId());
- }
-
- public static class TaskContext {
-
- private final String queryId;
-
- private final String sql;
-
- private final String username;
-
- public TaskContext(String queryId, String sql, String username) {
- this.queryId = queryId;
- this.sql = sql;
- this.username = username;
- }
-
- public String getQueryId() {
- return queryId;
- }
-
- public String getSql() {
- return sql;
- }
-
- public String getUsername() {
- return username;
- }
- }
}
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 1f25a869d04..4db84eeee04 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
@@ -105,6 +105,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.client.DataNodeClientPoolFactory;
+import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
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;
@@ -1792,14 +1793,20 @@ public class ClusterConfigTaskExecutor implements
IConfigTaskExecutor {
@Override
public SettableFuture<ConfigTaskResult> alterLogicalView(
- String queryId, AlterLogicalViewStatement alterLogicalViewStatement) {
+ AlterLogicalViewStatement alterLogicalViewStatement, MPPQueryContext
context) {
SettableFuture<ConfigTaskResult> future = SettableFuture.create();
CreateLogicalViewStatement createLogicalViewStatement = new
CreateLogicalViewStatement();
createLogicalViewStatement.setTargetPaths(alterLogicalViewStatement.getTargetPaths());
createLogicalViewStatement.setSourcePaths(alterLogicalViewStatement.getSourcePaths());
createLogicalViewStatement.setQueryStatement(alterLogicalViewStatement.getQueryStatement());
- Analyzer.validate(createLogicalViewStatement);
+ Analysis analysis = Analyzer.analyze(createLogicalViewStatement, context);
+ if (analysis.isFailed()) {
+ future.setException(
+ new IoTDBException(
+ analysis.getFailStatus().getMessage(),
analysis.getFailStatus().getCode()));
+ return future;
+ }
// Transform all Expressions into ViewExpressions.
TransformToViewExpressionVisitor transformToViewExpressionVisitor =
@@ -1824,7 +1831,8 @@ public class ClusterConfigTaskExecutor implements
IConfigTaskExecutor {
}
TAlterLogicalViewReq req =
- new TAlterLogicalViewReq(queryId,
ByteBuffer.wrap(stream.toByteArray()));
+ new TAlterLogicalViewReq(
+ context.getQueryId().getId(),
ByteBuffer.wrap(stream.toByteArray()));
try (ConfigNodeClient client =
CLUSTER_DELETION_CONFIG_NODE_CLIENT_MANAGER.borrowClient(ConfigNodeInfo.CONFIG_REGION_ID))
{
TSStatus tsStatus;
@@ -2007,12 +2015,12 @@ public class ClusterConfigTaskExecutor implements
IConfigTaskExecutor {
@Override
public SettableFuture<ConfigTaskResult> createContinuousQuery(
- CreateContinuousQueryStatement createContinuousQueryStatement, String
sql, String username) {
+ CreateContinuousQueryStatement createContinuousQueryStatement,
MPPQueryContext context) {
createContinuousQueryStatement.semanticCheck();
String queryBody = createContinuousQueryStatement.getQueryBody();
// TODO Do not modify Statement in Analyzer
- Analyzer.validate(createContinuousQueryStatement.getQueryBodyStatement());
+ Analyzer.analyze(createContinuousQueryStatement.getQueryBodyStatement(),
context);
SettableFuture<ConfigTaskResult> future = SettableFuture.create();
try (ConfigNodeClient client =
@@ -2026,9 +2034,9 @@ public class ClusterConfigTaskExecutor implements
IConfigTaskExecutor {
createContinuousQueryStatement.getEndTimeOffset(),
createContinuousQueryStatement.getTimeoutPolicy().getType(),
queryBody,
- sql,
+ context.getSql(),
createContinuousQueryStatement.getZoneId(),
- username);
+ context.getSession() == null ? null :
context.getSession().getUserName());
final TSStatus executionStatus = client.createCQ(tCreateCQReq);
if (TSStatusCode.SUCCESS_STATUS.getStatusCode() !=
executionStatus.getCode()) {
LOGGER.warn(
@@ -2112,11 +2120,10 @@ public class ClusterConfigTaskExecutor implements
IConfigTaskExecutor {
}
@Override
- public SettableFuture<ConfigTaskResult> createModel(CreateModelStatement
createModelStatement) {
+ public SettableFuture<ConfigTaskResult> createModel(
+ CreateModelStatement createModelStatement, MPPQueryContext context) {
createModelStatement.semanticCheck();
-
- Analyzer analyzer = Analyzer.getAnalyzer();
- Analysis analysis =
analyzer.analyze(createModelStatement.getQueryStatement());
+ Analysis analysis =
Analyzer.analyze(createModelStatement.getQueryStatement(), context);
List<String> queryExpressions = new ArrayList<>();
for (Expression expression : analysis.getSelectExpressions()) {
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 895f81cd9be..6af15690cf3 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
@@ -23,6 +23,7 @@ import org.apache.iotdb.common.rpc.thrift.TFlushReq;
import org.apache.iotdb.commons.cluster.NodeStatus;
import org.apache.iotdb.confignode.rpc.thrift.TSpaceQuotaResp;
import org.apache.iotdb.confignode.rpc.thrift.TThrottleQuotaResp;
+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.statement.metadata.CountDatabaseStatement;
import
org.apache.iotdb.db.queryengine.plan.statement.metadata.CountTimeSlotListStatement;
@@ -172,7 +173,7 @@ public interface IConfigTaskExecutor {
String queryId, RenameLogicalViewStatement renameLogicalViewStatement);
SettableFuture<ConfigTaskResult> alterLogicalView(
- String queryId, AlterLogicalViewStatement alterLogicalViewStatement);
+ AlterLogicalViewStatement alterLogicalViewStatement, MPPQueryContext
context);
SettableFuture<ConfigTaskResult> getRegionId(GetRegionIdStatement
getRegionIdStatement);
@@ -188,7 +189,7 @@ public interface IConfigTaskExecutor {
SettableFuture<ConfigTaskResult> migrateRegion(MigrateRegionStatement
migrateRegionStatement);
SettableFuture<ConfigTaskResult> createContinuousQuery(
- CreateContinuousQueryStatement createContinuousQueryStatement, String
sql, String username);
+ CreateContinuousQueryStatement createContinuousQueryStatement,
MPPQueryContext context);
SettableFuture<ConfigTaskResult> dropContinuousQuery(String cqId);
@@ -208,7 +209,8 @@ public interface IConfigTaskExecutor {
TThrottleQuotaResp getThrottleQuota();
- SettableFuture<ConfigTaskResult> createModel(CreateModelStatement
createModelStatement);
+ SettableFuture<ConfigTaskResult> createModel(
+ CreateModelStatement createModelStatement, MPPQueryContext context);
SettableFuture<ConfigTaskResult> dropModel(String modelId);
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/CreateContinuousQueryTask.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/CreateContinuousQueryTask.java
index f0e08bcc745..619ebf55e78 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/CreateContinuousQueryTask.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/CreateContinuousQueryTask.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.queryengine.plan.execution.config.metadata;
+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.IConfigTask;
import
org.apache.iotdb.db.queryengine.plan.execution.config.executor.IConfigTaskExecutor;
@@ -29,21 +30,17 @@ import com.google.common.util.concurrent.ListenableFuture;
public class CreateContinuousQueryTask implements IConfigTask {
private final CreateContinuousQueryStatement createContinuousQueryStatement;
-
- private final String sql;
-
- private final String username;
+ private final MPPQueryContext context;
public CreateContinuousQueryTask(
- CreateContinuousQueryStatement createContinuousQueryStatement, String
sql, String username) {
+ CreateContinuousQueryStatement createContinuousQueryStatement,
MPPQueryContext context) {
this.createContinuousQueryStatement = createContinuousQueryStatement;
- this.sql = sql;
- this.username = username;
+ this.context = context;
}
@Override
public ListenableFuture<ConfigTaskResult> execute(IConfigTaskExecutor
configTaskExecutor)
throws InterruptedException {
- return
configTaskExecutor.createContinuousQuery(createContinuousQueryStatement, sql,
username);
+ return
configTaskExecutor.createContinuousQuery(createContinuousQueryStatement,
context);
}
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/model/CreateModelTask.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/model/CreateModelTask.java
index ec31fed9574..842b558fd8a 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/model/CreateModelTask.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/model/CreateModelTask.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.queryengine.plan.execution.config.metadata.model;
+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.IConfigTask;
import
org.apache.iotdb.db.queryengine.plan.execution.config.executor.IConfigTaskExecutor;
@@ -29,14 +30,16 @@ import com.google.common.util.concurrent.ListenableFuture;
public class CreateModelTask implements IConfigTask {
private final CreateModelStatement createModelStatement;
+ private final MPPQueryContext context;
- public CreateModelTask(CreateModelStatement createModelStatement) {
+ public CreateModelTask(CreateModelStatement createModelStatement,
MPPQueryContext context) {
this.createModelStatement = createModelStatement;
+ this.context = context;
}
@Override
public ListenableFuture<ConfigTaskResult> execute(IConfigTaskExecutor
configTaskExecutor)
throws InterruptedException {
- return configTaskExecutor.createModel(createModelStatement);
+ return configTaskExecutor.createModel(createModelStatement, context);
}
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/view/AlterLogicalViewTask.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/view/AlterLogicalViewTask.java
index 4258f55aeb1..516478e5809 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/view/AlterLogicalViewTask.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/metadata/view/AlterLogicalViewTask.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.queryengine.plan.execution.config.metadata.view;
+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.IConfigTask;
import
org.apache.iotdb.db.queryengine.plan.execution.config.executor.IConfigTaskExecutor;
@@ -28,17 +29,18 @@ import com.google.common.util.concurrent.ListenableFuture;
public class AlterLogicalViewTask implements IConfigTask {
- private final String queryId;
+ private final MPPQueryContext context;
private final AlterLogicalViewStatement alterLogicalViewStatement;
- public AlterLogicalViewTask(String queryId, AlterLogicalViewStatement
alterLogicalViewStatement) {
- this.queryId = queryId;
+ public AlterLogicalViewTask(
+ AlterLogicalViewStatement alterLogicalViewStatement, MPPQueryContext
context) {
this.alterLogicalViewStatement = alterLogicalViewStatement;
+ this.context = context;
}
@Override
public ListenableFuture<ConfigTaskResult> execute(IConfigTaskExecutor
configTaskExecutor)
throws InterruptedException {
- return configTaskExecutor.alterLogicalView(queryId,
alterLogicalViewStatement);
+ return configTaskExecutor.alterLogicalView(alterLogicalViewStatement,
context);
}
}