in kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/consistencycheck/result/RecordSingleTableInventoryCalculatedResult.java [56:90]
public boolean equals(final Object o) {
if (null == o) {
return false;
}
if (this == o) {
return true;
}
if (!(o instanceof RecordSingleTableInventoryCalculatedResult)) {
log.warn("RecordSingleTableInventoryCalculatedResult type not match, o.className={}.", o.getClass().getName());
return false;
}
final RecordSingleTableInventoryCalculatedResult that = (RecordSingleTableInventoryCalculatedResult) o;
EqualsBuilder equalsBuilder = new EqualsBuilder();
if (recordsCount != that.recordsCount || !DataConsistencyCheckUtils.isMatched(equalsBuilder, maxUniqueKeyValue, that.maxUniqueKeyValue)) {
log.warn("Record count or max unique key value not match, recordCount1={}, recordCount2={}, maxUniqueKeyValue1={}, maxUniqueKeyValue2={}, value1.class={}, value2.class={}.",
recordsCount, that.recordsCount, maxUniqueKeyValue, that.maxUniqueKeyValue,
null == maxUniqueKeyValue ? "" : maxUniqueKeyValue.getClass().getName(), null == that.maxUniqueKeyValue ? "" : that.maxUniqueKeyValue.getClass().getName());
return false;
}
Iterator<Map<String, Object>> thisRecordsIterator = records.iterator();
Iterator<Map<String, Object>> thatRecordsIterator = that.records.iterator();
while (thisRecordsIterator.hasNext() && thatRecordsIterator.hasNext()) {
Map<String, Object> thisRecord = thisRecordsIterator.next();
Map<String, Object> thatRecord = thatRecordsIterator.next();
if (thisRecord.size() != thatRecord.size()) {
log.warn("Record column size not match, size1={}, size2={}, record1={}, record2={}.", thisRecord.size(), thatRecord.size(), thisRecord, thatRecord);
return false;
}
if (!DataConsistencyCheckUtils.recordsEquals(thisRecord, thatRecord, equalsBuilder)) {
log.warn("Records not equals, record1={}, record2={}.", thisRecord, thatRecord);
return false;
}
}
return true;
}