-
Bug
-
Resolution: Not a Bug
-
Major
-
3.0.7.Final, 3.1.0.Alpha2
-
None
-
False
-
None
-
False
Setting
schema.history.internal.skip.unparseable.ddl=true
Still causes an exception to be thrown when unparseable ddl is encoutered – at least for MariaDB
Reporducer:
start the tutorial example with maria db (Not available in main, here is a branch
Execute the following SQL
alter table customers add index idx_id (id);
alter table customers alter index if exists `idx_id` IGNORED;
The following error still happens:
io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'alter table customers alter index if exists `idx_id` IGNORED' connect-1 | no viable alternative at input 'alter table customers alter index if exists' connect-1 | at io.debezium.antlr.ParsingErrorListener.syntaxError(ParsingErrorListener.java:43) connect-1 | at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41) connect-1 | at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:543) connect-1 | at org.antlr.v4.runtime.DefaultErrorStrategy.reportNoViableAlternative(DefaultErrorStrategy.java:310) connect-1 | at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:136) connect-1 | at io.debezium.ddl.parser.mariadb.generated.MariaDBParser.sqlStatements(MariaDBParser.java:1270) connect-1 | at io.debezium.ddl.parser.mariadb.generated.MariaDBParser.root(MariaDBParser.java:990) connect-1 | at io.debezium.connector.mariadb.antlr.MariaDbAntlrDdlParser.parseTree(MariaDbAntlrDdlParser.java:72) connect-1 | at io.debezium.connector.mariadb.antlr.MariaDbAntlrDdlParser.parseTree(MariaDbAntlrDdlParser.java:46) connect-1 | at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:76) connect-1 | at io.debezium.connector.binlog.BinlogDatabaseSchema.parseDdl(BinlogDatabaseSchema.java:311) connect-1 | at io.debezium.connector.binlog.BinlogDatabaseSchema.parseStreamingDdl(BinlogDatabaseSchema.java:258) connect-1 | at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.handleQueryEvent(BinlogStreamingChangeEventSource.java:738) connect-1 | at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.lambda$execute$5(BinlogStreamingChangeEventSource.java:179) connect-1 | at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.handleEvent(BinlogStreamingChangeEventSource.java:571) connect-1 | at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.lambda$execute$17(BinlogStreamingChangeEventSource.java:209) connect-1 | at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1281) connect-1 | at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1103) connect-1 | at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:657) connect-1 | at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:959) connect-1 | at java.base/java.lang.Thread.run(Thread.java:1583) connect-1 | Caused by: org.antlr.v4.runtime.NoViableAltException connect-1 | at org.antlr.v4.runtime.atn.ParserATNSimulator.noViableAlt(ParserATNSimulator.java:2028) connect-1 | at org.antlr.v4.runtime.atn.ParserATNSimulator.execATN(ParserATNSimulator.java:467) connect-1 | at org.antlr.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:393) connect-1 | at io.debezium.ddl.parser.mariadb.generated.MariaDBParser.sqlStatements(MariaDBParser.java:1066) connect-1 | ... 15 more