You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "JunboWang (Jira)" <ji...@apache.org> on 2025/11/07 07:30:00 UTC
[jira] [Created] (FLINK-38641) Trim surrounding double quotes from default values for BIGINT and SMALLINT types when parsing MySQL DDL
JunboWang created FLINK-38641:
---------------------------------
Summary: Trim surrounding double quotes from default values for BIGINT and SMALLINT types when parsing MySQL DDL
Key: FLINK-38641
URL: https://issues.apache.org/jira/browse/FLINK-38641
Project: Flink
Issue Type: Improvement
Components: Flink CDC
Affects Versions: cdc-3.5.0
Environment: Flink CDC 3.5.0
Reporter: JunboWang
User may use DDL SQL like
{code:java}
// code placeholder
alter table test_tbl add column `col4` INT NOT NULL DEFAULT " 0";
alter table test_tbl add column `col5` DOUBLE NOT NULL DEFAULT " 0.0";
alter table test_tbl add column `col6` BIGINT NOT NULL DEFAULT " 0"; {code}
And we will meet Exception like this:
{code:java}
// code placeholder
18445 [Source Data Fetcher for Source: default_value_test[1] -> ConstraintEnforcer[2] (1/4)#0] ERROR org.apache.flink.connector.base.source.reader.fetcher.SplitFetcherManager - Received uncaught exception.
java.lang.RuntimeException: SplitFetcher thread 0 received unexpected exception while polling the records
at org.apache.flink.connector.base.source.reader.fetcher.SplitFetcher.runOnce(SplitFetcher.java:168) ~[flink-connector-base-1.18.0-qiyi-1.jar:1.18.0-qiyi-1]
at org.apache.flink.connector.base.source.reader.fetcher.SplitFetcher.run(SplitFetcher.java:117) [flink-connector-base-1.18.0-qiyi-1.jar:1.18.0-qiyi-1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_401]
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) [?:1.8.0_401]
at java.util.concurrent.FutureTask.run(FutureTask.java) [?:1.8.0_401]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_401]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_401]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_401]
Caused by: org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.
at io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:50) ~[debezium-core-1.9.8.Final.jar:1.9.8.Final]
at org.apache.flink.cdc.connectors.mysql.debezium.task.context.MySqlErrorHandler.setProducerThrowable(MySqlErrorHandler.java:86) ~[classes/:?]
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:430) ~[classes/:?]
at org.apache.flink.cdc.connectors.mysql.debezium.task.MySqlBinlogSplitReadTask.handleEvent(MySqlBinlogSplitReadTask.java:96) ~[classes/:?]
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$25(MySqlStreamingChangeEventSource.java:1096) ~[classes/:?]
at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1246) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1072) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
... 1 more
Caused by: io.debezium.DebeziumException: Error processing binlog event
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:430) ~[classes/:?]
at org.apache.flink.cdc.connectors.mysql.debezium.task.MySqlBinlogSplitReadTask.handleEvent(MySqlBinlogSplitReadTask.java:96) ~[classes/:?]
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$25(MySqlStreamingChangeEventSource.java:1096) ~[classes/:?]
at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1246) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1072) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
... 1 more
Caused by: io.debezium.DebeziumException: java.lang.NumberFormatException: For input string: "" 0 ""
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$handleQueryEvent$2(MySqlStreamingChangeEventSource.java:675) ~[classes/:?]
at org.apache.flink.cdc.connectors.mysql.debezium.dispatcher.EventDispatcherImpl.dispatchSchemaChangeEvent(EventDispatcherImpl.java:145) ~[classes/:?]
at org.apache.flink.cdc.connectors.mysql.debezium.dispatcher.EventDispatcherImpl.dispatchSchemaChangeEvent(EventDispatcherImpl.java:64) ~[classes/:?]
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleQueryEvent(MySqlStreamingChangeEventSource.java:668) ~[classes/:?]
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$14(MySqlStreamingChangeEventSource.java:1050) ~[classes/:?]
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:409) ~[classes/:?]
at org.apache.flink.cdc.connectors.mysql.debezium.task.MySqlBinlogSplitReadTask.handleEvent(MySqlBinlogSplitReadTask.java:96) ~[classes/:?]
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$25(MySqlStreamingChangeEventSource.java:1096) ~[classes/:?]
at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1246) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1072) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
... 1 more
Caused by: java.lang.NumberFormatException: For input string: "" 0 ""
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043) ~[?:1.8.0_401]
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110) ~[?:1.8.0_401]
at java.lang.Double.parseDouble(Double.java:538) ~[?:1.8.0_401]
at io.debezium.connector.mysql.MySqlValueConverters.convertSmallInt(MySqlValueConverters.java:459) ~[classes/:?]
at io.debezium.jdbc.JdbcValueConverters.lambda$converter$4(JdbcValueConverters.java:293) ~[debezium-core-1.9.8.Final.jar:1.9.8.Final]
at io.debezium.connector.mysql.MySqlDefaultValueConverter.parseDefaultValue(MySqlDefaultValueConverter.java:140) ~[classes/:?]
at io.debezium.relational.TableSchemaBuilder.lambda$addField$9(TableSchemaBuilder.java:393) ~[debezium-core-1.9.8.Final.jar:?]
at java.util.Optional.flatMap(Optional.java:241) ~[?:1.8.0_401]
at io.debezium.relational.TableSchemaBuilder.addField(TableSchemaBuilder.java:393) ~[debezium-core-1.9.8.Final.jar:?]
at io.debezium.relational.TableSchemaBuilder.lambda$create$2(TableSchemaBuilder.java:149) ~[debezium-core-1.9.8.Final.jar:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:1.8.0_401]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_401]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384) ~[?:1.8.0_401]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_401]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_401]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:1.8.0_401]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:1.8.0_401]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_401]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[?:1.8.0_401]
at io.debezium.relational.TableSchemaBuilder.create(TableSchemaBuilder.java:147) ~[debezium-core-1.9.8.Final.jar:?]
at io.debezium.relational.RelationalDatabaseSchema.buildAndRegisterSchema(RelationalDatabaseSchema.java:135) ~[debezium-core-1.9.8.Final.jar:?]
at io.debezium.connector.mysql.MySqlDatabaseSchema.lambda$applySchemaChange$2(MySqlDatabaseSchema.java:179) ~[debezium-connector-mysql-1.9.8.Final.jar:?]
at java.lang.Iterable.forEach(Iterable.java:75) ~[?:1.8.0_401]
at io.debezium.connector.mysql.MySqlDatabaseSchema.applySchemaChange(MySqlDatabaseSchema.java:179) ~[debezium-connector-mysql-1.9.8.Final.jar:?]
at org.apache.flink.cdc.connectors.mysql.debezium.dispatcher.EventDispatcherImpl$SchemaChangeEventReceiver.schemaChangeEvent(EventDispatcherImpl.java:216) ~[classes/:?]
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$handleQueryEvent$2(MySqlStreamingChangeEventSource.java:673) ~[classes/:?]
at org.apache.flink.cdc.connectors.mysql.debezium.dispatcher.EventDispatcherImpl.dispatchSchemaChangeEvent(EventDispatcherImpl.java:145) ~[classes/:?]
at org.apache.flink.cdc.connectors.mysql.debezium.dispatcher.EventDispatcherImpl.dispatchSchemaChangeEvent(EventDispatcherImpl.java:64) ~[classes/:?]
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleQueryEvent(MySqlStreamingChangeEventSource.java:668) ~[classes/:?]
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$14(MySqlStreamingChangeEventSource.java:1050) ~[classes/:?]
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:409) ~[classes/:?]
at org.apache.flink.cdc.connectors.mysql.debezium.task.MySqlBinlogSplitReadTask.handleEvent(MySqlBinlogSplitReadTask.java:96) ~[classes/:?]
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.lambda$execute$25(MySqlStreamingChangeEventSource.java:1096) ~[classes/:?]
at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1246) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1072) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932) ~[mysql-binlog-connector-java-0.27.2.jar:0.27.2]
... 1 more {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)