[fix](Nereids): fix merge_group(). (#18250)

This commit is contained in:
jakevin
2023-03-30 20:34:47 +08:00
committed by GitHub
parent fefc0d6814
commit 3d2c70f75d

View File

@ -451,7 +451,6 @@ public class Memo {
}
GROUP_MERGE_TRACER.log(GroupMergeEvent.of(source, destination, needReplaceChild));
Map<Group, Group> needMergeGroupPairs = Maps.newHashMap();
for (GroupExpression reinsertGroupExpr : needReplaceChild) {
// After change GroupExpression children, hashcode will change, so need to reinsert into map.
groupExpressions.remove(reinsertGroupExpr);
@ -472,7 +471,7 @@ public class Memo {
reinsertGroupExpr.mergeTo(existGroupExpr);
} else {
// reinsertGroupExpr & existGroupExpr aren't in same group, need to merge their OwnerGroup.
needMergeGroupPairs.put(reinsertGroupExpr.getOwnerGroup(), existGroupExpr.getOwnerGroup());
mergeGroup(reinsertGroupExpr.getOwnerGroup(), existGroupExpr.getOwnerGroup());
}
} else {
groupExpressions.put(reinsertGroupExpr, reinsertGroupExpr);
@ -483,7 +482,6 @@ public class Memo {
groups.remove(source.getGroupId());
}
needMergeGroupPairs.forEach(this::mergeGroup);
return destination;
}