Skip to content

Commit 18dcca3

Browse files
authored
[Fix][Connector-V2] Fix hana type loss of precision (#7912)
1 parent ba7fa23 commit 18dcca3

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/saphana/SapHanaTypeConverter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ public Column convert(BasicTypeDefine typeDefine) {
297297
break;
298298
case HANA_ST_POINT:
299299
case HANA_ST_GEOMETRY:
300+
builder.columnLength(typeDefine.getLength());
300301
builder.dataType(PrimitiveByteArrayType.INSTANCE);
301302
break;
302303
default:

seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/saphana/SapHanaTypeConverterTest.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,37 @@ public void testConvertDatetime() {
382382
Assertions.assertEquals(typeDefine.getColumnType(), column.getSourceType());
383383
}
384384

385+
@Test
386+
public void testConvertSpecialType() {
387+
BasicTypeDefine<Object> typeDefine =
388+
BasicTypeDefine.builder()
389+
.name("test")
390+
.columnType("ST_POINT")
391+
.length(8L)
392+
.dataType("ST_POINT")
393+
.build();
394+
Column column = SapHanaTypeConverter.INSTANCE.convert(typeDefine);
395+
396+
Assertions.assertEquals(typeDefine.getName(), column.getName());
397+
Assertions.assertEquals(PrimitiveByteArrayType.INSTANCE, column.getDataType());
398+
Assertions.assertEquals(8, column.getColumnLength());
399+
Assertions.assertEquals(typeDefine.getColumnType(), column.getSourceType());
400+
401+
typeDefine =
402+
BasicTypeDefine.builder()
403+
.name("test")
404+
.columnType("ST_GEOMETRY")
405+
.length(8L)
406+
.dataType("ST_GEOMETRY")
407+
.build();
408+
column = SapHanaTypeConverter.INSTANCE.convert(typeDefine);
409+
410+
Assertions.assertEquals(typeDefine.getName(), column.getName());
411+
Assertions.assertEquals(PrimitiveByteArrayType.INSTANCE, column.getDataType());
412+
Assertions.assertEquals(8, column.getColumnLength());
413+
Assertions.assertEquals(typeDefine.getColumnType(), column.getSourceType());
414+
}
415+
385416
@Test
386417
public void testReconvertUnsupported() {
387418
Column column =

0 commit comments

Comments
 (0)