From 02a6edeb7e16986b9194305e5fd2c8de00aaa29b Mon Sep 17 00:00:00 2001 From: Sergei Kazakov Date: Mon, 8 Jul 2024 09:47:09 +0300 Subject: [PATCH] DBZ-8027 updated type "money" fallback value creating. The fallback value is now been created in accordance with decimalMode set in the connector configuration. So it always fits the scheme. --- .../debezium/connector/postgresql/PostgresValueConverter.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/debezium-connector-postgres/src/main/java/io/debezium/connector/postgresql/PostgresValueConverter.java b/debezium-connector-postgres/src/main/java/io/debezium/connector/postgresql/PostgresValueConverter.java index 8e1eb8a32..960f9df02 100644 --- a/debezium-connector-postgres/src/main/java/io/debezium/connector/postgresql/PostgresValueConverter.java +++ b/debezium-connector-postgres/src/main/java/io/debezium/connector/postgresql/PostgresValueConverter.java @@ -866,7 +866,9 @@ protected Object convertBits(Column column, Field fieldDefn, Object data, int nu } protected Object convertMoney(Column column, Field fieldDefn, Object data, DecimalMode mode) { - return convertValue(column, fieldDefn, data, BigDecimal.ZERO.setScale(moneyFractionDigits), (r) -> { + var fallback = decimalMode.equals(decimalMode.STRING) ? BigDecimal.ZERO.setScale(moneyFractionDigits).toString() + : decimalMode.equals(decimalMode.DOUBLE) ? BigDecimal.ZERO.setScale(moneyFractionDigits).doubleValue() : BigDecimal.ZERO.setScale(moneyFractionDigits); + return convertValue(column, fieldDefn, data, fallback, (r) -> { switch (mode) { case DOUBLE: if (data instanceof BigDecimal) {