starrocks
starrocks copied to clipboard
Skew shuffle join
Why I'm doing:
What I'm doing:
Fixes #issue
What type of PR is this:
- [ ] BugFix
- [ ] Feature
- [ ] Enhancement
- [ ] Refactor
- [ ] UT
- [ ] Doc
- [ ] Tool
Does this PR entail a change in behavior?
- [x] Yes, this PR will result in a change in behavior.
- [ ] No, this PR will not result in a change in behavior.
If yes, please specify the type of change:
- [ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
- [ ] Parameter changes: default values, similar parameters but with different default values
- [ ] Policy changes: use new policy to replace old one, functionality automatically enabled
- [ ] Feature removed
- [ ] Miscellaneous: upgrade & downgrade compatibility, etc.
Checklist:
- [ ] I have added test cases for my bug fix or my new feature
- [ ] This pr needs user documentation (for new or modified features or behaviors)
- [ ] I have added documentation for my new feature or new function
- [ ] This is a backport pr
Bugfix cherry-pick branch check:
- [ ] I have checked the version labels which the pr will be auto-backported to the target branch
- [ ] 3.3
- [ ] 3.2
- [ ] 3.1
- [ ] 3.0
- [ ] 2.5
[FE Incremental Coverage Report]
:x: fail : 47 / 393 (11.96%)
file detail
| path | covered_line | new_line | coverage | not_covered_line_detail | |
|---|---|---|---|---|---|
| :large_blue_circle: | com/starrocks/planner/SplitCastDataSink.java | 0 | 34 | 00.00% | [30, 32, 34, 36, 40, 42, 43, 44, 45, 47, 52, 54, 55, 56, 57, 59, 64, 65, 66, 67, 68, 69, 70, 72, 73, 74, 79, 80, 85, 86, 90, 94, 98, 103] |
| :large_blue_circle: | com/starrocks/sql/optimizer/operator/physical/PhysicalCTEAnchorOperator.java | 0 | 4 | 00.00% | [41, 42, 43, 44] |
| :large_blue_circle: | com/starrocks/sql/optimizer/rule/tree/SkewShuffleJoinEliminationRule.java | 0 | 147 | 00.00% | [45, 47, 48, 49, 53, 54, 60, 61, 62, 67, 72, 73, 74, 76, 81, 83, 85, 86, 87, 90, 91, 94, 95, 98, 99, 100, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 128, 129, 131, 132, 133, 135, 136, 137, 139, 140, 141, 143, 144, 145, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 160, 161, 162, 163, 172, 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, 193, 194, 195, 196, 197, 198, 201, 202, 203, 204, 205, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 221, 222, 223, 224, 226, 227, 228, 229, 230, 232, 240, 241, 242, 246, 248, 250, 252, 254, 258, 260, 265, 267, 268, 271, 275, 276, 278, 279, 284, 285, 286, 288] |
| :large_blue_circle: | com/starrocks/sql/optimizer/operator/physical/PhysicalSplitProduceOperator.java | 0 | 13 | 00.00% | [26, 27, 28, 31, 37, 42, 43, 46, 47, 50, 51, 56, 61] |
| :large_blue_circle: | com/starrocks/sql/optimizer/operator/physical/PhysicalMergeOperator.java | 0 | 11 | 00.00% | [31, 32, 33, 37, 42, 43, 46, 47, 50, 51, 56] |
| :large_blue_circle: | com/starrocks/sql/optimizer/operator/physical/PhysicalSplitConsumeOperator.java | 0 | 16 | 00.00% | [31, 32, 33, 34, 37, 41, 46, 51, 52, 55, 56, 59, 60, 61, 66, 71] |
| :large_blue_circle: | com/starrocks/sql/optimizer/OptExpressionVisitor.java | 0 | 3 | 00.00% | [290, 294, 298] |
| :large_blue_circle: | com/starrocks/planner/SplitPlanFragment.java | 0 | 40 | 00.00% | [27, 28, 30, 33, 37, 41, 42, 43, 44, 45, 46, 49, 53, 57, 62, 63, 66, 68, 70, 72, 73, 74, 75, 76, 77, 78, 81, 85, 86, 91, 92, 96, 97, 101, 102, 106, 107, 111, 113, 114] |
| :large_blue_circle: | com/starrocks/sql/plan/PlanFragmentBuilder.java | 27 | 100 | 27.00% | [3717, 3718, 3719, 3720, 3728, 3729, 3731, 3736, 3737, 3739, 3740, 3741, 3742, 3744, 3745, 3748, 3750, 3751, 3752, 3753, 3754, 3755, 3758, 3759, 3762, 3763, 3765, 3766, 3768, 3769, 3771, 3772, 3773, 3778, 3779, 3781, 3782, 3784, 3785, 3786, 3789, 3790, 3791, 3792, 3793, 3794, 3796, 3797, 3799, 3801, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3812, 3813, 3815, 3817, 3820, 3821, 3822, 3823, 3827, 3829, 3830, 3832, 3834, 3857, 3858] |
| :large_blue_circle: | com/starrocks/planner/UnionNode.java | 2 | 4 | 50.00% | [59, 60] |
| :large_blue_circle: | com/starrocks/sql/plan/ExecPlan.java | 1 | 2 | 50.00% | [147] |
| :large_blue_circle: | com/starrocks/sql/optimizer/operator/physical/PhysicalHashJoinOperator.java | 2 | 4 | 50.00% | [71, 75] |
| :large_blue_circle: | com/starrocks/sql/optimizer/rule/implementation/HashJoinImplementationRule.java | 3 | 3 | 100.00% | [] |
| :large_blue_circle: | com/starrocks/planner/DataPartition.java | 1 | 1 | 100.00% | [] |
| :large_blue_circle: | com/starrocks/common/LocalExchangerType.java | 8 | 8 | 100.00% | [] |
| :large_blue_circle: | com/starrocks/sql/optimizer/operator/OperatorType.java | 3 | 3 | 100.00% | [] |
[BE Incremental Coverage Report]
:x: fail : 12 / 412 (02.91%)
file detail
| path | covered_line | new_line | coverage | not_covered_line_detail | |
|---|---|---|---|---|---|
| :large_blue_circle: | be/src/exec/pipeline/exchange/split_local_exchange.h | 0 | 4 | 00.00% | [27, 28, 31, 32] |
| :large_blue_circle: | be/src/exec/hash_joiner.h | 0 | 2 | 00.00% | [94, 242] |
| :large_blue_circle: | be/src/exec/pipeline/nljoin/nljoin_context.cpp | 0 | 4 | 00.00% | [177, 180, 181, 188] |
| :large_blue_circle: | be/src/exec/pipeline/runtime_filter_types.h | 0 | 3 | 00.00% | [55, 56, 301] |
| :large_blue_circle: | be/src/exec/pipeline/pipeline_builder.cpp | 0 | 4 | 00.00% | [387, 388, 389, 391] |
| :large_blue_circle: | be/src/exec/pipeline/exchange/multi_cast_local_exchange.h | 0 | 2 | 00.00% | [55, 56] |
| :large_blue_circle: | be/src/exec/pipeline/hashjoin/hash_join_build_operator.cpp | 0 | 15 | 00.00% | [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 175, 176] |
| :large_blue_circle: | be/src/runtime/multi_cast_data_stream_sink.h | 0 | 4 | 00.00% | [30, 39, 40, 44] |
| :large_blue_circle: | be/src/exec/pipeline/exchange/split_local_exchange.cpp | 0 | 101 | 00.00% | [20, 21, 22, 23, 26, 27, 28, 30, 31, 32, 33, 34, 36, 39, 42, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 60, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73, 75, 76, 77, 79, 82, 83, 85, 86, 87, 88, 89, 90, 93, 94, 95, 97, 98, 101, 102, 103, 104, 105, 106, 109, 110, 111, 112, 114, 116, 117, 118, 119, 120, 121, 122, 125, 126, 127, 128, 131, 132, 133, 134, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 152, 154, 155, 156, 157, 159, 160, 161, 162] |
| :large_blue_circle: | be/src/runtime/runtime_filter_worker.cpp | 0 | 121 | 00.00% | [102, 123, 124, 129, 130, 131, 132, 133, 134, 135, 136, 137, 164, 190, 195, 198, 199, 201, 203, 205, 207, 208, 210, 211, 212, 213, 214, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 231, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 247, 288, 289, 290, 293, 294, 295, 311, 312, 314, 392, 398, 400, 403, 404, 405, 407, 409, 410, 412, 414, 415, 416, 417, 418, 421, 422, 423, 424, 425, 427, 429, 434, 435, 436, 438, 441, 444, 445, 447, 449, 455, 499, 519, 520, 521, 522, 523, 524, 653, 722, 724, 756, 757, 758, 759, 1033, 1098, 1099, 1100, 1101, 1102, 1103, 1105, 1106, 1108, 1111, 1112, 1113, 1116] |
| :large_blue_circle: | be/src/exec/pipeline/exchange/multi_cast_local_exchange_sink_operator.cpp | 0 | 8 | 00.00% | [48, 49, 50, 51, 53, 54, 55, 56] |
| :large_blue_circle: | be/src/exec/pipeline/hashjoin/spillable_hash_join_build_operator.cpp | 0 | 1 | 00.00% | [147] |
| :large_blue_circle: | be/src/exec/hash_joiner.cpp | 0 | 4 | 00.00% | [75, 76, 574, 589] |
| :large_blue_circle: | be/src/exec/mor_processor.cpp | 0 | 2 | 00.00% | [48, 49] |
| :large_blue_circle: | be/src/exec/data_sink.cpp | 0 | 38 | 00.00% | [177, 178, 181, 182, 184, 185, 186, 187, 188, 190, 191, 311, 358, 360, 361, 362, 364, 365, 366, 367, 368, 371, 372, 375, 376, 377, 378, 379, 380, 381, 384, 385, 386, 388, 391, 392, 393, 396] |
| :large_blue_circle: | be/src/exec/union_node.cpp | 0 | 7 | 00.00% | [31, 32, 33, 35, 37, 429, 430] |
| :large_blue_circle: | be/src/exec/hash_join_node.cpp | 0 | 5 | 00.00% | [148, 149, 476, 477, 1028] |
| :large_blue_circle: | be/src/exec/pipeline/exchange/local_exchange.h | 0 | 3 | 00.00% | [276, 278, 280] |
| :large_blue_circle: | be/src/exec/pipeline/exchange/local_exchange.cpp | 0 | 4 | 00.00% | [344, 345, 346, 348] |
| :large_blue_circle: | be/src/exprs/runtime_filter_bank.h | 0 | 1 | 00.00% | [126] |
| :large_blue_circle: | be/src/runtime/multi_cast_data_stream_sink.cpp | 0 | 9 | 00.00% | [48, 49, 50, 51, 52, 53, 55, 56, 58] |
| :large_blue_circle: | be/src/exec/pipeline/sort/partition_sort_sink_operator.cpp | 0 | 2 | 00.00% | [78, 84] |
| :large_blue_circle: | be/src/exprs/runtime_filter_bank.cpp | 3 | 55 | 05.45% | [118, 119, 120, 121, 122, 125, 127, 132, 133, 134, 135, 136, 137, 138, 139, 141, 142, 143, 145, 149, 153, 154, 155, 162, 163, 164, 165, 166, 170, 171, 174, 175, 177, 178, 180, 181, 183, 185, 187, 188, 189, 191, 193, 194, 195, 197, 198, 218, 320, 321, 323, 324] |
| :large_blue_circle: | be/src/exprs/runtime_filter.h | 5 | 8 | 62.50% | [546, 547, 548] |
| :large_blue_circle: | be/src/runtime/runtime_filter_worker.h | 4 | 5 | 80.00% | [76] |
