starrocks
starrocks copied to clipboard
[WIP] [Feature] Introduce nestloop join operator
What type of PR is this:
- [ ] bug
- [x] feature
- [ ] enhancement
- [ ] refactor
- [ ] others
Which issues of this PR fixes :
Fixes #9583
Problem Summary(Required) :
- Introduce two operators in BE:
NLJoinProbeOperator
andNLJoinBuildOperator
- Support
INNER JOIN
,LEFT OUTER JOIN
,RIGHT OUTER JOIN
,FULL OUTER JOIN
- Support non-equal join conjuncts
- Support
- Implement the
LogicalJoinOperator
withPhysicalNestLoopJoinOperator
in optimizer - Separate
join_conjuncts
andconjuncts
forNestLoopJoinNode
, to implement outer join
run all
run starrocks_admit_test
run all
run starrocks_admit_test
run starrocks_admit_test
run starrocks_admit_test
run starrocks_admit_test
run starrocks_admit_test
run starrocks_admit_test
run starrocks_fe_unittest
run starrocks_fe_unittest
run starrocks_fe_unittest
run starrocks_admit_test
run starrocks_admit_test
@Mergifyio backport branch-2.4
backport branch-2.4
✅ Backports have been created
-
#10255 [Feature] Introduce nestloop join operator (backport #9430) has been created for branch
branch-2.4
[FE PR Coverage Check]
:heart_eyes: pass : 59 / 67 (88.06%)
file detail
path | covered_line | new_line | coverage | not_covered_line_detail | |
---|---|---|---|---|---|
:large_blue_circle: | com/starrocks/planner/NestLoopJoinNode.java | 5 | 11 | 45.45% | [41, 42, 43, 44, 45, 49] |
:large_blue_circle: | com/starrocks/sql/optimizer/RequiredPropertyDeriver.java | 1 | 2 | 50.00% | [90] |
:large_blue_circle: | com/starrocks/sql/optimizer/rewrite/physical/AddDecodeNodeForDictStringRule.java | 1 | 2 | 50.00% | [736] |
:large_blue_circle: | com/starrocks/sql/optimizer/Optimizer.java | 1 | 1 | 100.00% | [] |
:large_blue_circle: | com/starrocks/sql/optimizer/transformer/RelationTransformer.java | 2 | 2 | 100.00% | [] |
:large_blue_circle: | com/starrocks/qe/SessionVariable.java | 1 | 1 | 100.00% | [] |
:large_blue_circle: | com/starrocks/sql/optimizer/rule/RuleSet.java | 1 | 1 | 100.00% | [] |
:large_blue_circle: | com/starrocks/sql/optimizer/rule/implementation/HashJoinImplementationRule.java | 4 | 4 | 100.00% | [] |
:large_blue_circle: | com/starrocks/sql/plan/PlanFragmentBuilder.java | 4 | 4 | 100.00% | [] |
:large_blue_circle: | com/starrocks/sql/optimizer/rule/implementation/MergeJoinImplementationRule.java | 3 | 3 | 100.00% | [] |
:large_blue_circle: | com/starrocks/sql/optimizer/rule/transformation/PushDownJoinPredicateBase.java | 17 | 17 | 100.00% | [] |
:large_blue_circle: | com/starrocks/sql/optimizer/rule/implementation/NestLoopJoinImplementationRule.java | 5 | 5 | 100.00% | [] |
:large_blue_circle: | com/starrocks/sql/optimizer/Utils.java | 10 | 10 | 100.00% | [] |
:large_blue_circle: | com/starrocks/sql/optimizer/rewrite/physical/PruneShuffleColumnRule.java | 1 | 1 | 100.00% | [] |
:large_blue_circle: | com/starrocks/sql/optimizer/cost/CostModel.java | 2 | 2 | 100.00% | [] |
:large_blue_circle: | com/starrocks/sql/optimizer/rule/implementation/PreAggregateTurnOnRule.java | 1 | 1 | 100.00% | [] |