Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-2151

ANTLR parser doesn't handle MariaDB syntax drop index IF EXISTS as part of alter table DDL

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Minor Minor
    • 1.2.0.CR1
    • 1.1.1.Final
    • mysql-connector
    • None
    • Hide

      Run ALTER TABLE DROP INDEX IF EXISTS x

      Show
      Run ALTER TABLE DROP INDEX IF EXISTS x

      Run ALTER TABLE DROP INDEX IF EXISTS x

      https://mariadb.com/kb/en/alter-table/#drop-index

      org.apache.kafka.connect.errors.ConnectException: no viable alternative 
       at input 'ALTER TABLE `organization_transfer_organization_users`\nDROP INDEX IF'
       at io.debezium.connector.mysql.AbstractReader.wrap(AbstractReader.java:230)
       at io.debezium.connector.mysql.AbstractReader.failed(AbstractReader.java:207)
       at io.debezium.connector.mysql.BinlogReader.handleEvent(BinlogReader.java:536)
       at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1095)
       at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:943)
       at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:580)
       at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:825)
       at java.lang.Thread.run(Thread.java:748) Caused by: io.debezium.text.ParsingException: no viable alternative
       at input 'ALTER TABLE `organization_transfer_organization_users`\nDROP INDEX IF'
       at io.debezium.antlr.ParsingErrorListener.syntaxError(ParsingErrorListener.java:40)
       at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41)
       at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544)
       at org.antlr.v4.runtime.DefaultErrorStrategy.reportNoViableAlternative(DefaultErrorStrategy.java:310)
       at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:136)
       at io.debezium.ddl.parser.mysql.generated.MySqlParser.sqlStatements(MySqlParser.java:1121)
       at io.debezium.ddl.parser.mysql.generated.MySqlParser.root(MySqlParser.java:849)
       at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:68)
       at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:41)
       at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:80)
       at io.debezium.connector.mysql.MySqlSchema.applyDdl(MySqlSchema.java:308)
       at io.debezium.connector.mysql.BinlogReader.handleQueryEvent(BinlogReader.java:729)
       at io.debezium.connector.mysql.BinlogReader.handleEvent(BinlogReader.java:519) ... 5 more Caused by: org.antlr.v4.runtime.NoViableAltException
       at org.antlr.v4.runtime.atn.ParserATNSimulator.noViableAlt(ParserATNSimulator.java:2026)
       at org.antlr.v4.runtime.atn.ParserATNSimulator.execATN(ParserATNSimulator.java:467)
       at org.antlr.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:393)
       at io.debezium.ddl.parser.mysql.generated.MySqlParser.sqlStatements(MySqlParser.java:923) ... 12 more 
      

              Unassigned Unassigned
              justinhiza Justin Hiza (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: