mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
fixed issue #1100 , fix type compare
This commit is contained in:
@@ -52,9 +52,11 @@ public class DatabaseTableMeta implements TableMetaTSDB {
|
|||||||
private static Pattern pattern = Pattern.compile("Duplicate entry '.*' for key '*'");
|
private static Pattern pattern = Pattern.compile("Duplicate entry '.*' for key '*'");
|
||||||
private static Pattern h2Pattern = Pattern.compile("Unique index or primary key violation");
|
private static Pattern h2Pattern = Pattern.compile("Unique index or primary key violation");
|
||||||
private static ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
|
private static ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Thread newThread(Runnable r) {
|
public Thread newThread(Runnable r) {
|
||||||
Thread thread = new Thread(r, "[scheduler-table-meta-snapshot]");
|
Thread thread = new Thread(r,
|
||||||
|
"[scheduler-table-meta-snapshot]");
|
||||||
thread.setDaemon(true);
|
thread.setDaemon(true);
|
||||||
return thread;
|
return thread;
|
||||||
}
|
}
|
||||||
@@ -488,7 +490,24 @@ public class DatabaseTableMeta implements TableMetaTSDB {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StringUtils.equalsIgnoreCase(sourceField.getColumnType(), targetField.getColumnType())) {
|
// if (!StringUtils.equalsIgnoreCase(sourceField.getColumnType(),
|
||||||
|
// targetField.getColumnType())) {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// https://github.com/alibaba/canal/issues/1100
|
||||||
|
// 支持一下 int vs int(10)
|
||||||
|
if ((sourceField.isUnsigned() && !targetField.isUnsigned())
|
||||||
|
|| (!sourceField.isUnsigned() && targetField.isUnsigned())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean columnTypeCompare = false;
|
||||||
|
columnTypeCompare |= StringUtils.containsIgnoreCase(sourceField.getColumnType(),
|
||||||
|
targetField.getColumnType());
|
||||||
|
columnTypeCompare |= StringUtils.containsIgnoreCase(targetField.getColumnType(),
|
||||||
|
sourceField.getColumnType());
|
||||||
|
if (!columnTypeCompare) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user