This is an automated email from the ASF dual-hosted git repository. github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/dev/pr-11874-5acb54618d05263c59e2aacd66597fe015a53213 in repository https://gitbox.apache.org/repos/asf/seatunnel.git
commit a01f5f03e7d9ab93b814e8ab10ba7d37a0d1c618 Author: Arvin <[email protected]> AuthorDate: Sun Aug 30 16:26:07 2026 +0000 [Fix][Connector-V2] Support YashanDB VARCHAR2 and NVARCHAR2 type conversion (#11874) --- .../dialect/yashandb/YashanDbTypeConverter.java | 4 ++++ .../yashandb/YashanDbTypeConverterTest.java | 26 ++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbTypeConverter.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbTypeConverter.java index 163646a8b0..11cdc6aa92 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbTypeConverter.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbTypeConverter.java @@ -73,10 +73,12 @@ public class YashanDbTypeConverter implements TypeConverter<BasicTypeDefine> { // CHAR: [1,8000] bytes; VARCHAR: [1,65534] bytes public static final String CHAR = "CHAR"; public static final String VARCHAR = "VARCHAR"; + public static final String VARCHAR2 = "VARCHAR2"; // NCHAR: [1,4000]; NVARCHAR: [1,32767] (Unicode) public static final String NCHAR = "NCHAR"; public static final String NVARCHAR = "NVARCHAR"; + public static final String NVARCHAR2 = "NVARCHAR2"; // ============================ Date & Time Data Types ============================ @@ -213,11 +215,13 @@ public class YashanDbTypeConverter implements TypeConverter<BasicTypeDefine> { // ====================== Character types ====================== case CHAR: case VARCHAR: + case VARCHAR2: builder.dataType(BasicType.STRING_TYPE); builder.columnLength(TypeDefineUtils.charTo4ByteLength(typeDefine.getLength())); break; case NCHAR: case NVARCHAR: + case NVARCHAR2: builder.dataType(BasicType.STRING_TYPE); builder.columnLength( TypeDefineUtils.doubleByteTo4ByteLength(typeDefine.getLength())); diff --git a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbTypeConverterTest.java b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbTypeConverterTest.java index ce881127a6..c64664d210 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbTypeConverterTest.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbTypeConverterTest.java @@ -257,6 +257,32 @@ public class YashanDbTypeConverterTest { column = INSTANCE.convert(typeDefine); Assertions.assertEquals(BasicType.STRING_TYPE, column.getDataType()); Assertions.assertEquals(200L, column.getColumnLength()); + + // VARCHAR2(100) -> STRING with columnLength = 100 * 4 (byte-length semantics, same as + // VARCHAR) + typeDefine = + BasicTypeDefine.builder() + .name("test") + .columnType("VARCHAR2(100)") + .dataType("VARCHAR2") + .length(100L) + .build(); + column = INSTANCE.convert(typeDefine); + Assertions.assertEquals(BasicType.STRING_TYPE, column.getDataType()); + Assertions.assertEquals(400L, column.getColumnLength()); + + // NVARCHAR2(100) -> STRING with columnLength = 100 * 2 (char-length semantics, same as + // NVARCHAR) + typeDefine = + BasicTypeDefine.builder() + .name("test") + .columnType("NVARCHAR2(100)") + .dataType("NVARCHAR2") + .length(100L) + .build(); + column = INSTANCE.convert(typeDefine); + Assertions.assertEquals(BasicType.STRING_TYPE, column.getDataType()); + Assertions.assertEquals(200L, column.getColumnLength()); } @Test
