Skip to content

Commit

Permalink
[Improve][Jdbc] Support nvarchar in dm (#8270)
Browse files Browse the repository at this point in the history
  • Loading branch information
dufeng1010 authored Dec 15, 2024
1 parent 753e058 commit 2f1c54e
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down Expand Up @@ -202,6 +203,11 @@ public Column convert(BasicTypeDefine typeDefine) {
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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,22 @@ public void testConvertChar() {
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 =
Expand Down

0 comments on commit 2f1c54e

Please sign in to comment.