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

MySQL connector doesn't properly handle special characters in database object names

XMLWordPrintable

    • False
    • Hide

      None

      Show
      None
    • False
    • Low

      In order to make your issue reports as actionable as possible, please provide the following information, depending on the issue type.

      Bug report

      For bug reports, provide this information, please:

      What Debezium connector do you use and what version?

      MySQL, v3.1.2.Final

      What is the connector configuration?

      Irrelevant

      What is the captured database version and mode of deployment?

      Irrelevant

      What behavior do you expect?

      All databases and tables are handled correctly regardless of their names.

      What behavior do you see?

      Debezium doesn't handle the databases and tables that contain a backtick in their names.

      io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'DROP TABLE IF EXISTS `special_characters_test_e6serz`.`special"[`]$'`'
      mismatched input '$' 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:543)
       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:1002)
       at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:75)
       at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:48)
       at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:73)
       at io.debezium.connector.binlog.BinlogDatabaseSchema.parseDdl(BinlogDatabaseSchema.java:311)
       at io.debezium.connector.binlog.BinlogDatabaseSchema.parseSnapshotDdl(BinlogDatabaseSchema.java:243)
       at io.debezium.connector.binlog.BinlogSnapshotChangeEventSource.addSchemaEvent(BinlogSnapshotChangeEventSource.java:287)
       at io.debezium.connector.binlog.BinlogSnapshotChangeEventSource.readTableStructure(BinlogSnapshotChangeEventSource.java:329)
       at io.debezium.connector.binlog.BinlogSnapshotChangeEventSource.readTableStructure(BinlogSnapshotChangeEventSource.java:67)
       at io.debezium.relational.RelationalSnapshotChangeEventSource.doExecute(RelationalSnapshotChangeEventSource.java:163)
       at io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:96)
       at io.debezium.pipeline.ChangeEventSourceCoordinator.doSnapshot(ChangeEventSourceCoordinator.java:299)
       at io.debezium.pipeline.ChangeEventSourceCoordinator.doSnapshot(ChangeEventSourceCoordinator.java:283)
       at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:197)
       at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:148)
       at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
       at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
       at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
       at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
       at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
       at java.base/java.lang.Thread.run(Thread.java:1583)
      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:985)
       ... 20 common frames omitted 

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

      Yes, tested on the main branch.

       

       

              Unassigned Unassigned
              sergeimorozov Sergei Morozov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: