Merge pull request #1526 from jiuchengspotorg/master

adapter rdb无法同步ddl更新问题修正
This commit is contained in:
agapple
2019-02-25 14:15:47 +08:00
committed by GitHub
3 changed files with 12 additions and 9 deletions
@@ -68,7 +68,13 @@ public class JdbcTypeUtil {
}
public static Object typeConvert(String columnName, String value, int sqlType, String mysqlType) {
if (value == null || value.equals("")) {
if (value == null
|| (value.equals("")
&& !("longtext".equals(mysqlType)
|| "text".equals(mysqlType)
|| sqlType == Types.CHAR
|| sqlType == Types.VARCHAR
|| sqlType == Types.LONGVARCHAR))) {
return null;
}
@@ -118,10 +124,8 @@ public class JdbcTypeUtil {
value = value.trim().replace(" ", "T");
DateTime dt = new DateTime(value);
res = new Date(dt.toDate().getTime());
} else {
res = null;
break;
}
break;
case Types.TIME:
value = "T" + value;
DateTime dt = new DateTime(value);
@@ -132,10 +136,8 @@ public class JdbcTypeUtil {
value = value.trim().replace(" ", "T");
dt = new DateTime(value);
res = new Timestamp(dt.toDate().getTime());
} else {
res = null;
break;
}
break;
case Types.CLOB:
default:
res = value;
@@ -37,6 +37,7 @@ public class MessageUtil {
CanalEntry.EventType eventType = rowChange.getEventType();
final Dml dml = new Dml();
dml.setIsDdl(rowChange.getIsDdl());
dml.setDestination(destination);
dml.setGroupId(groupId);
dml.setDatabase(entry.getHeader().getSchemaName());
@@ -200,7 +200,7 @@ public class SyncUtil {
DateTime dt = new DateTime(v);
pstmt.setDate(i, new Date(dt.toDate().getTime()));
} else {
pstmt.setNull(i, type);
pstmt.setObject(i, value);
}
} else {
pstmt.setNull(i, type);
@@ -232,7 +232,7 @@ public class SyncUtil {
DateTime dt = new DateTime(v);
pstmt.setTimestamp(i, new Timestamp(dt.toDate().getTime()));
} else {
pstmt.setNull(i, type);
pstmt.setObject(i, value);
}
} else {
pstmt.setNull(i, type);