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 2f1c54ee2e [Improve][Jdbc] Support nvarchar in dm (#8270)
2f1c54ee2e is described below

commit 2f1c54ee2e77f760f5b7c6fdd0b212cbfbb813e3
Author: 峰峰 <[email protected]>
AuthorDate: Sun Dec 15 22:29:54 2024 +0800

    [Improve][Jdbc] Support nvarchar in dm (#8270)
---
 .../jdbc/internal/dialect/dm/DmdbTypeConverter.java      |  6 ++++++
 .../jdbc/internal/dialect/dm/DmdbTypeConverterTest.java  | 16 ++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbTypeConverter.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbTypeConverter.java
index 9d0469fbe9..1ed2c3a8b8 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbTypeConverter.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbTypeConverter.java
@@ -66,6 +66,7 @@ public class DmdbTypeConverter implements 
TypeConverter<BasicTypeDefine> {
     public static final String DM_CHARACTER = "CHARACTER";
     public static final String DM_VARCHAR = "VARCHAR";
     public static final String DM_VARCHAR2 = "VARCHAR2";
+    public static final String DM_NVARCHAR = "NVARCHAR";
     public static final String DM_LONGVARCHAR = "LONGVARCHAR";
     public static final String DM_CLOB = "CLOB";
     public static final String DM_TEXT = "TEXT";
@@ -202,6 +203,11 @@ public class DmdbTypeConverter implements 
TypeConverter<BasicTypeDefine> {
                 builder.dataType(BasicType.STRING_TYPE);
                 
builder.columnLength(TypeDefineUtils.charTo4ByteLength(typeDefine.getLength()));
                 break;
+            case DM_NVARCHAR:
+                builder.sourceType(String.format("%s(%s)", DM_NVARCHAR, 
typeDefine.getLength()));
+                builder.dataType(BasicType.STRING_TYPE);
+                
builder.columnLength(TypeDefineUtils.charTo4ByteLength(typeDefine.getLength()));
+                break;
             case DM_TEXT:
                 builder.sourceType(DM_TEXT);
                 builder.dataType(BasicType.STRING_TYPE);
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbTypeConverterTest.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbTypeConverterTest.java
index 81d140ee0a..0fa537d08f 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbTypeConverterTest.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbTypeConverterTest.java
@@ -346,6 +346,22 @@ public class DmdbTypeConverterTest {
         Assertions.assertEquals(typeDefine.getColumnType(), 
column.getSourceType().toLowerCase());
     }
 
+    @Test
+    public void testNvarchar() {
+        BasicTypeDefine<Object> typeDefine =
+                BasicTypeDefine.builder()
+                        .name("test")
+                        .columnType("nvarchar(2)")
+                        .dataType("nvarchar")
+                        .length(2L)
+                        .build();
+        Column column = DmdbTypeConverter.INSTANCE.convert(typeDefine);
+        Assertions.assertEquals(typeDefine.getName(), column.getName());
+        Assertions.assertEquals(BasicType.STRING_TYPE, column.getDataType());
+        Assertions.assertEquals(8, column.getColumnLength());
+        Assertions.assertEquals(typeDefine.getColumnType(), 
column.getSourceType().toLowerCase());
+    }
+
     @Test
     public void testConvertText() {
         BasicTypeDefine<Object> typeDefine =

Reply via email to