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

DDL parse fail for ALTER USER x DEFAULT ROLE y;

XMLWordPrintable

    • False
    • None
    • False

      Bug report

      What Debezium connector do you use and what version?

      MySQL connector 1.9.7.Final

      What is the connector configuration?

      Irrelevant in this case.

      What is the captured database version and mode of depoyment?

      Google CloudSQL

      What behaviour do you expect?

      Debezium parses DDL

      What behaviour do you see?

       

      2023-01-17 15:49:38.346 WARN [debezium-export,,] 110016 — [.250.240.2:3306] i.d.connector.mysql.MySqlDatabaseSchema : Ignoring unparseable DDL statement 'ALTER USER 'mattias.hultman' DEFAULT ROLE `prod-spain-mysql-read-only`@`%`': {}
      io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'ALTER USER 'mattias.hultman' DEFAULT ROLE `prod-spain-mysql-read-only`@`%`'
      mismatched input 'DEFAULT' expecting {<EOF>, '-'}
      at io.debezium.antlr.ParsingErrorListener.syntaxError(ParsingErrorListener.java:43)
      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.reportInputMismatch(DefaultErrorStrategy.java:327)
      at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:139)
      at io.debezium.ddl.parser.mysql.generated.MySqlParser.root(MySqlParser.java:972)
      at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:73)
      at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:45)
      at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:82)
      at io.debezium.connector.mysql.MySqlDatabaseSchema.parseDdl(MySqlDatabaseSchema.java:224)
      at io.debezium.connector.mysql.MySqlDatabaseSchema.parseStreamingDdl(MySqlDatabaseSchema.java:210)
      at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleQueryEvent(MySqlStreamingChangeEventSource.java:571)
      at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$14(MySqlStreamingChangeEventSource.java:846)
      at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:354)
      at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$25(MySqlStreamingChangeEventSource.java:874)
      at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1246)
      at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1072)
      at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631)
      at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932)
      at java.base/java.lang.Thread.run(Thread.java:829)
      Caused by: org.antlr.v4.runtime.InputMismatchException: null
      at org.antlr.v4.runtime.DefaultErrorStrategy.sync(DefaultErrorStrategy.java:270)
      at io.debezium.ddl.parser.mysql.generated.MySqlParser.root(MySqlParser.java:955)
      ... 14 common frames omitted
      

       

      Do you see the same behaviour using the latest relesead Debezium version?

      Haven't tried, but i checked the MySQLParser.g4 sources in main branch, and the issue is still there as far as I can tell.

      Do you have the connector logs, ideally from start till finish?

      See above.

      How to reproduce the issue using our tutorial deployment?

      Bug is best reproduced by unit tests, trying to parse the DDL 
      ALTER USER 'mattias.hultman' DEFAULT ROLE `prod-spain-mysql-read-only`@`%`
       

              anmohant Anisha Mohanty
              tommy.karlsson Tommy Karlsson (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: