change result reference

This commit is contained in:
jiawei
2015-07-16 19:25:46 +08:00
parent 119af9fca1
commit d1afeb7540
2 changed files with 10 additions and 11 deletions
@@ -216,20 +216,20 @@ public class LogEventConvert extends AbstractCanalLifeCycle implements BinlogPar
if (tableMetaCache != null
&& (result.getType() == EventType.ALTER || result.getType() == EventType.ERASE || result.getType() == EventType.RENAME)) {
for( ;result!=null; result = result.getRenameTableResult()) {
schemaName = event.getDbName();
if (StringUtils.isNotEmpty(result.getSchemaName())) {
schemaName = result.getSchemaName();
for(DdlResult renameResult=result ;renameResult!=null; renameResult = renameResult.getRenameTableResult()) {
String schemaName0 = event.getDbName(); //防止 rename语句后产生 schema变更带来影响
if (StringUtils.isNotEmpty(renameResult.getSchemaName())) {
schemaName0 = renameResult.getSchemaName();
}
tableName = result.getTableName();
tableName = renameResult.getTableName();
if (StringUtils.isNotEmpty(tableName)) {
// 如果解析到了正确的表信息,则根据全名进行清除
tableMetaCache.clearTableMeta(schemaName, tableName);
tableMetaCache.clearTableMeta(schemaName0, tableName);
} else {
// 如果无法解析正确的表信息,则根据schema进行清除
tableMetaCache.clearTableMetaWithSchemaName(schemaName);
tableMetaCache.clearTableMetaWithSchemaName(schemaName0);
}
}
}
@@ -299,11 +299,10 @@ public class SimpleDdlParser {
DdlResult ddlResult = this;
StringBuffer sb = new StringBuffer();
do{
String.format("DdlResult [schemaName=%s , tableName=%s , oriSchemaName=%s , oriTableName=%s , type=%s ;",
ddlResult.schemaName, ddlResult.tableName, ddlResult.oriSchemaName, ddlResult.oriTableName, ddlResult.type);
sb.append(String.format("DdlResult [schemaName=%s , tableName=%s , oriSchemaName=%s , oriTableName=%s , type=%s ];",
ddlResult.schemaName, ddlResult.tableName, ddlResult.oriSchemaName, ddlResult.oriTableName, ddlResult.type));
ddlResult = ddlResult.renameTableResult;
}while (ddlResult.renameTableResult!=null);
sb.append("]");
}while (ddlResult!=null);
return sb.toString();
}