This is an automated email from the ASF dual-hosted git repository.
wuchunfu 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 18dcca36cd [Fix][Connector-V2] Fix hana type loss of precision (#7912)
18dcca36cd is described below
commit 18dcca36cdbc27dec50463a075ef20001fd4331c
Author: Jia Fan <[email protected]>
AuthorDate: Sat Oct 26 11:17:39 2024 +0800
[Fix][Connector-V2] Fix hana type loss of precision (#7912)
---
.../dialect/saphana/SapHanaTypeConverter.java | 1 +
.../dialect/saphana/SapHanaTypeConverterTest.java | 31 ++++++++++++++++++++++
2 files changed, 32 insertions(+)
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 89344b43ca..15faaff4a8 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
@@ -297,6 +297,7 @@ public class SapHanaTypeConverter implements
TypeConverter<BasicTypeDefine> {
break;
case HANA_ST_POINT:
case HANA_ST_GEOMETRY:
+ builder.columnLength(typeDefine.getLength());
builder.dataType(PrimitiveByteArrayType.INSTANCE);
break;
default:
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 69d01d32b0..8ff301d71e 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
@@ -382,6 +382,37 @@ public class SapHanaTypeConverterTest {
Assertions.assertEquals(typeDefine.getColumnType(),
column.getSourceType());
}
+ @Test
+ public void testConvertSpecialType() {
+ BasicTypeDefine<Object> typeDefine =
+ BasicTypeDefine.builder()
+ .name("test")
+ .columnType("ST_POINT")
+ .length(8L)
+ .dataType("ST_POINT")
+ .build();
+ Column column = SapHanaTypeConverter.INSTANCE.convert(typeDefine);
+
+ Assertions.assertEquals(typeDefine.getName(), column.getName());
+ Assertions.assertEquals(PrimitiveByteArrayType.INSTANCE,
column.getDataType());
+ Assertions.assertEquals(8, column.getColumnLength());
+ Assertions.assertEquals(typeDefine.getColumnType(),
column.getSourceType());
+
+ typeDefine =
+ BasicTypeDefine.builder()
+ .name("test")
+ .columnType("ST_GEOMETRY")
+ .length(8L)
+ .dataType("ST_GEOMETRY")
+ .build();
+ column = SapHanaTypeConverter.INSTANCE.convert(typeDefine);
+
+ Assertions.assertEquals(typeDefine.getName(), column.getName());
+ Assertions.assertEquals(PrimitiveByteArrayType.INSTANCE,
column.getDataType());
+ Assertions.assertEquals(8, column.getColumnLength());
+ Assertions.assertEquals(typeDefine.getColumnType(),
column.getSourceType());
+ }
+
@Test
public void testReconvertUnsupported() {
Column column =