AngersZhuuuu commented on issue #26431: [SPARK-29769][SQL] Support "exists/not 
exists" condition as all type Join's on cpndition
URL: https://github.com/apache/spark/pull/26431#issuecomment-551354121
 
 
   > do you mean the optimizer rule `PushPredicateThroughJoin` is the culprit 
that forbids "exists/not exists" condition in outer joins?
   
   My last pr make it can be analyzed since I make it can resolve Subqueries in 
join condition. 
   But for exists,  in current master, you can use `inner/right outer` but you 
can't use `left outer/full outer/ left ant/ left semi` , since in origin 
`PushPredicateThroughJoin `, origin `split()` will solve leftEvaluateCondition 
first, in our test query `exists` is not about left or right, then will be be 
pased to leftEvaluateCondition, then if you meet `RIGHT OUTER JOIN`, it will 
build a new LeftChild. then it change exists condition to a LeftSemi join. But 
if you are `LEFT OUTER JOIN` it will build a new RightChild,  exists condition 
was passed to leftEvaluateCondition, so it won't be solved, and it will be a 
unresolved PhysicalPlan  as I show in jira.

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

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

Reply via email to