DBZ-646 Enhancing DDL parser to support compression parameter used with
CREATE TABLE on TokuDB
This commit is contained in:
parent
d73c27d9bd
commit
b7f13213b2
@ -418,7 +418,8 @@ protected boolean parseTableOption(Marker start, TableEditor table) {
|
||||
return true;
|
||||
} else if (tokens.canConsumeAnyOf("CHECKSUM", "ENGINE", "AVG_ROW_LENGTH", "MAX_ROWS", "MIN_ROWS", "ROW_FORMAT",
|
||||
"DELAY_KEY_WRITE", "INSERT_METHOD", "KEY_BLOCK_SIZE", "PACK_KEYS",
|
||||
"STATS_AUTO_RECALC", "STATS_PERSISTENT", "STATS_SAMPLE_PAGES" , "PAGE_CHECKSUM" )) {
|
||||
"STATS_AUTO_RECALC", "STATS_PERSISTENT", "STATS_SAMPLE_PAGES" , "PAGE_CHECKSUM",
|
||||
"COMPRESSION")) {
|
||||
// One option token followed by '=' by a single value
|
||||
tokens.canConsume('=');
|
||||
tokens.consume();
|
||||
@ -437,7 +438,7 @@ protected boolean parseTableOption(Marker start, TableEditor table) {
|
||||
tokens.canConsume('=');
|
||||
tokens.consume();
|
||||
return true;
|
||||
} else if (tokens.canConsumeAnyOf("COMMENT", "COMPRESSION", "CONNECTION", "ENCRYPTION", "PASSWORD")) {
|
||||
} else if (tokens.canConsumeAnyOf("COMMENT", "CONNECTION", "ENCRYPTION", "PASSWORD")) {
|
||||
tokens.canConsume('=');
|
||||
consumeQuotedString();
|
||||
return true;
|
||||
|
@ -148,6 +148,20 @@ public void shouldParseCreateTableStatementWithCollate() {
|
||||
Column column = table.columnWithName("v1");
|
||||
assertThat(column.typeUsesCharset()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
@FixFor("DBZ-646")
|
||||
public void shouldParseTokuDBTable() {
|
||||
String ddl = "CREATE TABLE foo ( " + System.lineSeparator()
|
||||
+ " c1 INTEGER NOT NULL, " + System.lineSeparator()
|
||||
+ " c2 VARCHAR(22) " + System.lineSeparator()
|
||||
+ ") engine=TokuDB `compression`=tokudb_zlib;";
|
||||
parser.parse(ddl, tables);
|
||||
assertThat(tables.size()).isEqualTo(1);
|
||||
listener.assertNext().createTableNamed("foo").ddlStartsWith("CREATE TABLE foo (");
|
||||
parser.parse("DROP TABLE foo", tables);
|
||||
assertThat(tables.size()).isEqualTo(0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldParseCreateUserTable() {
|
||||
|
Loading…
Reference in New Issue
Block a user