in rocketmq-mysql/src/main/java/org/apache/rocketmq/mysql/binlog/DataRow.java [42:75]
public Map toMap() {
try {
if (table.getColList().size() == row.length) {
Map<String, Object> dataMap = new HashMap<>();
List<String> keyList = table.getColList();
List<ColumnParser> parserList = table.getParserList();
for (int i = 0; i < keyList.size(); i++) {
Object value = row[i];
ColumnParser parser = parserList.get(i);
dataMap.put(keyList.get(i), parser.getValue(value));
}
Map<String, Object> map = new HashMap<>();
map.put("database", table.getDatabase());
map.put("table", table.getName());
map.put("type", type);
map.put("data", dataMap);
return map;
} else {
logger.error("Table schema changed,discard data: {} - {}, {} {}",
table.getDatabase().toUpperCase(), table.getName().toUpperCase(), type, row.toString());
return null;
}
} catch (Exception e) {
logger.error("Row parse error,discard data: {} - {}, {} {}",
table.getDatabase().toUpperCase(), table.getName().toUpperCase(), type, row.toString());
}
return null;
}