in iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ProcedureFactory.java [103:406]
public Procedure create(ByteBuffer buffer) throws IOException {
short typeCode = buffer.getShort();
ProcedureType procedureType = ProcedureType.convertToProcedureType(typeCode);
if (procedureType == null) {
LOGGER.error("unrecognized log type " + typeCode);
throw new IOException("unrecognized log type " + typeCode);
}
Procedure procedure;
switch (procedureType) {
case DELETE_DATABASE_PROCEDURE:
procedure = new DeleteDatabaseProcedure(false);
break;
case ADD_CONFIG_NODE_PROCEDURE:
procedure = new AddConfigNodeProcedure();
break;
case REMOVE_CONFIG_NODE_PROCEDURE:
procedure = new RemoveConfigNodeProcedure();
break;
case REMOVE_DATA_NODE_PROCEDURE:
procedure = new RemoveDataNodesProcedure();
break;
case REGION_MIGRATE_PROCEDURE:
procedure = new RegionMigrateProcedure();
break;
case ADD_REGION_PEER_PROCEDURE:
procedure = new AddRegionPeerProcedure();
break;
case REMOVE_REGION_PEER_PROCEDURE:
procedure = new RemoveRegionPeerProcedure();
break;
case CREATE_REGION_GROUPS:
procedure = new CreateRegionGroupsProcedure();
break;
case RECONSTRUCT_REGION_PROCEDURE:
procedure = new ReconstructRegionProcedure();
break;
case NOTIFY_REGION_MIGRATION_PROCEDURE:
procedure = new NotifyRegionMigrationProcedure();
break;
case DELETE_TIMESERIES_PROCEDURE:
procedure = new DeleteTimeSeriesProcedure(false);
break;
case DELETE_LOGICAL_VIEW_PROCEDURE:
procedure = new DeleteLogicalViewProcedure(false);
break;
case ALTER_LOGICAL_VIEW_PROCEDURE:
procedure = new AlterLogicalViewProcedure(false);
break;
case CREATE_TRIGGER_PROCEDURE:
procedure = new CreateTriggerProcedure(false);
break;
case DROP_TRIGGER_PROCEDURE:
procedure = new DropTriggerProcedure(false);
break;
case CREATE_PIPE_PROCEDURE:
procedure = new CreatePipeProcedure();
break;
case START_PIPE_PROCEDURE:
procedure = new StartPipeProcedure();
break;
case STOP_PIPE_PROCEDURE:
procedure = new StopPipeProcedure();
break;
case DROP_PIPE_PROCEDURE:
procedure = new DropPipeProcedure();
break;
case CREATE_PIPE_PROCEDURE_V2:
procedure = new CreatePipeProcedureV2();
break;
case START_PIPE_PROCEDURE_V2:
procedure = new StartPipeProcedureV2();
break;
case STOP_PIPE_PROCEDURE_V2:
procedure = new StopPipeProcedureV2();
break;
case DROP_PIPE_PROCEDURE_V2:
procedure = new DropPipeProcedureV2();
break;
case ALTER_PIPE_PROCEDURE_V2:
procedure = new AlterPipeProcedureV2(ProcedureType.ALTER_PIPE_PROCEDURE_V2);
break;
case ALTER_PIPE_PROCEDURE_V3:
procedure = new AlterPipeProcedureV2(ProcedureType.ALTER_PIPE_PROCEDURE_V3);
break;
case PIPE_HANDLE_LEADER_CHANGE_PROCEDURE:
procedure = new PipeHandleLeaderChangeProcedure();
break;
case PIPE_META_SYNC_PROCEDURE:
procedure = new PipeMetaSyncProcedure();
break;
case PIPE_HANDLE_META_CHANGE_PROCEDURE:
procedure = new PipeHandleMetaChangeProcedure();
break;
case CREATE_CQ_PROCEDURE:
procedure =
new CreateCQProcedure(
ConfigNode.getInstance().getConfigManager().getCQManager().getExecutor());
break;
case SET_TEMPLATE_PROCEDURE:
procedure = new SetTemplateProcedure(false);
break;
case DEACTIVATE_TEMPLATE_PROCEDURE:
procedure = new DeactivateTemplateProcedure(false);
break;
case UNSET_TEMPLATE_PROCEDURE:
procedure = new UnsetTemplateProcedure(false);
break;
case CREATE_TABLE_PROCEDURE:
procedure = new CreateTableProcedure(false);
break;
case CREATE_TABLE_VIEW_PROCEDURE:
procedure = new CreateTableViewProcedure(false);
break;
case ADD_TABLE_COLUMN_PROCEDURE:
procedure = new AddTableColumnProcedure(false);
break;
case ADD_VIEW_COLUMN_PROCEDURE:
procedure = new AddViewColumnProcedure(false);
break;
case SET_TABLE_PROPERTIES_PROCEDURE:
procedure = new SetTablePropertiesProcedure(false);
break;
case SET_VIEW_PROPERTIES_PROCEDURE:
procedure = new SetViewPropertiesProcedure(false);
break;
case RENAME_TABLE_COLUMN_PROCEDURE:
procedure = new RenameTableColumnProcedure(false);
break;
case RENAME_VIEW_COLUMN_PROCEDURE:
procedure = new RenameViewColumnProcedure(false);
break;
case DROP_TABLE_COLUMN_PROCEDURE:
procedure = new DropTableColumnProcedure(false);
break;
case DROP_VIEW_COLUMN_PROCEDURE:
procedure = new DropViewColumnProcedure(false);
break;
case DROP_TABLE_PROCEDURE:
procedure = new DropTableProcedure(false);
break;
case DROP_VIEW_PROCEDURE:
procedure = new DropViewProcedure(false);
break;
case DELETE_DEVICES_PROCEDURE:
procedure = new DeleteDevicesProcedure(false);
break;
case RENAME_TABLE_PROCEDURE:
procedure = new RenameTableProcedure(false);
break;
case RENAME_VIEW_PROCEDURE:
procedure = new RenameViewProcedure(false);
break;
case CREATE_PIPE_PLUGIN_PROCEDURE:
procedure = new CreatePipePluginProcedure();
break;
case DROP_PIPE_PLUGIN_PROCEDURE:
procedure = new DropPipePluginProcedure();
break;
case CREATE_MODEL_PROCEDURE:
procedure = new CreateModelProcedure();
break;
case DROP_MODEL_PROCEDURE:
procedure = new DropModelProcedure();
break;
case AUTH_OPERATE_PROCEDURE:
procedure = new AuthOperationProcedure(false);
break;
case PIPE_ENRICHED_DELETE_DATABASE_PROCEDURE:
procedure = new DeleteDatabaseProcedure(true);
break;
case PIPE_ENRICHED_DELETE_TIMESERIES_PROCEDURE:
procedure = new DeleteTimeSeriesProcedure(true);
break;
case PIPE_ENRICHED_DEACTIVATE_TEMPLATE_PROCEDURE:
procedure = new DeactivateTemplateProcedure(true);
break;
case PIPE_ENRICHED_UNSET_TEMPLATE_PROCEDURE:
procedure = new UnsetTemplateProcedure(true);
break;
case PIPE_ENRICHED_SET_TEMPLATE_PROCEDURE:
procedure = new SetTemplateProcedure(true);
break;
case PIPE_ENRICHED_ALTER_LOGICAL_VIEW_PROCEDURE:
procedure = new AlterLogicalViewProcedure(true);
break;
case PIPE_ENRICHED_DELETE_LOGICAL_VIEW_PROCEDURE:
procedure = new DeleteLogicalViewProcedure(true);
break;
case PIPE_ENRICHED_CREATE_TRIGGER_PROCEDURE:
procedure = new CreateTriggerProcedure(true);
break;
case PIPE_ENRICHED_DROP_TRIGGER_PROCEDURE:
procedure = new DropTriggerProcedure(true);
break;
case PIPE_ENRICHED_AUTH_OPERATE_PROCEDURE:
procedure = new AuthOperationProcedure(true);
break;
case PIPE_ENRICHED_CREATE_TABLE_PROCEDURE:
procedure = new CreateTableProcedure(true);
break;
case PIPE_ENRICHED_DROP_TABLE_PROCEDURE:
procedure = new DropTableProcedure(true);
break;
case PIPE_ENRICHED_ADD_TABLE_COLUMN_PROCEDURE:
procedure = new AddTableColumnProcedure(true);
break;
case PIPE_ENRICHED_SET_TABLE_PROPERTIES_PROCEDURE:
procedure = new SetTablePropertiesProcedure(true);
break;
case PIPE_ENRICHED_RENAME_TABLE_COLUMN_PROCEDURE:
procedure = new RenameTableColumnProcedure(true);
break;
case PIPE_ENRICHED_DROP_TABLE_COLUMN_PROCEDURE:
procedure = new DropTableColumnProcedure(true);
break;
case PIPE_ENRICHED_DELETE_DEVICES_PROCEDURE:
procedure = new DeleteDevicesProcedure(true);
break;
case PIPE_ENRICHED_RENAME_TABLE_PROCEDURE:
procedure = new RenameTableProcedure(true);
break;
case PIPE_ENRICHED_CREATE_TABLE_VIEW_PROCEDURE:
procedure = new CreateTableViewProcedure(true);
break;
case PIPE_ENRICHED_ADD_VIEW_COLUMN_PROCEDURE:
procedure = new AddViewColumnProcedure(true);
break;
case PIPE_ENRICHED_DROP_VIEW_COLUMN_PROCEDURE:
procedure = new DropViewColumnProcedure(true);
break;
case PIPE_ENRICHED_SET_VIEW_PROPERTIES_PROCEDURE:
procedure = new SetViewPropertiesProcedure(true);
break;
case PIPE_ENRICHED_DROP_VIEW_PROCEDURE:
procedure = new DropViewProcedure(true);
break;
case PIPE_ENRICHED_RENAME_VIEW_COLUMN_PROCEDURE:
procedure = new RenameViewColumnProcedure(true);
break;
case PIPE_ENRICHED_RENAME_VIEW_PROCEDURE:
procedure = new RenameViewProcedure(true);
break;
case REMOVE_AI_NODE_PROCEDURE:
procedure = new RemoveAINodeProcedure();
break;
case PIPE_ENRICHED_SET_TTL_PROCEDURE:
procedure = new SetTTLProcedure(true);
break;
case SET_TTL_PROCEDURE:
procedure = new SetTTLProcedure(false);
break;
case CREATE_TOPIC_PROCEDURE:
procedure = new CreateTopicProcedure();
break;
case DROP_TOPIC_PROCEDURE:
procedure = new DropTopicProcedure();
break;
case ALTER_TOPIC_PROCEDURE:
procedure = new AlterTopicProcedure();
break;
case TOPIC_META_SYNC_PROCEDURE:
procedure = new TopicMetaSyncProcedure();
break;
case CREATE_SUBSCRIPTION_PROCEDURE:
procedure = new CreateSubscriptionProcedure();
break;
case DROP_SUBSCRIPTION_PROCEDURE:
procedure = new DropSubscriptionProcedure();
break;
case CREATE_CONSUMER_PROCEDURE:
procedure = new CreateConsumerProcedure();
break;
case DROP_CONSUMER_PROCEDURE:
procedure = new DropConsumerProcedure();
break;
case ALTER_CONSUMER_GROUP_PROCEDURE:
procedure = new AlterConsumerGroupProcedure();
break;
case CONSUMER_GROUP_META_SYNC_PROCEDURE:
procedure = new ConsumerGroupMetaSyncProcedure();
break;
case CREATE_MANY_DATABASES_PROCEDURE:
procedure = new CreateManyDatabasesProcedure();
break;
case NEVER_FINISH_PROCEDURE:
procedure = new NeverFinishProcedure();
break;
case ADD_NEVER_FINISH_SUB_PROCEDURE_PROCEDURE:
procedure = new AddNeverFinishSubProcedureProcedure();
break;
default:
LOGGER.error("Unknown Procedure type: {}", typeCode);
throw new IOException("Unknown Procedure type: " + typeCode);
}
try {
procedure.deserialize(buffer);
} catch (ThriftSerDeException e) {
LOGGER.warn(
"Catch exception while deserializing procedure, this procedure will be ignored.", e);
procedure = null;
}
return procedure;
}