in flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/SqlNodeToOperationConversion.java [259:371]
private static Optional<Operation> convertValidatedSqlNode(
FlinkPlannerImpl flinkPlanner, CatalogManager catalogManager, SqlNode validated) {
beforeConversion();
// delegate conversion to the registered converters first
SqlNodeConvertContext context = new SqlNodeConvertContext(flinkPlanner, catalogManager);
Optional<Operation> operation = SqlNodeConverters.convertSqlNode(validated, context);
if (operation.isPresent()) {
return operation;
}
// TODO: all the below conversion logic should be migrated to SqlNodeConverters
SqlNodeToOperationConversion converter =
new SqlNodeToOperationConversion(flinkPlanner, catalogManager);
if (validated instanceof SqlDropCatalog) {
return Optional.of(converter.convertDropCatalog((SqlDropCatalog) validated));
} else if (validated instanceof SqlLoadModule) {
return Optional.of(converter.convertLoadModule((SqlLoadModule) validated));
} else if (validated instanceof SqlShowCurrentCatalog) {
return Optional.of(
converter.convertShowCurrentCatalog((SqlShowCurrentCatalog) validated));
} else if (validated instanceof SqlShowModules) {
return Optional.of(converter.convertShowModules((SqlShowModules) validated));
} else if (validated instanceof SqlUnloadModule) {
return Optional.of(converter.convertUnloadModule((SqlUnloadModule) validated));
} else if (validated instanceof SqlUseCatalog) {
return Optional.of(converter.convertUseCatalog((SqlUseCatalog) validated));
} else if (validated instanceof SqlUseModules) {
return Optional.of(converter.convertUseModules((SqlUseModules) validated));
} else if (validated instanceof SqlCreateDatabase) {
return Optional.of(converter.convertCreateDatabase((SqlCreateDatabase) validated));
} else if (validated instanceof SqlDropDatabase) {
return Optional.of(converter.convertDropDatabase((SqlDropDatabase) validated));
} else if (validated instanceof SqlAlterDatabase) {
return Optional.of(converter.convertAlterDatabase((SqlAlterDatabase) validated));
} else if (validated instanceof SqlShowCurrentDatabase) {
return Optional.of(
converter.convertShowCurrentDatabase((SqlShowCurrentDatabase) validated));
} else if (validated instanceof SqlUseDatabase) {
return Optional.of(converter.convertUseDatabase((SqlUseDatabase) validated));
} else if (validated instanceof SqlCreateTable) {
if (validated instanceof SqlCreateTableAs) {
return Optional.of(
converter.createTableConverter.convertCreateTableAS(
flinkPlanner, (SqlCreateTableAs) validated));
}
return Optional.of(
converter.createTableConverter.convertCreateTable((SqlCreateTable) validated));
} else if (validated instanceof SqlDropTable) {
return Optional.of(converter.convertDropTable((SqlDropTable) validated));
} else if (validated instanceof SqlAlterTable) {
return Optional.of(converter.convertAlterTable((SqlAlterTable) validated));
} else if (validated instanceof SqlShowColumns) {
return Optional.of(converter.convertShowColumns((SqlShowColumns) validated));
} else if (validated instanceof SqlDropView) {
return Optional.of(converter.convertDropView((SqlDropView) validated));
} else if (validated instanceof SqlCreateFunction) {
return Optional.of(converter.convertCreateFunction((SqlCreateFunction) validated));
} else if (validated instanceof SqlDropFunction) {
return Optional.of(converter.convertDropFunction((SqlDropFunction) validated));
} else if (validated instanceof SqlAlterFunction) {
return Optional.of(converter.convertAlterFunction((SqlAlterFunction) validated));
} else if (validated instanceof SqlShowCreateTable) {
return Optional.of(converter.convertShowCreateTable((SqlShowCreateTable) validated));
} else if (validated instanceof SqlShowCreateView) {
return Optional.of(converter.convertShowCreateView((SqlShowCreateView) validated));
} else if (validated instanceof SqlRichExplain) {
return Optional.of(converter.convertRichExplain((SqlRichExplain) validated));
} else if (validated instanceof SqlRichDescribeTable) {
return Optional.of(converter.convertDescribeTable((SqlRichDescribeTable) validated));
} else if (validated instanceof SqlAddJar) {
return Optional.of(converter.convertAddJar((SqlAddJar) validated));
} else if (validated instanceof SqlRemoveJar) {
return Optional.of(converter.convertRemoveJar((SqlRemoveJar) validated));
} else if (validated instanceof SqlShowJars) {
return Optional.of(converter.convertShowJars((SqlShowJars) validated));
} else if (validated instanceof SqlShowJobs) {
return Optional.of(converter.convertShowJobs((SqlShowJobs) validated));
} else if (validated instanceof RichSqlInsert) {
return Optional.of(converter.convertSqlInsert((RichSqlInsert) validated));
} else if (validated instanceof SqlBeginStatementSet) {
return Optional.of(
converter.convertBeginStatementSet((SqlBeginStatementSet) validated));
} else if (validated instanceof SqlEndStatementSet) {
return Optional.of(converter.convertEndStatementSet((SqlEndStatementSet) validated));
} else if (validated instanceof SqlSet) {
return Optional.of(converter.convertSet((SqlSet) validated));
} else if (validated instanceof SqlReset) {
return Optional.of(converter.convertReset((SqlReset) validated));
} else if (validated instanceof SqlStatementSet) {
return Optional.of(converter.convertSqlStatementSet((SqlStatementSet) validated));
} else if (validated instanceof SqlExecute) {
return convertValidatedSqlNode(
flinkPlanner, catalogManager, ((SqlExecute) validated).getStatement());
} else if (validated instanceof SqlExecutePlan) {
return Optional.of(converter.convertExecutePlan((SqlExecutePlan) validated));
} else if (validated instanceof SqlCompilePlan) {
return Optional.of(converter.convertCompilePlan((SqlCompilePlan) validated));
} else if (validated instanceof SqlCompileAndExecutePlan) {
return Optional.of(
converter.convertCompileAndExecutePlan((SqlCompileAndExecutePlan) validated));
} else if (validated instanceof SqlAnalyzeTable) {
return Optional.of(converter.convertAnalyzeTable((SqlAnalyzeTable) validated));
} else if (validated instanceof SqlStopJob) {
return Optional.of(converter.convertStopJob((SqlStopJob) validated));
} else if (validated instanceof SqlDelete) {
return Optional.of(converter.convertDelete((SqlDelete) validated));
} else if (validated instanceof SqlUpdate) {
return Optional.of(converter.convertUpdate((SqlUpdate) validated));
} else {
return Optional.empty();
}
}