mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
Merge pull request #1526 from jiuchengspotorg/master
adapter rdb无法同步ddl更新问题修正
This commit is contained in:
@@ -68,7 +68,13 @@ public class JdbcTypeUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Object typeConvert(String columnName, String value, int sqlType, String mysqlType) {
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,10 +124,8 @@ public class JdbcTypeUtil {
|
|||||||
value = value.trim().replace(" ", "T");
|
value = value.trim().replace(" ", "T");
|
||||||
DateTime dt = new DateTime(value);
|
DateTime dt = new DateTime(value);
|
||||||
res = new Date(dt.toDate().getTime());
|
res = new Date(dt.toDate().getTime());
|
||||||
} else {
|
|
||||||
res = null;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case Types.TIME:
|
case Types.TIME:
|
||||||
value = "T" + value;
|
value = "T" + value;
|
||||||
DateTime dt = new DateTime(value);
|
DateTime dt = new DateTime(value);
|
||||||
@@ -132,10 +136,8 @@ public class JdbcTypeUtil {
|
|||||||
value = value.trim().replace(" ", "T");
|
value = value.trim().replace(" ", "T");
|
||||||
dt = new DateTime(value);
|
dt = new DateTime(value);
|
||||||
res = new Timestamp(dt.toDate().getTime());
|
res = new Timestamp(dt.toDate().getTime());
|
||||||
} else {
|
|
||||||
res = null;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case Types.CLOB:
|
case Types.CLOB:
|
||||||
default:
|
default:
|
||||||
res = value;
|
res = value;
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ public class MessageUtil {
|
|||||||
CanalEntry.EventType eventType = rowChange.getEventType();
|
CanalEntry.EventType eventType = rowChange.getEventType();
|
||||||
|
|
||||||
final Dml dml = new Dml();
|
final Dml dml = new Dml();
|
||||||
|
dml.setIsDdl(rowChange.getIsDdl());
|
||||||
dml.setDestination(destination);
|
dml.setDestination(destination);
|
||||||
dml.setGroupId(groupId);
|
dml.setGroupId(groupId);
|
||||||
dml.setDatabase(entry.getHeader().getSchemaName());
|
dml.setDatabase(entry.getHeader().getSchemaName());
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ public class SyncUtil {
|
|||||||
DateTime dt = new DateTime(v);
|
DateTime dt = new DateTime(v);
|
||||||
pstmt.setDate(i, new Date(dt.toDate().getTime()));
|
pstmt.setDate(i, new Date(dt.toDate().getTime()));
|
||||||
} else {
|
} else {
|
||||||
pstmt.setNull(i, type);
|
pstmt.setObject(i, value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pstmt.setNull(i, type);
|
pstmt.setNull(i, type);
|
||||||
@@ -232,7 +232,7 @@ public class SyncUtil {
|
|||||||
DateTime dt = new DateTime(v);
|
DateTime dt = new DateTime(v);
|
||||||
pstmt.setTimestamp(i, new Timestamp(dt.toDate().getTime()));
|
pstmt.setTimestamp(i, new Timestamp(dt.toDate().getTime()));
|
||||||
} else {
|
} else {
|
||||||
pstmt.setNull(i, type);
|
pstmt.setObject(i, value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pstmt.setNull(i, type);
|
pstmt.setNull(i, type);
|
||||||
|
|||||||
Reference in New Issue
Block a user