DBZ-4675 parse MariaDB PAGE_COMPRESSED and PAGE_COMPRESSION_LEVEL table options

This commit is contained in:
Ismail Simsek 2022-02-04 14:46:33 +01:00 committed by Chris Cranford
parent 0ab45ecab0
commit 25ed5898c5
3 changed files with 43 additions and 0 deletions

View File

@ -641,6 +641,45 @@ public void shouldSupportCreateTableWithEcrytion() {
assertThat(((MySqlAntlrDdlParser) parser).getParsingExceptionsFromWalker().size()).isEqualTo(0);
}
@Test
@FixFor("DBZ-4675")
public void shouldSupportCreateTableWithCompressed() {
parser.parse(
"CREATE TABLE `my_table_page_compressed1` (\n" +
"`column1` bigint(20) NOT NULL,\n" +
"`column2` bigint(20) NOT NULL,\n" +
"`column3` bigint(20) NOT NULL,\n" +
"`column4` bigint(20) NOT NULL,\n" +
"`column5` bigint(20) NOT NULL,\n" +
"`column6` bigint(20) NOT NULL,\n" +
"`column7` bigint(20) NOT NULL,\n" +
"`column8` blob,\n" +
"`column9` varchar(64) DEFAULT NULL,\n" +
"PRIMARY KEY (`column1`),\n" +
"KEY `idx_my_index_column2` (`column2`)\n" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED `encrypted`=yes `page_compressed`=0",
tables);
parser.parse(
"CREATE TABLE `my_table_page_compressed2` (\n" +
"`column1` bigint(20) NOT NULL" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED " +
"`encrypted`=yes `page_compressed`=1 `PAGE_COMPRESSION_LEVEL`=0",
tables);
parser.parse(
"CREATE TABLE `my_table_page_compressed3` (\n" +
"`column1` bigint(20) NOT NULL" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED " +
"`encrypted`=yes page_compressed=1 `page_compression_level`=3",
tables);
parser.parse(
"CREATE TABLE `my_table_page_compressed4` (\n" +
"`column1` bigint(20) NOT NULL" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED " +
"`encrypted`=yes `page_compressed`=0 PAGE_COMPRESSION_LEVEL=3",
tables);
assertThat(((MySqlAntlrDdlParser) parser).getParsingExceptionsFromWalker().size()).isEqualTo(0);
}
@Test
@FixFor("DBZ-1349")
public void shouldSupportUtfMb3Charset() {

View File

@ -451,6 +451,8 @@ ENABLE: 'ENABLE';
ENCRYPTION: 'ENCRYPTION';
ENCRYPTED: 'ENCRYPTED';
ENCRYPTION_KEY_ID: 'ENCRYPTION_KEY_ID';
PAGE_COMPRESSED: 'PAGE_COMPRESSED';
PAGE_COMPRESSION_LEVEL: 'PAGE_COMPRESSION_LEVEL';
END: 'END';
ENDS: 'ENDS';
ENGINE: 'ENGINE';

View File

@ -429,6 +429,8 @@ tableOption
| DELAY_KEY_WRITE '='? boolValue=('0' | '1') #tableOptionDelay
| ENCRYPTION '='? STRING_LITERAL #tableOptionEncryption
| encryptedLiteral '='? (YES | NO) #tableOptionEncrypted
| (PAGE_COMPRESSED | STRING_LITERAL) '='? ('0' | '1') #tableOptionPageCompressed
| (PAGE_COMPRESSION_LEVEL | STRING_LITERAL) '='? decimalLiteral #tableOptionPageCompressionLevel
| ENCRYPTION_KEY_ID '='? decimalLiteral #tableOptionEncryptionKeyId
| INDEX DIRECTORY '='? STRING_LITERAL #tableOptionIndexDirectory
| INSERT_METHOD '='? insertMethod=(NO | FIRST | LAST) #tableOptionInsertMethod