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 <[email protected]>
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