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

Column with default UUID_SHORT() cannot be added

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • under-triaging
    • 3.1.0.Alpha2
    • mariadb-connector
    • None
    • False
    • None
    • False
    • Moderate

      Bug report

      What Debezium connector do you use and what version?

      MySqlConnector 3.1.0.Alpha2

      What is the connector configuration?

       

      {
        "name": "source-mariadb-direct-b-v1-0-20240306-1",
        "config": {
          "connector.class": "io.debezium.connector.mysql.MySqlConnector",
          "tasks.max": "1",
          "database.hostname": "XXXX",
          "database.port": "3306",
          "database.user": "XXX",
          "database.password": "XXX",
          "database.serverTimezone": "UTC",
          "database.server.id": "XXX",
          "topic.prefix": "source.mariadb.direct-v1-0",
          "database.initial.statements": "SET SESSION max_statement_time=XXX;SET CHARACTER SET utf8mb4;",
          "database.include.list": "dbname",
          "table.include.list": "dbname.tablename,dbname.product_indicator",
          "schema.history.internal.kafka.topic": "source.mariadb.direct-b-v1-0.history",
          "schema.history.internal.kafka.bootstrap.servers": "XXX",
          "schema.history.internal.kafka.recovery.poll.interval.ms": "1100",
          "schema.history.internal.skip.unparseable.ddl": "true",
          "schema.history.internal.store.only.monitored.tables.ddl": "true",
          "include.schema.changes": "false",
          "producer.override.compression.type": "zstd",
          "producer.override.max.request.size": "2000000",
          "errors.log.enable": "true",
          "errors.log.include.messages": "true",
          "transforms": "ExtractField",
          "transforms.ExtractField.type": "org.apache.kafka.connect.transforms.ExtractField$Key",
          "transforms.ExtractField.field": "id",
          "key.converter": "org.apache.kafka.connect.storage.StringConverter",
          "key.converter.schemas.enable": false,
          "value.converter": "io.confluent.connect.avro.AvroConverter",
          "value.converter.schema.registry.url": "XXX",
          "value.converter.schemas.enable": false,
          "provide.transaction.metadata": true,
          "snapshot.locking.mode": "none",
          "schema.name.adjustment.mode": "avro"
        }
      } 

       

       

      What is the captured database version and mode of deployment?

      RDS mariadb version 10.11.10

      What behavior do you expect?

      The column uid to be added to the schema of product_indicator table

      What behavior do you see?

      The column uid is not added to the schema of product_indicator table, so the connector fails on updating/adding records to the table.

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

      We are on the last Alpha available at the moment

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

      Ignoring unparseable DDL statement 'ALTER TABLE dbname.product_indicator ADD uid VARCHAR(32) DEFAULT UUID_SHORT() NOT NULL COMMENT 'Unique product indicator identifier.'  AFTER id' (io.debezium.connector.binlog.BinlogDatabaseSchema)
      io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'ALTER TABLE dbname.product_indicator ADD uid VARCHAR(32) DEFAULT UUID_SHORT() NOT NULL COMMENT 'Unique product indicator identifier.'  AFTER id'
      no viable alternative at input 'ALTER TABLE dbname.product_indicator ADD uid VARCHAR(32) DEFAULT UUID_SHORT'
      	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.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:1264)
      	at io.debezium.ddl.parser.mysql.generated.MySqlParser.root(MySqlParser.java:980)
      	at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:74)
      	at io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser.parseTree(MySqlAntlrDdlParser.java:48)
      	at io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:76)
      	at io.debezium.connector.binlog.BinlogDatabaseSchema.parseDdl(BinlogDatabaseSchema.java:311)
      	at io.debezium.connector.binlog.BinlogDatabaseSchema.parseStreamingDdl(BinlogDatabaseSchema.java:258)
      	at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.handleQueryEvent(BinlogStreamingChangeEventSource.java:738)
      	at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.lambda$execute$5(BinlogStreamingChangeEventSource.java:179)
      	at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.handleEvent(BinlogStreamingChangeEventSource.java:571)
      	at io.debezium.connector.binlog.BinlogStreamingChangeEventSource.lambda$execute$17(BinlogStreamingChangeEventSource.java:209)
      	at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1281)
      	at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1103)
      	at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:657)
      	at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:959)
      	at java.base/java.lang.Thread.run(Unknown Source)
      Caused by: org.antlr.v4.runtime.NoViableAltException
      	at org.antlr.v4.runtime.atn.ParserATNSimulator.noViableAlt(ParserATNSimulator.java:2028)
      	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:1056)

      How to reproduce the issue using our tutorial deployment?

      • create a table with 1 column
      • add a record to the table
      • start debezium
      • add a column with default value UUID_SHORT()
      • the connector will fail when trying to update the record, because it will find only 1 column in the schema, but 2 columns in the update

       

              Unassigned Unassigned
              laura-radaelli Laura Radaelli (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: