[
https://issues.apache.org/jira/browse/FLINK-20386?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jark Wu updated FLINK-20386:
----------------------------
Description:
The primary key of the MySQL is an INT UNSIGNED column, but declared INT in
Flink.
I know the
[docs|https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/connectors/jdbc.html#data-type-mapping]
say it should be decalred BIGINT in Flink, however, would be better not fail
the job.
At least, the exception is hard to understand for users. We can also check the
schema before start the job.
{code}
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
at
org.apache.flink.table.data.GenericRowData.getInt(GenericRowData.java:149)
~[flink-table-blink_2.11-1.11-vvr-2.1.1-SNAPSHOT.jar:1.11-vvr-2.1.1-SNAPSHOT]
at JoinTableFuncCollector$6460.collect(Unknown Source) ~[?:?]
at
org.apache.flink.table.functions.TableFunction.collect(TableFunction.java:203)
~[flink-table-blink_2.11-1.11-vvr-2.1.1-SNAPSHOT.jar:1.11-vvr-2.1.1-SNAPSHOT]
at
org.apache.flink.connector.jdbc.table.JdbcRowDataLookupFunction.eval(JdbcRowDataLookupFunction.java:162)
~[?:?]
{code}
was:
The primary key of the MySQL is an INT UNSIGNED column, but declared INT in
Flink.
I know the
[docs|https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/connectors/jdbc.html#data-type-mapping]
say it should be decalred BIGINT in Flink, however, would be better not fail
the job.
{code}
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
at
org.apache.flink.table.data.GenericRowData.getInt(GenericRowData.java:149)
~[flink-table-blink_2.11-1.11-vvr-2.1.1-SNAPSHOT.jar:1.11-vvr-2.1.1-SNAPSHOT]
at JoinTableFuncCollector$6460.collect(Unknown Source) ~[?:?]
at
org.apache.flink.table.functions.TableFunction.collect(TableFunction.java:203)
~[flink-table-blink_2.11-1.11-vvr-2.1.1-SNAPSHOT.jar:1.11-vvr-2.1.1-SNAPSHOT]
at
org.apache.flink.connector.jdbc.table.JdbcRowDataLookupFunction.eval(JdbcRowDataLookupFunction.java:162)
~[?:?]
{code}
> ClassCastException when lookup join a JDBC table on INT UNSIGNED column
> -----------------------------------------------------------------------
>
> Key: FLINK-20386
> URL: https://issues.apache.org/jira/browse/FLINK-20386
> Project: Flink
> Issue Type: Bug
> Components: Connectors / JDBC, Table SQL / Ecosystem
> Affects Versions: 1.12.0, 1.11.2
> Reporter: Jark Wu
> Priority: Major
>
> The primary key of the MySQL is an INT UNSIGNED column, but declared INT in
> Flink.
> I know the
> [docs|https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/connectors/jdbc.html#data-type-mapping]
> say it should be decalred BIGINT in Flink, however, would be better not fail
> the job.
> At least, the exception is hard to understand for users. We can also check
> the schema before start the job.
> {code}
> java.lang.ClassCastException: java.lang.Long cannot be cast to
> java.lang.Integer
> at
> org.apache.flink.table.data.GenericRowData.getInt(GenericRowData.java:149)
> ~[flink-table-blink_2.11-1.11-vvr-2.1.1-SNAPSHOT.jar:1.11-vvr-2.1.1-SNAPSHOT]
> at JoinTableFuncCollector$6460.collect(Unknown Source) ~[?:?]
> at
> org.apache.flink.table.functions.TableFunction.collect(TableFunction.java:203)
> ~[flink-table-blink_2.11-1.11-vvr-2.1.1-SNAPSHOT.jar:1.11-vvr-2.1.1-SNAPSHOT]
> at
> org.apache.flink.connector.jdbc.table.JdbcRowDataLookupFunction.eval(JdbcRowDataLookupFunction.java:162)
> ~[?:?]
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)