okumin commented on code in PR #5452:
URL: https://github.com/apache/hive/pull/5452#discussion_r1807830616


##########
ql/src/java/org/apache/hadoop/hive/ql/plan/mapper/PlanMapper.java:
##########
@@ -217,7 +230,11 @@ private void link(Object o1, Object o2, boolean mayMerge) {
     }
     if (mGroups.size() > 1) {
       if (!mayMerge) {
-        throw new RuntimeException("equivalence mapping violation");
+        LOG.warn("Illegally linking {} and {}", o1, o2);
+        if (failsWithIllegalLink) {
+          throw new RuntimeException("equivalence mapping violation");
+        }
+        isBroken.set(true);

Review Comment:
   This change would let PlanMapper return empty links.
   
https://github.com/apache/hive/pull/5452/commits/319a26410674d12290dc7b98e5e7032483f534b1
   
   My assumptions.
   - Maybe, it is understandable and safe to invalidate the entire PlanMapper 
once we find something wrong
   - Empty links vs IllegalStateException. I am wondering which is better 
honestly



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to