pratham76 commented on code in PR #58656:
URL: https://github.com/apache/spark/pull/58656#discussion_r4380528074


##########
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/subquery.scala:
##########
@@ -184,8 +188,20 @@ object RewritePredicateSubquery extends Rule[LogicalPlan] 
with PredicateHelper {
           // Use EXISTS if performance matters to you.
 
           // Deduplicate conflicting attributes if any.
-          val newSub = dedupSubqueryOnSelfJoin(p, sub, Some(values))
-          val inConditions = values.zip(newSub.output).map(EqualTo.tupled)
+          val dedupSub = dedupSubqueryOnSelfJoin(p, sub, Some(values))
+          val inConditions = values.zip(dedupSub.output).map(EqualTo.tupled)
+          // The hoisted correlated predicates may carry existential 
sub-queries that only the
+          // sub-query plan can evaluate, see 
rewriteExistentialExprInJoinCondition.
+          // This arm returns a bare Join, which this rule does not offer to 
its own handling of

Review Comment:
   Done. The production comment now states the same condition as the test: 
keeping the residual holds only while this NOT IN is the last sub-query 
conjunct. Otherwise the fold wraps this anti join as `p` of a later EXISTS or 
IN arm in `Project(p.output, Join(p, ...))`, the top-down pass reaches it in 
the `case j: Join` arm, and under the default configuration that arm rewrites 
the residual into a two-valued `exists`. That outcome is pre-existing and is 
left to SPARK-59862. I removed the "both correct" and "were it ever wrapped" 
wording.
   



-- 
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