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 =