-
Notifications
You must be signed in to change notification settings - Fork 28.9k
[SPARK-29769][SQL] Support non-correlate "exists/not exists" condition as all type Join's on condition #26431
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@cloud-fan @maropu @viirya @dilipbiswal |
|
ok to test |
|
do you mean the optimizer rule |
My last pr make it can be analyzed since I make it can resolve Subqueries in join condition. |
You can see my change in |
|
I'm confused. How can we leave the subquery unresolved in analyzer and fix it in optimizer? @dilipbiswal can you take a look? |
Origin catalyst can't resolve this, but my last pr's change on here spark/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala Line 1708 in 0a03839
Make it can be resolved. |
|
OK I was misled by the JIRA ticket. You don't need to show the query plan assuming a commit(your last PR) is reverted. |
|
Test build #113420 has finished for PR 26431 at commit
|
|
So the direct cause is that we can't plan the subquery. What's the problem in the planner? |
I will see if there are any place I can plan subquery in exists . |
|
Test build #113427 has finished for PR 26431 at commit
|
Checked and try a lot, seems we can't support EXISTS/NOT EXISTS as on's join condition with FULL OUTER JOIN. Since for FULL OUTER JOIN, we can't push down |
|
I think we need to update |
|
|
Solved in #26437 |
|
There is still an issue about correlated EXISTS in join condition. We can keep thinking about how to fix it. |
Yea, keeping find way to solve correlated EXISTS in join condition. |
What changes were proposed in this pull request?
As I show in https://issues.apache.org/jira/browse/SPARK-29769
we can't use
EXISTS/NOT EXISTSas on condition inLEFTE OUTER JOIN/ FULL OUTER JOIN / LEFT ANTI JOINThis pr is to support this.
Why are the changes needed?
Support EXISTS/NOT EXISTS as join's on condition
Does this PR introduce any user-facing change?
People can use exits like
How was this patch tested?
Added UT