-
Bug
-
Resolution: Unresolved
-
Major
-
3.1.3.Final
-
None
-
False
-
-
False
-
Important
Unable to connect to mariadb with Transaction-Precise History: https://mariadb.com/docs/server/reference/sql-structure/temporal-tables/system-versioned-tables#transaction-precise-history-in-innodb
Bug report
{"name":"mariadb","connector":{"state":"RUNNING","worker_id":"172.19.0.7:8083"},"tasks":[{"id":0,"state":"FAILED","worker_id":"172.19.0.7:8083","trace":"org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.\n\tat io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:67)\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:154)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\nCaused by: io.debezium.DebeziumException: io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'CREATE TABLE `t` (\n `x` int(11) DEFAULT NULL,\n `start_trxid` bigint(20) unsigned GENERATED ALWAYS AS ROW START,\n `end_trxid` bigint(20) unsigned GENERATED ALWAYS AS ROW END,\n PERIOD FOR SYSTEM_TIME (`start_trxid`, `end_trxid`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci WITH SYSTEM VERSIONING'\nno viable alternative at input 'CREATE TABLE `t` (\\n `x` int(11) DEFAULT NULL,\\n `start_trxid` bigint(20) unsigned GENERATED ALWAYS AS ROW'\n\tat io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:105)\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.doSnapshot(ChangeEventSourceCoordinator.java:298)\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.doSnapshot(ChangeEventSourceCoordinator.java:282)\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:196)\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:147)\n\t... 5 more\nCaused by: io.debezium.text.ParsingException: DDL statement couldn't be parsed. Please open a Jira issue with the statement 'CREATE TABLE `t` (\n `x` int(11) DEFAULT NULL,\n `start_trxid` bigint(20) unsigned GENERATED ALWAYS AS ROW START,\n `end_trxid` bigint(20) unsigned GENERATED ALWAYS AS ROW END,\n PERIOD FOR SYSTEM_TIME (`start_trxid`, `end_trxid`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci WITH SYSTEM VERSIONING'\nno viable alternative at input 'CREATE TABLE `t` (\\n `x` int(11) DEFAULT NULL,\\n `start_trxid` bigint(20) unsigned GENERATED ALWAYS AS ROW'\n\tat io.debezium.antlr.ParsingErrorListener.syntaxError(ParsingErrorListener.java:43)\n\tat org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41)\n\tat org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:543)\n\tat org.antlr.v4.runtime.DefaultErrorStrategy.reportNoViableAlternative(DefaultErrorStrategy.java:310)\n\tat org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:136)\n\tat io.debezium.ddl.parser.mariadb.generated.MariaDBParser.sqlStatements(MariaDBParser.java:1271)\n\tat io.debezium.ddl.parser.mariadb.generated.MariaDBParser.root(MariaDBParser.java:991)\n\tat io.debezium.connector.mariadb.antlr.MariaDbAntlrDdlParser.parseTree(MariaDbAntlrDdlParser.java:73)\n\tat io.debezium.connector.mariadb.antlr.MariaDbAntlrDdlParser.parseTree(MariaDbAntlrDdlParser.java:46)\n\tat io.debezium.antlr.AntlrDdlParser.parse(AntlrDdlParser.java:73)\n\tat io.debezium.connector.binlog.BinlogDatabaseSchema.parseDdl(BinlogDatabaseSchema.java:311)\n\tat io.debezium.connector.binlog.BinlogDatabaseSchema.parseSnapshotDdl(BinlogDatabaseSchema.java:243)\n\tat io.debezium.connector.binlog.BinlogSnapshotChangeEventSource.addSchemaEvent(BinlogSnapshotChangeEventSource.java:287)\n\tat io.debezium.connector.binlog.BinlogSnapshotChangeEventSource.lambda$createSchemaEventsForTables$4(BinlogSnapshotChangeEventSource.java:388)\n\tat io.debezium.jdbc.JdbcConnection.query(JdbcConnection.java:566)\n\tat io.debezium.jdbc.JdbcConnection.query(JdbcConnection.java:506)\n\tat io.debezium.connector.binlog.BinlogSnapshotChangeEventSource.createSchemaEventsForTables(BinlogSnapshotChangeEventSource.java:386)\n\tat io.debezium.connector.binlog.BinlogSnapshotChangeEventSource.readTableStructure(BinlogSnapshotChangeEventSource.java:360)\n\tat io.debezium.connector.binlog.BinlogSnapshotChangeEventSource.readTableStructure(BinlogSnapshotChangeEventSource.java:67)\n\tat io.debezium.relational.RelationalSnapshotChangeEventSource.doExecute(RelationalSnapshotChangeEventSource.java:163)\n\tat io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:96)\n\t... 9 more\nCaused by: org.antlr.v4.runtime.NoViableAltException\n\tat org.antlr.v4.runtime.atn.ParserATNSimulator.noViableAlt(ParserATNSimulator.java:2028)\n\tat org.antlr.v4.runtime.atn.ParserATNSimulator.execATN(ParserATNSimulator.java:467)\n\tat org.antlr.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:393)\n\tat io.debezium.ddl.parser.mariadb.generated.MariaDBParser.sqlStatements(MariaDBParser.java:1067)\n\t... 24 more\n"}],"type":"source"}
What Debezium connector do you use and what version?
Any version
What is the connector configuration?
{
"connector.class": "io.debezium.connector.mariadb.MariaDbConnector",
"topic.prefix": "mariadb",
"schema.history.internal.kafka.topic": "schema-changes.mariadb",
"schema.history.internal.kafka.bootstrap.servers": "kafka:29092",
"database.server.name": "mariadb",
"database.server.id": 5765,
"database.hostname": "mariadb",
"database.port": "3306",
"database.user": "root",
"database.password": "password",
"database.include.list": "inventory,testdb",
"table.exclude.list": "inventory.audit_log,inventory.temp_data,inventory.staging_.*",
"column.exclude.list": "inventory.customers.password,inventory.users.secret_key",
"key.converter": "io.confluent.connect.avro.AvroConverter",
"value.converter": "io.confluent.connect.avro.AvroConverter",
"key.converter.schema.registry.url": "http://schema-registry:8081",
"value.converter.schema.registry.url": "http://schema-registry:8081",
"snapshot.mode": "no_data",
"include.schema.changes": "false",
"schema.history.internal.store.only.captured.tables.ddl": "true"
}
What is the captured database version and mode of deployment?
Docker
What behavior do you expect?
No error
What behavior do you see?
DDL statement couldn't be parsed.
Do you see the same behaviour using the latest released Debezium version?
any version include 2.7, 3.1.2 and 3.2
Do you have the connector logs, ideally from start till finish?
cf above
How to reproduce the issue using our tutorial deployment?
Table creation
CREATE TABLE t( x INT, start_trxid BIGINT UNSIGNED GENERATED ALWAYS AS ROW START, end_trxid BIGINT UNSIGNED GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME(start_trxid, end_trxid)) WITH SYSTEM VERSIONING;