Uh oh!
There was an error while loading. Please reload this page.
[SPARK-30842][SQL] Adjust abstraction structure for join operators - #27595
[SPARK-30842][SQL] Adjust abstraction structure for join operators#27595Eric5553 wants to merge 5 commits into
Conversation
Eric5553
commented
Feb 15, 2020
SparkQA
commented
Feb 15, 2020
Test build #118481 has finished for PR 27595 at commit
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
SparkQA
commented
Feb 17, 2020
Test build #118589 has finished for PR 27595 at commit
|
SparkQA
commented
Feb 21, 2020
Test build #118746 has finished for PR 27595 at commit
|
SparkQA
commented
Feb 21, 2020
Test build #118802 has finished for PR 27595 at commit
|
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
can we include join keys here? Then we can remove the verboseStringWithOperatorId methods in join sub-classes.
There was a problem hiding this comment.
And we should print nothing if join keys are empty, instead of [].
There was a problem hiding this comment.
Sure, will update. Thanks!
SparkQA
commented
Feb 24, 2020
Test build #118879 has finished for PR 27595 at commit
|
cloud-fan
commented
Feb 25, 2020
LGTM. @Eric5553 can you list the EXPLAIN output changes introduced by this PR? Thanks! |
@cloud-fan Sure
Also updated in PR description. |
cloud-fan
commented
Feb 27, 2020
@Eric5553 can you fix the conflicts? thanks! |
Eric5553
commented
Feb 27, 2020
retest this please |
SparkQA
commented
Feb 27, 2020
Test build #119036 has finished for PR 27595 at commit
|
SparkQA
commented
Feb 27, 2020
Test build #119038 has finished for PR 27595 at commit
|
Eric5553
commented
Feb 28, 2020
@cloud-fan Sure, the conflicts have been resolved. :-) |
cloud-fan
commented
Feb 28, 2020
thanks, merging to master! |
### What changes were proposed in this pull request? Currently the join operators are not well abstracted, since there are lot of common logic. A trait can be created for easier pattern matching and other future handiness. This is a follow-up PR based on comment apache#27509 (comment) . This PR refined from the following aspects: 1. Refined structure of all physical join operators 2. Add missing joinType field for CartesianProductExec operator 3. Refined codes related to Explain Formatted The EXPLAIN FORMATTED changes are 1. Converge all join operator `verboseStringWithOperatorId` implementations to `BaseJoinExec`. Join condition displayed, and join keys displayed if it’s not empty. 2. `apache#1` will add Join condition to `BroadcastNestedLoopJoinExec`. 3. `apache#1` will **NOT** affect `CartesianProductExec`,`SortMergeJoin` and `HashJoin`s, since they already got there override implementation before. 4. Converge all join operator `simpleStringWithNodeId` to `BaseJoinExec`, which will enhance the one line description for `CartesianProductExec` with `JoinType` added. 5. Override `simpleStringWithNodeId` in `BroadcastNestedLoopJoinExec` to show `BuildSide`, which was only done for `HashJoin`s before. ### Why are the changes needed? Make the code consistent with other operators and for future handiness of join operators. ### Does this PR introduce any user-facing change? No ### How was this patch tested? Existing tests Closesapache#27595 from Eric5553/RefineJoin. Authored-by: Eric Wu <492960551@qq.com> Signed-off-by: Wenchen Fan <wenchen@databricks.com>
What changes were proposed in this pull request?
Currently the join operators are not well abstracted, since there are lot of common logic. A trait can be created for easier pattern matching and other future handiness. This is a follow-up PR based on comment
#27509 (comment) .
This PR refined from the following aspects:
The EXPLAIN FORMATTED changes are
verboseStringWithOperatorIdimplementations toBaseJoinExec. Join condition displayed, and join keys displayed if it’s not empty.#1will add Join condition toBroadcastNestedLoopJoinExec.#1will NOT affectCartesianProductExec,SortMergeJoinandHashJoins, since they already got there override implementation before.simpleStringWithNodeIdtoBaseJoinExec, which will enhance the one line description forCartesianProductExecwithJoinTypeadded.simpleStringWithNodeIdinBroadcastNestedLoopJoinExecto showBuildSide, which was only done forHashJoins before.Why are the changes needed?
Make the code consistent with other operators and for future handiness of join operators.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Existing tests