use of io.debezium.text.TokenStream.Marker in project debezium by debezium.
the class DdlParserSql2003 method parseCreateTable.
protected void parseCreateTable(Marker start) {
tokens.canConsumeAnyOf("GLOBAL", "LOCAL", "TEMPORARY");
tokens.consume("TABLE");
TableId tableId = parseQualifiedTableName(start);
TableEditor table = databaseTables.editOrCreateTable(tableId);
if (tokens.matches('(')) {
// Is either a subquery clause preceded by column name list, or table element list...
Marker tableContentStart = tokens.mark();
try {
parseAsSubqueryClause(start, table);
} catch (ParsingException e) {
tokens.rewind(tableContentStart);
parseTableElementList(start, table);
}
} else if (tokens.canConsume("OF")) {
// Read the qualified name ...
parseSchemaQualifiedName(start);
if (tokens.canConsume("UNDER")) {
// parent table name ...
parseSchemaQualifiedName(start);
}
if (tokens.matches('(')) {
parseTableElementList(start, table);
}
} else if (tokens.canConsume("AS")) {
parseAsSubqueryClause(start, table);
}
if (tokens.canConsume("ON", "COMMIT")) {
tokens.canConsume("PRESERVE");
tokens.canConsume("DELETE");
tokens.consume("ROWS");
}
// Update the table definition ...
databaseTables.overwriteTable(table.create());
signalCreateTable(tableId, start);
}
Aggregations