From d4eec9f6da83901e90d84b8f491c077ab1f14632 Mon Sep 17 00:00:00 2001 From: ani-sha Date: Tue, 18 Apr 2023 15:02:24 +0530 Subject: [PATCH] DBZ-6331 Add support for WITH SYSTEM VERSIONING table option --- .../debezium/ddl/parser/mysql/generated/MySqlLexer.g4 | 2 ++ .../ddl/parser/mysql/generated/MySqlParser.g4 | 5 +++-- .../src/test/resources/mysql/examples/ddl_create.sql | 11 +++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlLexer.g4 b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlLexer.g4 index f5d64995a..a4f202160 100644 --- a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlLexer.g4 +++ b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlLexer.g4 @@ -1164,6 +1164,7 @@ SUBDATE: 'SUBDATE'; SUBSTRING_INDEX: 'SUBSTRING_INDEX'; SUBTIME: 'SUBTIME'; SYSTEM_USER: 'SYSTEM_USER'; +SYSTEM: 'SYSTEM'; TAN: 'TAN'; TIMEDIFF: 'TIMEDIFF'; TIMESTAMPADD: 'TIMESTAMPADD'; @@ -1186,6 +1187,7 @@ UUID: 'UUID'; UUID_SHORT: 'UUID_SHORT'; VALIDATE_PASSWORD_STRENGTH: 'VALIDATE_PASSWORD_STRENGTH'; VERSION: 'VERSION'; +VERSIONING: 'VERSIONING'; WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS'; WEEKDAY: 'WEEKDAY'; WEEKOFYEAR: 'WEEKOFYEAR'; diff --git a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 index ca19348e8..7fb2c56a8 100644 --- a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 +++ b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 @@ -516,6 +516,7 @@ tableOption | tablespaceStorage #tableOptionTablespace | TRANSACTIONAL '='? ('0' | '1') #tableOptionTransactional | UNION '='? '(' tables ')' #tableOptionUnion + | WITH SYSTEM VERSIONING #tableOptionWithSystemVersioning ; tableType @@ -2799,10 +2800,10 @@ keywordsCanBeId | SQL_BUFFER_RESULT | SQL_CACHE | SQL_NO_CACHE | SQL_THREAD | STACKED | START | STARTS | STATS_AUTO_RECALC | STATS_PERSISTENT | STATS_SAMPLE_PAGES | STATUS | STD | STDDEV | STDDEV_POP | STDDEV_SAMP | STOP | STORAGE | STRING | SUBCLASS_ORIGIN | SUBJECT | SUBPARTITION | SUBPARTITIONS | SUM | SUSPEND | SWAPS | SWITCHES - | SYSTEM_VARIABLES_ADMIN | TABLE_NAME | TABLESPACE | TABLE_ENCRYPTION_ADMIN | TABLE_TYPE | TEMPORARY | TEMPTABLE + | SYSTEM_VARIABLES_ADMIN | SYSTEM | TABLE_NAME | TABLESPACE | TABLE_ENCRYPTION_ADMIN | TABLE_TYPE | TEMPORARY | TEMPTABLE | THAN | TP_CONNECTION_ADMIN | TRADITIONAL | TRANSACTION | TRANSACTIONAL | TRIGGERS | TRUNCATE | UNBOUNDED | UNDEFINED | UNDOFILE | UNDO_BUFFER_SIZE | UNINSTALL | UNKNOWN | UNTIL | UPGRADE | USA | USER | USE_FRM | USER_RESOURCES | VALIDATION - | VALUE | VAR_POP | VAR_SAMP | VARIABLES | VARIANCE | VERSION_TOKEN_ADMIN | VIEW | VIRTUAL | WAIT | WARNINGS + | VALUE | VAR_POP | VAR_SAMP | VARIABLES | VARIANCE | VERSIONING | VERSION_TOKEN_ADMIN | VIEW | VIRTUAL | WAIT | WARNINGS | WITHOUT | WORK | WRAPPER | X509 | XA | XA_RECOVER_ADMIN | XML // MariaDB-specific only | BINLOG_MONITOR | BINLOG_REPLAY | CURRENT_ROLE | CYCLE | ENCRYPTED | ENCRYPTION_KEY_ID | FEDERATED_ADMIN diff --git a/debezium-ddl-parser/src/test/resources/mysql/examples/ddl_create.sql b/debezium-ddl-parser/src/test/resources/mysql/examples/ddl_create.sql index 13f947cc6..a8dfbc5a8 100644 --- a/debezium-ddl-parser/src/test/resources/mysql/examples/ddl_create.sql +++ b/debezium-ddl-parser/src/test/resources/mysql/examples/ddl_create.sql @@ -182,6 +182,17 @@ DATE_ADD datetime DEFAULT NULL, primary key (USER_ID, GROUP_ID) ); +CREATE TABLE `EmailTemplates` ( + `EmailID` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, + `AccountID` BIGINT(12) unsigned NOT NULL DEFAULT 0, + `WebsiteTemplateTitle` VARCHAR(100) NOT NULL, + `Subject` VARCHAR(128) NOT NULL, + `MailBody` TEXT NOT NULL, + `MailHtmlBody` TEXT DEFAULT NULL, + PRIMARY KEY (`EmailID`), + KEY `ixAccount` (`AccountID`) USING BTREE +) ENGINE=INNODB AUTO_INCREMENT=5396 DEFAULT CHARSET=LATIN1 ROW_FORMAT=DYNAMIC WITH SYSTEM VERSIONING; + CREATE TABLE T1 ( ID INT NOT NULL, NAME VARCHAR(255),