use of org.apache.flink.table.operations.ddl.CreateDatabaseOperation in project zeppelin by apache.
the class Flink112Shims method parseBySqlParser.
private SqlCommandCall parseBySqlParser(Parser sqlParser, String stmt) throws Exception {
List<Operation> operations;
try {
operations = sqlParser.parse(stmt);
} catch (Throwable e) {
throw new Exception("Invalidate SQL statement.", e);
}
if (operations.size() != 1) {
throw new Exception("Only single statement is supported now.");
}
final SqlCommand cmd;
String[] operands = new String[] { stmt };
Operation operation = operations.get(0);
if (operation instanceof CatalogSinkModifyOperation) {
boolean overwrite = ((CatalogSinkModifyOperation) operation).isOverwrite();
cmd = overwrite ? SqlCommand.INSERT_OVERWRITE : SqlCommand.INSERT_INTO;
} else if (operation instanceof CreateTableOperation) {
cmd = SqlCommand.CREATE_TABLE;
} else if (operation instanceof DropTableOperation) {
cmd = SqlCommand.DROP_TABLE;
} else if (operation instanceof AlterTableOperation) {
cmd = SqlCommand.ALTER_TABLE;
} else if (operation instanceof CreateViewOperation) {
cmd = SqlCommand.CREATE_VIEW;
} else if (operation instanceof DropViewOperation) {
cmd = SqlCommand.DROP_VIEW;
} else if (operation instanceof CreateDatabaseOperation) {
cmd = SqlCommand.CREATE_DATABASE;
} else if (operation instanceof DropDatabaseOperation) {
cmd = SqlCommand.DROP_DATABASE;
} else if (operation instanceof AlterDatabaseOperation) {
cmd = SqlCommand.ALTER_DATABASE;
} else if (operation instanceof CreateCatalogOperation) {
cmd = SqlCommand.CREATE_CATALOG;
} else if (operation instanceof DropCatalogOperation) {
cmd = SqlCommand.DROP_CATALOG;
} else if (operation instanceof UseCatalogOperation) {
cmd = SqlCommand.USE_CATALOG;
operands = new String[] { ((UseCatalogOperation) operation).getCatalogName() };
} else if (operation instanceof UseDatabaseOperation) {
cmd = SqlCommand.USE;
operands = new String[] { ((UseDatabaseOperation) operation).getDatabaseName() };
} else if (operation instanceof ShowCatalogsOperation) {
cmd = SqlCommand.SHOW_CATALOGS;
operands = new String[0];
} else if (operation instanceof ShowDatabasesOperation) {
cmd = SqlCommand.SHOW_DATABASES;
operands = new String[0];
} else if (operation instanceof ShowTablesOperation) {
cmd = SqlCommand.SHOW_TABLES;
operands = new String[0];
} else if (operation instanceof ShowFunctionsOperation) {
cmd = SqlCommand.SHOW_FUNCTIONS;
operands = new String[0];
} else if (operation instanceof CreateCatalogFunctionOperation || operation instanceof CreateTempSystemFunctionOperation) {
cmd = SqlCommand.CREATE_FUNCTION;
} else if (operation instanceof DropCatalogFunctionOperation || operation instanceof DropTempSystemFunctionOperation) {
cmd = SqlCommand.DROP_FUNCTION;
} else if (operation instanceof AlterCatalogFunctionOperation) {
cmd = SqlCommand.ALTER_FUNCTION;
} else if (operation instanceof ExplainOperation) {
cmd = SqlCommand.EXPLAIN;
} else if (operation instanceof DescribeTableOperation) {
cmd = SqlCommand.DESCRIBE;
operands = new String[] { ((DescribeTableOperation) operation).getSqlIdentifier().asSerializableString() };
} else if (operation instanceof QueryOperation) {
cmd = SqlCommand.SELECT;
} else {
throw new Exception("Unknown operation: " + operation.asSummaryString());
}
return new SqlCommandCall(cmd, operands, stmt);
}
use of org.apache.flink.table.operations.ddl.CreateDatabaseOperation in project flink by apache.
the class SqlToOperationConverterTest method testCreateDatabase.
@Test
public void testCreateDatabase() {
final String[] createDatabaseSqls = new String[] { "create database db1", "create database if not exists cat1.db1", "create database cat1.db1 comment 'db1_comment'", "create database cat1.db1 comment 'db1_comment' with ('k1' = 'v1', 'K2' = 'V2')" };
final String[] expectedCatalogs = new String[] { "builtin", "cat1", "cat1", "cat1" };
final String expectedDatabase = "db1";
final String[] expectedComments = new String[] { null, null, "db1_comment", "db1_comment" };
final boolean[] expectedIgnoreIfExists = new boolean[] { false, true, false, false };
Map<String, String> properties = new HashMap<>();
properties.put("k1", "v1");
properties.put("K2", "V2");
final Map[] expectedProperties = new Map[] { new HashMap<String, String>(), new HashMap<String, String>(), new HashMap<String, String>(), new HashMap(properties) };
for (int i = 0; i < createDatabaseSqls.length; i++) {
Operation operation = parse(createDatabaseSqls[i], SqlDialect.DEFAULT);
assertThat(operation).isInstanceOf(CreateDatabaseOperation.class);
final CreateDatabaseOperation createDatabaseOperation = (CreateDatabaseOperation) operation;
assertThat(createDatabaseOperation.getCatalogName()).isEqualTo(expectedCatalogs[i]);
assertThat(createDatabaseOperation.getDatabaseName()).isEqualTo(expectedDatabase);
assertThat(createDatabaseOperation.getCatalogDatabase().getComment()).isEqualTo(expectedComments[i]);
assertThat(createDatabaseOperation.isIgnoreIfExists()).isEqualTo(expectedIgnoreIfExists[i]);
assertThat(createDatabaseOperation.getCatalogDatabase().getProperties()).isEqualTo(expectedProperties[i]);
}
}
Aggregations