DBZ-1150 CHECK TABLE options are valid identifiers

This commit is contained in:
Jiri Pechanec 2019-02-18 11:10:08 +01:00 committed by Gunnar Morling
parent b81552a201
commit 14c1f30ca3
2 changed files with 29 additions and 3 deletions

View File

@ -59,6 +59,32 @@ public void shouldParseGeneratedColumn() {
assertThat(tables.size()).isEqualTo(3); assertThat(tables.size()).isEqualTo(3);
} }
@Test
@FixFor("DBZ-1150")
public void shouldParseCheckTableKeywords() {
String ddl =
"CREATE TABLE my_table (\n" +
" user_id varchar(64) NOT NULL,\n" +
" upgrade varchar(256),\n" +
" quick varchar(256),\n" +
" fast varchar(256),\n" +
" medium varchar(256),\n" +
" extended varchar(256),\n" +
" changed varchar(256),\n" +
" UNIQUE KEY call_states_userid (user_id)\n" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8";
parser.parse(ddl, tables);
assertThat(((MySqlAntlrDdlParser) parser).getParsingExceptionsFromWalker().size()).isEqualTo(0);
assertThat(tables.size()).isEqualTo(1);
final Table table = tables.forTable(null, null, "my_table");
assertThat(table.columnWithName("upgrade")).isNotNull();
assertThat(table.columnWithName("quick")).isNotNull();
assertThat(table.columnWithName("fast")).isNotNull();
assertThat(table.columnWithName("medium")).isNotNull();
assertThat(table.columnWithName("extended")).isNotNull();
assertThat(table.columnWithName("changed")).isNotNull();
}
@Override @Override
public void shouldParseAlterStatementsWithoutCreate() { public void shouldParseAlterStatementsWithoutCreate() {
// ignore this test - antlr equivalent for it is shouldGetExceptionOnParseAlterStatementsWithoutCreate test // ignore this test - antlr equivalent for it is shouldGetExceptionOnParseAlterStatementsWithoutCreate test

View File

@ -2360,7 +2360,7 @@ keywordsCanBeId
: ACCOUNT | ACTION | AFTER | AGGREGATE | ALGORITHM | ANY : ACCOUNT | ACTION | AFTER | AGGREGATE | ALGORITHM | ANY
| AT | AUTHORS | AUTOCOMMIT | AUTOEXTEND_SIZE | AT | AUTHORS | AUTOCOMMIT | AUTOEXTEND_SIZE
| AUTO_INCREMENT | AVG_ROW_LENGTH | BEGIN | BINLOG | BIT | AUTO_INCREMENT | AVG_ROW_LENGTH | BEGIN | BINLOG | BIT
| BLOCK | BOOL | BOOLEAN | BTREE | CASCADED | CHAIN | BLOCK | BOOL | BOOLEAN | BTREE | CASCADED | CHAIN | CHANGED
| CHANNEL | CHECKSUM | PAGE_CHECKSUM | CIPHER | CLIENT | COALESCE | CODE | CHANNEL | CHECKSUM | PAGE_CHECKSUM | CIPHER | CLIENT | COALESCE | CODE
| COLUMNS | COLUMN_FORMAT | COMMENT | COMMIT | COMPACT | COLUMNS | COLUMN_FORMAT | COMMENT | COMMIT | COMPACT
| COMPLETION | COMPRESSED | COMPRESSION | CONCURRENT | COMPLETION | COMPRESSED | COMPRESSION | CONCURRENT
@ -2370,7 +2370,7 @@ keywordsCanBeId
| DISABLE | DISCARD | DISK | DO | DUMPFILE | DUPLICATE | DISABLE | DISCARD | DISK | DO | DUMPFILE | DUPLICATE
| DYNAMIC | ENABLE | ENCRYPTION | ENDS | ENGINE | ENGINES | DYNAMIC | ENABLE | ENCRYPTION | ENDS | ENGINE | ENGINES
| ERROR | ERRORS | ESCAPE | EVEN | EVENT | EVENTS | EVERY | ERROR | ERRORS | ESCAPE | EVEN | EVENT | EVENTS | EVERY
| EXCHANGE | EXCLUSIVE | EXPIRE | EXTENT_SIZE | FAULTS | EXCHANGE | EXCLUSIVE | EXPIRE | EXTENDED | EXTENT_SIZE | FAST | FAULTS
| FIELDS | FILE_BLOCK_SIZE | FILTER | FIRST | FIXED | FIELDS | FILE_BLOCK_SIZE | FILTER | FIRST | FIXED
| FOLLOWS | FULL | FUNCTION | GLOBAL | GRANTS | FOLLOWS | FULL | FUNCTION | GLOBAL | GRANTS
| GROUP_REPLICATION | HASH | HOST | IDENTIFIED | GROUP_REPLICATION | HASH | HOST | IDENTIFIED
@ -2388,7 +2388,7 @@ keywordsCanBeId
| MASTER_TLS_VERSION | MASTER_USER | MASTER_TLS_VERSION | MASTER_USER
| MAX_CONNECTIONS_PER_HOUR | MAX_QUERIES_PER_HOUR | MAX_CONNECTIONS_PER_HOUR | MAX_QUERIES_PER_HOUR
| MAX_ROWS | MAX_SIZE | MAX_UPDATES_PER_HOUR | MAX_ROWS | MAX_SIZE | MAX_UPDATES_PER_HOUR
| MAX_USER_CONNECTIONS | MEMORY | MERGE | MID | MIGRATE | MAX_USER_CONNECTIONS | MEDIUM | MEMORY | MERGE | MID | MIGRATE
| MIN_ROWS | MODIFY | MUTEX | MYSQL | NAME | NAMES | MIN_ROWS | MODIFY | MUTEX | MYSQL | NAME | NAMES
| NCHAR | NEVER | NO | NODEGROUP | NONE | OFFLINE | OFFSET | NCHAR | NEVER | NO | NODEGROUP | NONE | OFFLINE | OFFSET
| OJ | OLD_PASSWORD | ONE | ONLINE | ONLY | OPTIMIZER_COSTS | OJ | OLD_PASSWORD | ONE | ONLINE | ONLY | OPTIMIZER_COSTS