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

Mao Jiayi closed FLINK-39759.
-----------------------------
    Resolution: Incomplete

> Fix MongoDB YAML connector fails to infer type from some BsonDecimal128 data
> ----------------------------------------------------------------------------
>
>                 Key: FLINK-39759
>                 URL: https://issues.apache.org/jira/browse/FLINK-39759
>             Project: Flink
>          Issue Type: Bug
>          Components: Flink CDC
>            Reporter: Mao Jiayi
>            Priority: Major
>              Labels: pull-request-available
>
> When using the MongoDB YAML connector to read data containing 
> {{BsonDecimal128}} values, the job may fail if the decimal value has leading 
> zeros after the decimal point (e.g., {{{}0.0001234{}}}).
> The failure happens in {*}CdcTypeConverter.toCdcType(){*}. Java's 
> {{BigDecimal}} treats leading zeros in the fractional part as insignificant 
> digits, resulting in a {{precision}} that is smaller than the {{{}scale{}}}. 
> For example, {{0.0001234}} yields {{precision = 4}} and {{{}scale = 7{}}}. 
> Flink CDC's *DECIMAL(precision, scale)* type requires {{{}precision >= 
> scale{}}}, so the type inference throws an exception.
> This issue is not exposed for typical {{Decimal128}} values like {{10.99}} 
> (where {{{}precision = 4{}}}, {{{}scale = 2{}}}) because the constraint 
> naturally holds. It only manifests when the fractional part contains more 
> digits than the significant digits — specifically when leading zeros push the 
> {{scale}} beyond the {{{}precision{}}}.



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

Reply via email to