in flink-connector-mongodb/src/main/java/org/apache/flink/connector/mongodb/table/converter/BsonToRowDataConverters.java [427:443]
private static BigDecimal convertToBigDecimal(BsonValue bsonValue) {
if (bsonValue.isDecimal128()) {
Decimal128 decimal128Value = bsonValue.asDecimal128().decimal128Value();
if (decimal128Value.isFinite()) {
return bsonValue.asDecimal128().decimal128Value().bigDecimalValue();
} else {
// DecimalData doesn't have the concept of infinity.
throw new IllegalArgumentException(
"Unable to convert infinite bson decimal to Decimal type.");
}
}
throw new IllegalArgumentException(
"Unable to convert to decimal from unexpected value '"
+ bsonValue
+ "' of type "
+ bsonValue.getBsonType());
}