in iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/executor/ConfigPlanExecutor.java [386:683]
public TSStatus executeNonQueryPlan(ConfigPhysicalPlan physicalPlan)
throws UnknownPhysicalPlanTypeException {
TSStatus status;
switch (physicalPlan.getType()) {
case RegisterDataNode:
return nodeInfo.registerDataNode((RegisterDataNodePlan) physicalPlan);
case RemoveDataNode:
return nodeInfo.removeDataNode((RemoveDataNodePlan) physicalPlan);
case UpdateDataNodeConfiguration:
status = nodeInfo.updateDataNode((UpdateDataNodePlan) physicalPlan);
if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
return status;
}
return partitionInfo.updateDataNode((UpdateDataNodePlan) physicalPlan);
case RegisterAINode:
return nodeInfo.registerAINode((RegisterAINodePlan) physicalPlan);
case UpdateAINodeConfiguration:
return nodeInfo.updateAINode((UpdateAINodePlan) physicalPlan);
case RemoveAINode:
return nodeInfo.removeAINode((RemoveAINodePlan) physicalPlan);
case CreateDatabase:
status = clusterSchemaInfo.createDatabase((DatabaseSchemaPlan) physicalPlan);
if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
return status;
}
return partitionInfo.createDatabase((DatabaseSchemaPlan) physicalPlan);
case AlterDatabase:
return clusterSchemaInfo.alterDatabase((DatabaseSchemaPlan) physicalPlan);
case AdjustMaxRegionGroupNum:
return clusterSchemaInfo.adjustMaxRegionGroupCount(
(AdjustMaxRegionGroupNumPlan) physicalPlan);
case DeleteDatabase:
try {
return clusterSchemaInfo.deleteDatabase((DeleteDatabasePlan) physicalPlan);
} finally {
partitionInfo.deleteDatabase((DeleteDatabasePlan) physicalPlan);
}
case PreDeleteDatabase:
return partitionInfo.preDeleteDatabase((PreDeleteDatabasePlan) physicalPlan);
case SetTTL:
if (((SetTTLPlan) physicalPlan).getTTL() == TTLCache.NULL_TTL) {
return ttlInfo.unsetTTL((SetTTLPlan) physicalPlan);
} else {
return ttlInfo.setTTL((SetTTLPlan) physicalPlan);
}
case SetSchemaReplicationFactor:
return clusterSchemaInfo.setSchemaReplicationFactor(
(SetSchemaReplicationFactorPlan) physicalPlan);
case SetDataReplicationFactor:
return clusterSchemaInfo.setDataReplicationFactor(
(SetDataReplicationFactorPlan) physicalPlan);
case SetTimePartitionInterval:
return clusterSchemaInfo.setTimePartitionInterval(
(SetTimePartitionIntervalPlan) physicalPlan);
case CreateRegionGroups:
return partitionInfo.createRegionGroups((CreateRegionGroupsPlan) physicalPlan);
case OfferRegionMaintainTasks:
return partitionInfo.offerRegionMaintainTasks((OfferRegionMaintainTasksPlan) physicalPlan);
case PollRegionMaintainTask:
return partitionInfo.pollRegionMaintainTask();
case PollSpecificRegionMaintainTask:
return partitionInfo.pollSpecificRegionMaintainTask(
(PollSpecificRegionMaintainTaskPlan) physicalPlan);
case CreateSchemaPartition:
return partitionInfo.createSchemaPartition((CreateSchemaPartitionPlan) physicalPlan);
case CreateDataPartition:
return partitionInfo.createDataPartition((CreateDataPartitionPlan) physicalPlan);
case AutoCleanPartitionTable:
return partitionInfo.autoCleanPartitionTable((AutoCleanPartitionTablePlan) physicalPlan);
case UpdateProcedure:
return procedureInfo.updateProcedure((UpdateProcedurePlan) physicalPlan);
case DeleteProcedure:
return procedureInfo.deleteProcedure((DeleteProcedurePlan) physicalPlan);
case CreateUser:
case CreateRole:
case DropUser:
case DropRole:
case GrantRole:
case GrantUser:
case GrantRoleToUser:
case RevokeUser:
case RevokeRole:
case RevokeRoleFromUser:
case UpdateUser:
case CreateUserWithRawPassword:
case CreateUserDep:
case CreateRoleDep:
case DropUserDep:
case DropRoleDep:
case GrantRoleDep:
case GrantUserDep:
case GrantRoleToUserDep:
case RevokeUserDep:
case RevokeRoleDep:
case RevokeRoleFromUserDep:
case UpdateUserDep:
case RCreateRole:
case RCreateUser:
case RDropUser:
case RDropRole:
case RUpdateUser:
case RGrantUserRole:
case RGrantRoleAny:
case RGrantUserAny:
case RGrantUserAll:
case RGrantRoleAll:
case RGrantUserDBPriv:
case RGrantUserSysPri:
case RGrantUserTBPriv:
case RGrantRoleDBPriv:
case RGrantRoleSysPri:
case RGrantRoleTBPriv:
case RRevokeRoleAny:
case RRevokeUserAny:
case RRevokeUserAll:
case RRevokeRoleAll:
case RRevokeUserDBPriv:
case RRevokeUserSysPri:
case RRevokeUserTBPriv:
case RRevokeRoleDBPriv:
case RRevokeRoleSysPri:
case RRevokeRoleTBPriv:
case RRevokeUserRole:
return authorInfo.authorNonQuery((AuthorPlan) physicalPlan);
case ApplyConfigNode:
return nodeInfo.applyConfigNode((ApplyConfigNodePlan) physicalPlan);
case RemoveConfigNode:
return nodeInfo.removeConfigNode((RemoveConfigNodePlan) physicalPlan);
case UpdateVersionInfo:
return nodeInfo.updateVersionInfo((UpdateVersionInfoPlan) physicalPlan);
case UpdateClusterId:
return clusterInfo.updateClusterId((UpdateClusterIdPlan) physicalPlan);
case CreateFunction:
return udfInfo.addUDFInTable((CreateFunctionPlan) physicalPlan);
case UpdateFunction:
return udfInfo.updateFunction((UpdateFunctionPlan) physicalPlan);
case DropTreeModelFunction:
return udfInfo.dropFunction(
Model.TREE, ((DropTreeModelFunctionPlan) physicalPlan).getFunctionName());
case DropTableModelFunction:
return udfInfo.dropFunction(
Model.TABLE, ((DropTableModelFunctionPlan) physicalPlan).getFunctionName());
case AddTriggerInTable:
return triggerInfo.addTriggerInTable((AddTriggerInTablePlan) physicalPlan);
case DeleteTriggerInTable:
return triggerInfo.deleteTriggerInTable((DeleteTriggerInTablePlan) physicalPlan);
case UpdateTriggerStateInTable:
return triggerInfo.updateTriggerStateInTable((UpdateTriggerStateInTablePlan) physicalPlan);
case UpdateTriggersOnTransferNodes:
return triggerInfo.updateTriggersOnTransferNodes(
(UpdateTriggersOnTransferNodesPlan) physicalPlan);
case UpdateTriggerLocation:
return triggerInfo.updateTriggerLocation((UpdateTriggerLocationPlan) physicalPlan);
case CreateSchemaTemplate:
return clusterSchemaInfo.createSchemaTemplate((CreateSchemaTemplatePlan) physicalPlan);
case UpdateRegionLocation:
return partitionInfo.updateRegionLocation((UpdateRegionLocationPlan) physicalPlan);
case AddRegionLocation:
return partitionInfo.addRegionLocation((AddRegionLocationPlan) physicalPlan);
case RemoveRegionLocation:
return partitionInfo.removeRegionLocation((RemoveRegionLocationPlan) physicalPlan);
case SetSchemaTemplate:
return clusterSchemaInfo.setSchemaTemplate((SetSchemaTemplatePlan) physicalPlan);
case PreSetSchemaTemplate:
return clusterSchemaInfo.preSetSchemaTemplate((PreSetSchemaTemplatePlan) physicalPlan);
case CommitSetSchemaTemplate:
return clusterSchemaInfo.commitSetSchemaTemplate(
(CommitSetSchemaTemplatePlan) physicalPlan);
case PreUnsetTemplate:
return clusterSchemaInfo.preUnsetSchemaTemplate((PreUnsetSchemaTemplatePlan) physicalPlan);
case RollbackUnsetTemplate:
return clusterSchemaInfo.rollbackUnsetSchemaTemplate(
(RollbackPreUnsetSchemaTemplatePlan) physicalPlan);
case UnsetTemplate:
return clusterSchemaInfo.unsetSchemaTemplate((UnsetSchemaTemplatePlan) physicalPlan);
case DropSchemaTemplate:
return clusterSchemaInfo.dropSchemaTemplate((DropSchemaTemplatePlan) physicalPlan);
case ExtendSchemaTemplate:
return clusterSchemaInfo.extendSchemaTemplate((ExtendSchemaTemplatePlan) physicalPlan);
case PreCreateTable:
return clusterSchemaInfo.preCreateTable((PreCreateTablePlan) physicalPlan);
case PreCreateTableView:
return clusterSchemaInfo.preCreateTableView((PreCreateTableViewPlan) physicalPlan);
case RollbackCreateTable:
return clusterSchemaInfo.rollbackCreateTable((RollbackCreateTablePlan) physicalPlan);
case CommitCreateTable:
return clusterSchemaInfo.commitCreateTable((CommitCreateTablePlan) physicalPlan);
case AddTableColumn:
case AddViewColumn:
return clusterSchemaInfo.addTableColumn((AddTableColumnPlan) physicalPlan);
case RenameTableColumn:
case RenameViewColumn:
return clusterSchemaInfo.renameTableColumn((RenameTableColumnPlan) physicalPlan);
case SetTableProperties:
case SetViewProperties:
return clusterSchemaInfo.setTableProperties((SetTablePropertiesPlan) physicalPlan);
case PreDeleteColumn:
case PreDeleteViewColumn:
return clusterSchemaInfo.preDeleteColumn((PreDeleteColumnPlan) physicalPlan);
case CommitDeleteColumn:
case CommitDeleteViewColumn:
return clusterSchemaInfo.commitDeleteColumn((CommitDeleteColumnPlan) physicalPlan);
case PreDeleteTable:
case PreDeleteView:
return clusterSchemaInfo.preDeleteTable((PreDeleteTablePlan) physicalPlan);
case CommitDeleteTable:
case CommitDeleteView:
return clusterSchemaInfo.dropTable((CommitDeleteTablePlan) physicalPlan);
case SetTableComment:
case SetViewComment:
return clusterSchemaInfo.setTableComment((SetTableCommentPlan) physicalPlan);
case SetTableColumnComment:
return clusterSchemaInfo.setTableColumnComment((SetTableColumnCommentPlan) physicalPlan);
case RenameTable:
case RenameView:
return clusterSchemaInfo.renameTable((RenameTablePlan) physicalPlan);
case CreatePipeV2:
return pipeInfo.createPipe((CreatePipePlanV2) physicalPlan);
case SetPipeStatusV2:
return pipeInfo.setPipeStatus((SetPipeStatusPlanV2) physicalPlan);
case DropPipeV2:
return pipeInfo.dropPipe((DropPipePlanV2) physicalPlan);
case AlterPipeV2:
return pipeInfo.alterPipe((AlterPipePlanV2) physicalPlan);
case OperateMultiplePipesV2:
return pipeInfo.operateMultiplePipes((OperateMultiplePipesPlanV2) physicalPlan);
case PipeHandleLeaderChange:
return pipeInfo.handleLeaderChange((PipeHandleLeaderChangePlan) physicalPlan);
case PipeHandleMetaChange:
return pipeInfo.handleMetaChanges((PipeHandleMetaChangePlan) physicalPlan);
case CreateTopic:
return subscriptionInfo.createTopic((CreateTopicPlan) physicalPlan);
case DropTopic:
return subscriptionInfo.dropTopic((DropTopicPlan) physicalPlan);
case AlterTopic:
return subscriptionInfo.alterTopic((AlterTopicPlan) physicalPlan);
case AlterMultipleTopics:
return subscriptionInfo.alterMultipleTopics((AlterMultipleTopicsPlan) physicalPlan);
case ConsumerGroupHandleMetaChange:
return subscriptionInfo.handleConsumerGroupMetaChanges(
(ConsumerGroupHandleMetaChangePlan) physicalPlan);
case AlterConsumerGroup:
return subscriptionInfo.alterConsumerGroup((AlterConsumerGroupPlan) physicalPlan);
case TopicHandleMetaChange:
return subscriptionInfo.handleTopicMetaChanges((TopicHandleMetaChangePlan) physicalPlan);
case ADD_CQ:
return cqInfo.addCQ((AddCQPlan) physicalPlan);
case DROP_CQ:
return cqInfo.dropCQ((DropCQPlan) physicalPlan);
case ACTIVE_CQ:
return cqInfo.activeCQ((ActiveCQPlan) physicalPlan);
case UPDATE_CQ_LAST_EXEC_TIME:
return cqInfo.updateCQLastExecutionTime((UpdateCQLastExecTimePlan) physicalPlan);
case CreateModel:
return modelInfo.createModel((CreateModelPlan) physicalPlan);
case UpdateModelInfo:
return modelInfo.updateModelInfo((UpdateModelInfoPlan) physicalPlan);
case DropModel:
return modelInfo.dropModel(((DropModelPlan) physicalPlan).getModelName());
case DropModelInNode:
return modelInfo.dropModelInNode(((DropModelInNodePlan) physicalPlan).getNodeId());
case CreatePipePlugin:
return pipeInfo.getPipePluginInfo().createPipePlugin((CreatePipePluginPlan) physicalPlan);
case DropPipePlugin:
return pipeInfo.getPipePluginInfo().dropPipePlugin((DropPipePluginPlan) physicalPlan);
case setSpaceQuota:
return quotaInfo.setSpaceQuota((SetSpaceQuotaPlan) physicalPlan);
case setThrottleQuota:
return quotaInfo.setThrottleQuota((SetThrottleQuotaPlan) physicalPlan);
case CreatePipeSinkV1:
case DropPipeV1:
case DropPipeSinkV1:
case GetPipeSinkV1:
case PreCreatePipeV1:
case RecordPipeMessageV1:
case SetPipeStatusV1:
case ShowPipeV1:
return new TSStatus(TSStatusCode.INCOMPATIBLE_VERSION.getStatusCode());
case PipeEnriched:
return executeNonQueryPlan(((PipeEnrichedPlan) physicalPlan).getInnerPlan());
case PipeDeleteTimeSeries:
case PipeDeleteLogicalView:
case PipeDeactivateTemplate:
case PipeDeleteDevices:
// Pipe payload, used to trigger plan extraction.
// Will not be actually executed.
return new TSStatus(TSStatusCode.SUCCESS_STATUS.getStatusCode());
case PipeUnsetTemplate:
// PipeUnsetTemplate plan will not be written here, and exists only after pipe
// sender collects UnsetTemplatePlan and before receiver calls ConfigManager.
throw new UnsupportedOperationException(
String.format("Plan type %s is not supported.", physicalPlan.getType()));
case TestOnly:
return new TSStatus(TSStatusCode.SUCCESS_STATUS.getStatusCode());
default:
throw new UnknownPhysicalPlanTypeException(physicalPlan.getType());
}
}