This is an automated email from the ASF dual-hosted git repository. wanghailin pushed a commit to branch dev in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push: new 6e33a97c86 [Fix] Fix Hana type converter decimal scale is 0 convert to int error (#7167) 6e33a97c86 is described below commit 6e33a97c866d89c63793d297ab403e20c21d10d7 Author: Jia Fan <fanjiaemi...@qq.com> AuthorDate: Thu Jul 18 23:03:27 2024 +0800 [Fix] Fix Hana type converter decimal scale is 0 convert to int error (#7167) --- .../internal/dialect/saphana/SapHanaTypeConverter.java | 2 +- .../internal/dialect/saphana/SapHanaTypeConverterTest.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/saphana/SapHanaTypeConverter.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/saphana/SapHanaTypeConverter.java index b9970ca7f0..89344b43ca 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/saphana/SapHanaTypeConverter.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/saphana/SapHanaTypeConverter.java @@ -255,7 +255,7 @@ public class SapHanaTypeConverter implements TypeConverter<BasicTypeDefine> { builder.dataType(new DecimalType((int) precision, MAX_SCALE)); builder.columnLength(precision); builder.scale(MAX_SCALE); - } else if (scale <= 0) { + } else if (scale < 0) { int newPrecision = (int) (precision - scale); if (newPrecision == 1) { builder.dataType(BasicType.SHORT_TYPE); diff --git a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/saphana/SapHanaTypeConverterTest.java b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/saphana/SapHanaTypeConverterTest.java index 6a5ae0371f..69d01d32b0 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/saphana/SapHanaTypeConverterTest.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/saphana/SapHanaTypeConverterTest.java @@ -169,6 +169,20 @@ public class SapHanaTypeConverterTest { Assertions.assertEquals(typeDefine2.getName(), column2.getName()); Assertions.assertEquals(new DecimalType(10, 5), column2.getDataType()); Assertions.assertEquals(typeDefine2.getColumnType(), column2.getSourceType()); + + BasicTypeDefine<Object> typeDefine3 = + BasicTypeDefine.builder() + .name("test") + .columnType("DECIMAL") + .dataType("DECIMAL") + .precision(10L) + .length(10L) + .scale(0) + .build(); + Column column3 = SapHanaTypeConverter.INSTANCE.convert(typeDefine3); + Assertions.assertEquals(typeDefine3.getName(), column3.getName()); + Assertions.assertEquals(new DecimalType(10, 0), column3.getDataType()); + Assertions.assertEquals(typeDefine3.getColumnType(), column3.getSourceType()); } @Test