[ 
https://issues.apache.org/jira/browse/FLINK-18576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17156528#comment-17156528
 ] 

sunteng edited comment on FLINK-18576 at 7/13/20, 7:38 AM:
-----------------------------------------------------------

[~dwysakowicz]

 
{code:java}
CREATE TABLE user_account(
     uid BIGINT,
     system_unique_id STRING,
     name STRING,
     account STRING,
     passwd STRING,
     salt STRING,
     type INT,
     avatar STRING,
     source STRING,
     ksjk_existing TINYINT,
     created_at INT,
     updated_at INT,
     deleted_at INT,
  PRIMARY KEY (uid) NOT ENFORCED
) WITH (
  'connector' = 'jdbc',
  'url' = 'jdbc:mysql://10.10.15.17:3306/haohuan_db',
  'table-name' = 'user_account',
  'driver' = 'com.mysql.jdbc.Driver',
  'username' = 'canal',
  'password' = 'lOCHvm86gUKSXmLVb3qg'
);
{code}
 

This is my SQL statement and connection information, the information is 
correct, tested, and then I will execute the query uid field, because he is 
biginteger type, and then it will send an error:

 
{code:java}
 
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to 
java.lang.LongCaused by: java.lang.ClassCastException: java.math.BigInteger 
cannot be cast to java.lang.Long at 
org.apache.flink.table.data.GenericRowData.getLong(GenericRowData.java:154) 
~[flink-table_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.table.data.RowData.get(RowData.java:260) 
~[flink-table_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.table.runtime.typeutils.RowDataSerializer.toBinaryRow(RowDataSerializer.java:194)
 ~[flink-table-blink_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.table.runtime.typeutils.RowDataSerializer.serialize(RowDataSerializer.java:97)
 ~[flink-table-blink_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.table.runtime.typeutils.RowDataSerializer.serialize(RowDataSerializer.java:50)
 ~[flink-table-blink_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.streaming.runtime.streamrecord.StreamElementSerializer.serialize(StreamElementSerializer.java:175)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.streaming.runtime.streamrecord.StreamElementSerializer.serialize(StreamElementSerializer.java:46)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.runtime.plugable.SerializationDelegate.write(SerializationDelegate.java:54)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.runtime.io.network.api.serialization.SpanningRecordSerializer.serializeRecord(SpanningRecordSerializer.java:71)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.runtime.io.network.api.writer.RecordWriter.emit(RecordWriter.java:117)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.runtime.io.network.api.writer.ChannelSelectorRecordWriter.emit(ChannelSelectorRecordWriter.java:60)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.streaming.runtime.io.RecordWriterOutput.pushToRecordWriter(RecordWriterOutput.java:107)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.streaming.runtime.io.RecordWriterOutput.collect(RecordWriterOutput.java:89)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0]
 
{code}
 

 

 


was (Author: sunteng):
[~dwysakowicz]

 

??CREATE TABLE user_account( uid BIGINT, system_unique_id STRING, name STRING, 
account STRING, passwd STRING, salt STRING, type INT, avatar STRING, source 
STRING, ksjk_existing TINYINT, created_at INT, updated_at INT, deleted_at INT, 
PRIMARY KEY (uid) NOT ENFORCED ) WITH ( 'connector' = 'jdbc', 'url' = 
'jdbc:mysql://10.10.15.17:3306/haohuan_db', 'table-name' = 'user_account', 
'driver' = 'com.mysql.jdbc.Driver', 'username' = 'canal', 'password' = 
'lOCHvm86gUKSXmLVb3qg' );??

 

This is my SQL statement and connection information, the information is 
correct, tested, and then I will execute the query uid field, because he is 
biginteger type, and then it will send an error:

 
{code:java}
 
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to 
java.lang.LongCaused by: java.lang.ClassCastException: java.math.BigInteger 
cannot be cast to java.lang.Long at 
org.apache.flink.table.data.GenericRowData.getLong(GenericRowData.java:154) 
~[flink-table_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.table.data.RowData.get(RowData.java:260) 
~[flink-table_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.table.runtime.typeutils.RowDataSerializer.toBinaryRow(RowDataSerializer.java:194)
 ~[flink-table-blink_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.table.runtime.typeutils.RowDataSerializer.serialize(RowDataSerializer.java:97)
 ~[flink-table-blink_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.table.runtime.typeutils.RowDataSerializer.serialize(RowDataSerializer.java:50)
 ~[flink-table-blink_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.streaming.runtime.streamrecord.StreamElementSerializer.serialize(StreamElementSerializer.java:175)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.streaming.runtime.streamrecord.StreamElementSerializer.serialize(StreamElementSerializer.java:46)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.runtime.plugable.SerializationDelegate.write(SerializationDelegate.java:54)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.runtime.io.network.api.serialization.SpanningRecordSerializer.serializeRecord(SpanningRecordSerializer.java:71)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.runtime.io.network.api.writer.RecordWriter.emit(RecordWriter.java:117)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.runtime.io.network.api.writer.ChannelSelectorRecordWriter.emit(ChannelSelectorRecordWriter.java:60)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.streaming.runtime.io.RecordWriterOutput.pushToRecordWriter(RecordWriterOutput.java:107)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0] at 
org.apache.flink.streaming.runtime.io.RecordWriterOutput.collect(RecordWriterOutput.java:89)
 ~[flink-dist_2.12-1.11.0.jar:1.11.0]
 
{code}
 

 

 

> BigInteger to Long
> ------------------
>
>                 Key: FLINK-18576
>                 URL: https://issues.apache.org/jira/browse/FLINK-18576
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table SQL / Runtime
>    Affects Versions: 1.11.0
>            Reporter: sunteng
>            Priority: Major
>              Labels: easyfix
>
> [getLong((int 
> pos))|[https://github.com/apache/flink/blob/master/flink-table/flink-table-common/src/main/java/org/apache/flink/table/data/GenericRowData.java]]
> error:
> java.math.BigInteger cannot be cast to java.lang.Long



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to