[ 
https://issues.apache.org/jira/browse/FLINK-34690?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hongshun Wang updated FLINK-34690:
----------------------------------
    Description: 
h3. What's the problem

Flink only have bigint type, if mysql data is unsigned bigint , maybe out of 
range, so cast to DECIMAL(20, 0).

If starrocks supports unsigned bigint, maybe can transform DECIMAL(20, 0) to 
unsigned bigint in sink. To be honest, unsigned bigint is not in SQL standard, 
thus many databases maybe not support it. 
[https://docs.starrocks.io/zh/docs/sql-reference/sql-statements/data-types/data-type-list/]

And starrock not support DECIMAL as primary key, thus should be transformed to 
String. I think we can fix it.

 
h3. How to solve

StarRocks is not support Decimal as primary key, so decimal should be cast to 
INT, BIGINT, LARGEINT or VARHCAR.
If scale == 0, cast parse to INT, BIGINT, LARGEINT
 * Int is range from [-2,147,483,648, 2,147,483,647], some data with precision 
of 10 is out of range.
 * BigInt is range from [-9,223.372,036,854,775,808~9,223.372,036,854,775,807], 
some data with precision of 19 is out of range.(like unsigned big int from 
mysql)
 * LargeInt is range from [-1.701411835E38 ~ 1.701411835E38], some data with 
precision of 38 is out of range.

  was:
Flink only have bigint type, if mysql data is unsigned bigint , maybe out of 
range, so cast to DECIMAL(20, 0).

If starrocks supports unsigned bigint, maybe can transform DECIMAL(20, 0) to 
unsigned bigint in sink. To be honest, unsigned bigint is not in SQL standard, 
thus many databases maybe not support it. 
[https://docs.starrocks.io/zh/docs/sql-reference/sql-statements/data-types/data-type-list/]

And starrock not support DECIMAL as primary key, thus should be transformed to 
String. I think we can fix it.


> If data from upstream is decimal and primary key , starrocks sink will not 
> support.
> -----------------------------------------------------------------------------------
>
>                 Key: FLINK-34690
>                 URL: https://issues.apache.org/jira/browse/FLINK-34690
>             Project: Flink
>          Issue Type: Bug
>          Components: Flink CDC
>            Reporter: Hongshun Wang
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: cdc-3.1.0
>
>
> h3. What's the problem
> Flink only have bigint type, if mysql data is unsigned bigint , maybe out of 
> range, so cast to DECIMAL(20, 0).
> If starrocks supports unsigned bigint, maybe can transform DECIMAL(20, 0) to 
> unsigned bigint in sink. To be honest, unsigned bigint is not in SQL 
> standard, thus many databases maybe not support it. 
> [https://docs.starrocks.io/zh/docs/sql-reference/sql-statements/data-types/data-type-list/]
> And starrock not support DECIMAL as primary key, thus should be transformed 
> to String. I think we can fix it.
>  
> h3. How to solve
> StarRocks is not support Decimal as primary key, so decimal should be cast to 
> INT, BIGINT, LARGEINT or VARHCAR.
> If scale == 0, cast parse to INT, BIGINT, LARGEINT
>  * Int is range from [-2,147,483,648, 2,147,483,647], some data with 
> precision of 10 is out of range.
>  * BigInt is range from 
> [-9,223.372,036,854,775,808~9,223.372,036,854,775,807], some data with 
> precision of 19 is out of range.(like unsigned big int from mysql)
>  * LargeInt is range from [-1.701411835E38 ~ 1.701411835E38], some data with 
> precision of 38 is out of range.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to