[
https://issues.apache.org/jira/browse/FLINK-39759?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mao Jiayi reopened FLINK-39759:
-------------------------------
> 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)