Skip to content

Commit 8b0b337

Browse files
committed
hotfix 30686 解决pgsql 空字符串写入为 null 问题
1 parent 9a8645b commit 8b0b337

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

flinkx-postgresql/flinkx-postgresql-core/src/main/java/com/dtstack/flinkx/postgresql/PostgresqlTypeConverter.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.util.Arrays;
2525
import java.util.Collections;
2626
import java.util.List;
27+
import java.util.Locale;
2728

2829
/**
2930
* The type converter for PostgreSQL database
@@ -43,6 +44,9 @@ public class PostgresqlTypeConverter implements TypeConverterInterface {
4344

4445
private List<String> intTypes = Arrays.asList("int","int2","int4","int8");
4546

47+
protected static List<String> STRING_TYPES = Arrays.asList("CHAR", "VARCHAR","TINYBLOB","TINYTEXT","BLOB","TEXT", "MEDIUMBLOB", "MEDIUMTEXT", "LONGBLOB", "LONGTEXT");
48+
49+
4650
@Override
4751
public Object convert(Object data,String typeName) {
4852
if (data == null){
@@ -53,6 +57,10 @@ public Object convert(Object data,String typeName) {
5357
return dataValue;
5458
}
5559
if(StringUtils.isBlank(dataValue)){
60+
//如果是string类型 还应该返回空字符串而不是null
61+
if(STRING_TYPES.contains(typeName.toUpperCase(Locale.ENGLISH))){
62+
return dataValue;
63+
}
5664
return null;
5765
}
5866
if(doubleTypes.contains(typeName)){

0 commit comments

Comments
 (0)