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

View File

@@ -216,20 +216,20 @@ public class LogEventConvert extends AbstractCanalLifeCycle implements BinlogPar
if (tableMetaCache != null if (tableMetaCache != null
&& (result.getType() == EventType.ALTER || result.getType() == EventType.ERASE || result.getType() == EventType.RENAME)) { && (result.getType() == EventType.ALTER || result.getType() == EventType.ERASE || result.getType() == EventType.RENAME)) {
for( ;result!=null; result = result.getRenameTableResult()) { for(DdlResult renameResult=result ;renameResult!=null; renameResult = renameResult.getRenameTableResult()) {
schemaName = event.getDbName(); String schemaName0 = event.getDbName(); //防止 rename语句后产生 schema变更带来影响
if (StringUtils.isNotEmpty(result.getSchemaName())) { if (StringUtils.isNotEmpty(renameResult.getSchemaName())) {
schemaName = result.getSchemaName(); schemaName0 = renameResult.getSchemaName();
} }
tableName = result.getTableName(); tableName = renameResult.getTableName();
if (StringUtils.isNotEmpty(tableName)) { if (StringUtils.isNotEmpty(tableName)) {
// 如果解析到了正确的表信息,则根据全名进行清除 // 如果解析到了正确的表信息,则根据全名进行清除
tableMetaCache.clearTableMeta(schemaName, tableName); tableMetaCache.clearTableMeta(schemaName0, tableName);
} else { } else {
// 如果无法解析正确的表信息,则根据schema进行清除 // 如果无法解析正确的表信息,则根据schema进行清除
tableMetaCache.clearTableMetaWithSchemaName(schemaName); tableMetaCache.clearTableMetaWithSchemaName(schemaName0);
} }
} }
} }

View File

@@ -299,11 +299,10 @@ public class SimpleDdlParser {
DdlResult ddlResult = this; DdlResult ddlResult = this;
StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer();
do{ do{
String.format("DdlResult [schemaName=%s , tableName=%s , oriSchemaName=%s , oriTableName=%s , type=%s ;", 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.schemaName, ddlResult.tableName, ddlResult.oriSchemaName, ddlResult.oriTableName, ddlResult.type));
ddlResult = ddlResult.renameTableResult; ddlResult = ddlResult.renameTableResult;
}while (ddlResult.renameTableResult!=null); }while (ddlResult!=null);
sb.append("]");
return sb.toString(); return sb.toString();
} }