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 =

Reply via email to