starrocks icon indicating copy to clipboard operation
starrocks copied to clipboard

[WIP] [Feature] Introduce nestloop join operator

Open murphyatwork opened this issue 2 years ago • 4 comments

What type of PR is this:

  • [ ] bug
  • [x] feature
  • [ ] enhancement
  • [ ] refactor
  • [ ] others

Which issues of this PR fixes :

Fixes #9583

Problem Summary(Required) :

  1. Introduce two operators in BE: NLJoinProbeOperator and NLJoinBuildOperator
    1. Support INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN
    2. Support non-equal join conjuncts
  2. Implement the LogicalJoinOperator with PhysicalNestLoopJoinOperator in optimizer
  3. Separate join_conjuncts and conjuncts for NestLoopJoinNode, to implement outer join

murphyatwork avatar Aug 01 '22 10:08 murphyatwork

run all

murphyatwork avatar Aug 03 '22 15:08 murphyatwork

run starrocks_admit_test

murphyatwork avatar Aug 11 '22 13:08 murphyatwork

run all

murphyatwork avatar Aug 15 '22 02:08 murphyatwork

run starrocks_admit_test

murphyatwork avatar Aug 15 '22 03:08 murphyatwork

run starrocks_admit_test

murphyatwork avatar Aug 18 '22 08:08 murphyatwork

run starrocks_admit_test

murphyatwork avatar Aug 18 '22 10:08 murphyatwork

run starrocks_admit_test

murphyatwork avatar Aug 19 '22 02:08 murphyatwork

run starrocks_admit_test

murphyatwork avatar Aug 20 '22 00:08 murphyatwork

run starrocks_admit_test

murphyatwork avatar Aug 20 '22 02:08 murphyatwork

run starrocks_fe_unittest

murphyatwork avatar Aug 20 '22 05:08 murphyatwork

run starrocks_fe_unittest

murphyatwork avatar Aug 20 '22 05:08 murphyatwork

run starrocks_fe_unittest

murphyatwork avatar Aug 20 '22 05:08 murphyatwork

run starrocks_admit_test

wanpengfei-git avatar Aug 20 '22 09:08 wanpengfei-git

run starrocks_admit_test

murphyatwork avatar Aug 20 '22 10:08 murphyatwork

@Mergifyio backport branch-2.4

murphyatwork avatar Aug 20 '22 11:08 murphyatwork

backport branch-2.4

✅ Backports have been created

mergify[bot] avatar Aug 20 '22 11:08 mergify[bot]

[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% []

wanpengfei-git avatar Aug 20 '22 13:08 wanpengfei-git