[SPARK-27815][SQL] Predicate pushdown in one pass for cascading joins#24956
Closed
yeshengm wants to merge 4 commits intoapache:masterfrom
Closed
[SPARK-27815][SQL] Predicate pushdown in one pass for cascading joins#24956yeshengm wants to merge 4 commits intoapache:masterfrom
yeshengm wants to merge 4 commits intoapache:masterfrom
Conversation
|
Test build #106853 has finished for PR 24956 at commit
|
9b6fe2e to
d8b63e2
Compare
|
Test build #106904 has finished for PR 24956 at commit
|
|
Test build #106946 has finished for PR 24956 at commit
|
8492e11 to
f46c5c6
Compare
|
Test build #106948 has finished for PR 24956 at commit
|
gatorsmile
reviewed
Jul 2, 2019
| CollapseRepartition, | ||
| CollapseProject, | ||
| CollapseWindow, | ||
| CombineFilters, |
Member
|
LGTM except one comment |
maropu
approved these changes
Jul 3, 2019
|
Test build #107136 has finished for PR 24956 at commit
|
Member
|
retest this please |
|
Test build #107151 has finished for PR 24956 at commit
|
Member
|
retest this please |
1 similar comment
Contributor
Author
|
retest this please |
|
Test build #107170 has finished for PR 24956 at commit
|
Member
|
Thanks! Merged to master. |
Member
|
What about updating the JIRA instead since the commit(74f1176) is permanant? @gatorsmile and @cloud-fan . |
Member
|
K. Let me do that. |
Member
|
Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
This PR makes the predicate pushdown logic in catalyst optimizer more efficient by unifying two existing rules
PushdownPredicatesandPushPredicateThroughJoin. Previously pushing down a predicate for queries such asFilter(Join(Join(Join)))requires n steps. This patch essentially reduces this to a single pass.To make this actually work, we need to unify a few rules such as
CombineFilters,PushDownPredicateandPushDownPrdicateThroughJoin. Otherwise cases such asFilter(Join(Filter(Join)))still requires several passes to fully push down predicates. This unification is done by composing several partial functions, which makes a minimal code change and can reuse existing UTs.Results show that this optimization can improve the catalyst optimization time by 16.5%. For queries with more joins, the performance is even better. E.g., for TPC-DS q64, the performance boost is 49.2%.
How was this patch tested?
Existing UTs + new a UT for the new rule.