-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[fix](join) incorrect result of mark join #30543
Conversation
run buildall |
clang-tidy review says "All clean, LGTM! 👍" |
TPC-H: Total hot run time: 36926 ms
|
TeamCity be ut coverage result: |
TPC-DS: Total hot run time: 171973 ms
|
ClickBench: Total hot run time: 30.62 s
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
|
clang-tidy review says "All clean, LGTM! 👍" |
f95d0c1
to
0556c50
Compare
run buildall |
clang-tidy review says "All clean, LGTM! 👍" |
1 similar comment
clang-tidy review says "All clean, LGTM! 👍" |
TeamCity be ut coverage result: |
TPC-H: Total hot run time: 37011 ms
|
TPC-DS: Total hot run time: 172214 ms
|
ClickBench: Total hot run time: 30.08 s
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
|
run buildall |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
@@ -246,7 +286,7 @@ Status ProcessHashTableProbe<JoinOpType, Parent>::do_process(HashTableType& hash | |||
template <int JoinOpType, typename Parent> | |||
template <bool with_other_conjuncts> | |||
Status ProcessHashTableProbe<JoinOpType, Parent>::do_mark_join_conjuncts( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: function 'do_mark_join_conjuncts' has cognitive complexity of 56 (threshold 50) [readability-function-cognitive-complexity]
Status ProcessHashTableProbe<JoinOpType, Parent>::do_mark_join_conjuncts(
^
Additional context
be/src/vec/exec/join/process_hash_table_probe_impl.h:300: +1, including nesting penalty of 0, nesting level increased to 1
if (!row_count) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:309: +1, including nesting penalty of 0, nesting level increased to 1
if (_parent->_mark_join_conjuncts.empty()) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:321: +2, including nesting penalty of 1, nesting level increased to 2
for (size_t i = 0; i != row_count; ++i) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:323: +3, including nesting penalty of 2, nesting level increased to 3
if constexpr (is_null_aware_join) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:324: +4, including nesting penalty of 3, nesting level increased to 4
if constexpr (with_other_conjuncts) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:326: +1, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:327: +5, including nesting penalty of 4, nesting level increased to 5
if (filter_data[i]) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:330: +1, nesting level increased to 5
} else if (_build_indexs[i] == 0) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:333: +1, nesting level increased to 5
} else if (_build_indexs[i] == hash_table_bucket_size) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:339: +2, including nesting penalty of 1, nesting level increased to 2
if constexpr (!is_null_aware_join) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:342: +1, nesting level increased to 1
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:343: +2, including nesting penalty of 1, nesting level increased to 2
RETURN_IF_ERROR(VExprContext::execute_conjuncts(_parent->_mark_join_conjuncts, output_block,
^
be/src/common/status.h:540: expanded from macro 'RETURN_IF_ERROR'
do { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:343: +3, including nesting penalty of 2, nesting level increased to 3
RETURN_IF_ERROR(VExprContext::execute_conjuncts(_parent->_mark_join_conjuncts, output_block,
^
be/src/common/status.h:542: expanded from macro 'RETURN_IF_ERROR'
if (UNLIKELY(!_status_.ok())) { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:350: +1, including nesting penalty of 0, nesting level increased to 1
if constexpr (with_other_conjuncts) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:354: +2, including nesting penalty of 1, nesting level increased to 2
RETURN_IF_ERROR(VExprContext::execute_conjuncts(_parent->_other_join_conjuncts, nullptr,
^
be/src/common/status.h:540: expanded from macro 'RETURN_IF_ERROR'
do { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:354: +3, including nesting penalty of 2, nesting level increased to 3
RETURN_IF_ERROR(VExprContext::execute_conjuncts(_parent->_other_join_conjuncts, nullptr,
^
be/src/common/status.h:542: expanded from macro 'RETURN_IF_ERROR'
if (UNLIKELY(!_status_.ok())) { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:360: +2, including nesting penalty of 1, nesting level increased to 2
for (size_t i = 0; i != filter.size(); ++i) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:379: +1
*_has_null_in_build_side && is_null_aware_join && !with_other_conjuncts;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:380: +1, including nesting penalty of 0, nesting level increased to 1
for (size_t i = 0; i != row_count; ++i) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:382: +2, including nesting penalty of 1, nesting level increased to 2
if (_build_indexs[i] == 0) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:384: +3, including nesting penalty of 2, nesting level increased to 3
if (not_matched_before) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:386: +1
mark_null_map[i] = has_null_mark_value || should_be_null_if_build_side_has_null;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:389: +1, nesting level increased to 2
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:390: +3, including nesting penalty of 2, nesting level increased to 3
if (mark_null_map[i]) { // is null
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:392: +1, nesting level increased to 3
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:393: +4, including nesting penalty of 3, nesting level increased to 4
if (mark_filter_data[i] && not_matched_before) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:393: +1
if (mark_filter_data[i] && not_matched_before) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:401: +1, including nesting penalty of 0, nesting level increased to 1
if constexpr (is_anti_join) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:403: +2, including nesting penalty of 1, nesting level increased to 2
for (size_t i = 0; i != row_count; ++i) {
^
TPC-H: Total hot run time: 36827 ms
|
TPC-DS: Total hot run time: 171716 ms
|
ClickBench: Total hot run time: 30.91 s
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
|
TeamCity be ut coverage result: |
run buildall |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
@@ -246,7 +313,7 @@ Status ProcessHashTableProbe<JoinOpType, Parent>::do_process(HashTableType& hash | |||
template <int JoinOpType, typename Parent> | |||
template <bool with_other_conjuncts> | |||
Status ProcessHashTableProbe<JoinOpType, Parent>::do_mark_join_conjuncts( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: function 'do_mark_join_conjuncts' has cognitive complexity of 56 (threshold 50) [readability-function-cognitive-complexity]
_conjuncts>
^
Additional context
be/src/vec/exec/join/process_hash_table_probe_impl.h:327: +1, including nesting penalty of 0, nesting level increased to 1
ck->rows();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:336: +1, including nesting penalty of 0, nesting level increased to 1
et_data();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:348: +2, including nesting penalty of 1, nesting level increased to 2
tched = -1;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:350: +3, including nesting penalty of 2, nesting level increased to 3
ucket_size;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:351: +4, including nesting penalty of 3, nesting level increased to 4
are_join) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:354: +1, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:354: +5, including nesting penalty of 4, nesting level increased to 5
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:357: +1, nesting level increased to 5
i] = false;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:360: +1, nesting level increased to 5
_indexs[i];
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:366: +2, including nesting penalty of 1, nesting level increased to 2
}
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:370: +1, nesting level increased to 1
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:370: +2, including nesting penalty of 1, nesting level increased to 2
} else {
^
be/src/common/status.h:540: expanded from macro 'RETURN_IF_ERROR'
do { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:370: +3, including nesting penalty of 2, nesting level increased to 3
} else {
^
be/src/common/status.h:542: expanded from macro 'RETURN_IF_ERROR'
if (UNLIKELY(!_status_.ok())) { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:377: +1, including nesting penalty of 0, nesting level increased to 1
er.data();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:381: +2, including nesting penalty of 1, nesting level increased to 2
ll = false;
^
be/src/common/status.h:540: expanded from macro 'RETURN_IF_ERROR'
do { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:381: +3, including nesting penalty of 2, nesting level increased to 3
ll = false;
^
be/src/common/status.h:542: expanded from macro 'RETURN_IF_ERROR'
if (UNLIKELY(!_status_.ok())) { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:387: +2, including nesting penalty of 1, nesting level increased to 2
ter.data();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:406: +1
_has_null =
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:407: +1, including nesting penalty of 0, nesting level increased to 1
_conjuncts;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:409: +2, including nesting penalty of 1, nesting level increased to 2
_indexs[i];
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:411: +3, including nesting penalty of 2, nesting level increased to 3
_indexs[i];
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:413: +1
[i] = true;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:417: +1, nesting level increased to 2
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:417: +3, including nesting penalty of 2, nesting level increased to 3
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:420: +1, nesting level increased to 3
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:420: +4, including nesting penalty of 3, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:420: +1
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:428: +1, including nesting penalty of 0, nesting level increased to 1
}
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:430: +2, including nesting penalty of 1, nesting level increased to 2
mark column
^
@@ -370,8 +440,7 @@ | |||
|
|||
template <int JoinOpType, typename Parent> | |||
Status ProcessHashTableProbe<JoinOpType, Parent>::do_other_join_conjuncts( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: function 'do_other_join_conjuncts' has cognitive complexity of 60 (threshold 50) [readability-function-cognitive-complexity]
ame Parent>
^
Additional context
be/src/vec/exec/join/process_hash_table_probe_impl.h:445: +1, including nesting penalty of 0, nesting level increased to 1
ck->rows();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:454: +1, including nesting penalty of 0, nesting level increased to 1
ll = false;
^
be/src/common/status.h:540: expanded from macro 'RETURN_IF_ERROR'
do { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:454: +2, including nesting penalty of 1, nesting level increased to 2
ll = false;
^
be/src/common/status.h:542: expanded from macro 'RETURN_IF_ERROR'
if (UNLIKELY(!_status_.ok())) { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:469: +1, including nesting penalty of 0, nesting level increased to 1
.data();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:476: +2, including nesting penalty of 1, nesting level increased to 2
re are any.
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:480: +3, including nesting penalty of 2, nesting level increased to 3
mn_ptr[i];
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:483: +1, nesting level increased to 3
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:485: +3, including nesting penalty of 2, nesting level increased to 3
}
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:490: +2, including nesting penalty of 1, nesting level increased to 2
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:491: +3, including nesting penalty of 2, nesting level increased to 3
unt; ++i) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:494: +4, including nesting penalty of 3, nesting level increased to 4
mn_ptr[i]);
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:500: +1, nesting level increased to 1
er_column);
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:506: +2, including nesting penalty of 1, nesting level increased to 2
().data();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:509: +3, including nesting penalty of 2, nesting level increased to 3
indexs[i];
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:510: +4, including nesting penalty of 3, nesting level increased to 4
EMI_JOIN) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:514: +1, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:517: +1, nesting level increased to 3
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:517: +4, including nesting penalty of 3, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:520: +1, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:521: +5, including nesting penalty of 4, nesting level increased to 5
i] = false;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:529: +1, nesting level increased to 1
er_column);
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:531: +2, including nesting penalty of 1, nesting level increased to 2
NTI_JOIN) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:534: +1, nesting level increased to 1
;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:536: +2, including nesting penalty of 1, nesting level increased to 2
r_size = 0;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:543: +1, including nesting penalty of 0, nesting level increased to 1
0);
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:547: +1, nesting level increased to 1
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:547: +2, including nesting penalty of 1, nesting level increased to 2
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:552: +2, including nesting penalty of 1, nesting level increased to 2
;
^
be/src/common/status.h:540: expanded from macro 'RETURN_IF_ERROR'
do { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:552: +3, including nesting penalty of 2, nesting level increased to 3
;
^
be/src/common/status.h:542: expanded from macro 'RETURN_IF_ERROR'
if (UNLIKELY(!_status_.ok())) { \
^
ClickBench: Total hot run time: 31.06 s
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
|
TeamCity be ut coverage result: |
run buildall |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
@@ -370,8 +440,7 @@ Status ProcessHashTableProbe<JoinOpType, Parent>::do_mark_join_conjuncts( | |||
|
|||
template <int JoinOpType, typename Parent> | |||
Status ProcessHashTableProbe<JoinOpType, Parent>::do_other_join_conjuncts( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: function 'do_other_join_conjuncts' has cognitive complexity of 61 (threshold 50) [readability-function-cognitive-complexity]
ame Parent>
^
Additional context
be/src/vec/exec/join/process_hash_table_probe_impl.h:445: +1, including nesting penalty of 0, nesting level increased to 1
ck->rows();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:454: +1, including nesting penalty of 0, nesting level increased to 1
ll = false;
^
be/src/common/status.h:540: expanded from macro 'RETURN_IF_ERROR'
do { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:454: +2, including nesting penalty of 1, nesting level increased to 2
ll = false;
^
be/src/common/status.h:542: expanded from macro 'RETURN_IF_ERROR'
if (UNLIKELY(!_status_.ok())) { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:469: +1, including nesting penalty of 0, nesting level increased to 1
.data();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:476: +2, including nesting penalty of 1, nesting level increased to 2
re are any.
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:480: +3, including nesting penalty of 2, nesting level increased to 3
mn_ptr[i];
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:483: +1, nesting level increased to 3
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:485: +3, including nesting penalty of 2, nesting level increased to 3
}
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:490: +2, including nesting penalty of 1, nesting level increased to 2
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:491: +3, including nesting penalty of 2, nesting level increased to 3
unt; ++i) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:494: +4, including nesting penalty of 3, nesting level increased to 4
mn_ptr[i]);
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:500: +1, nesting level increased to 1
er_column);
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:506: +2, including nesting penalty of 1, nesting level increased to 2
().data();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:509: +3, including nesting penalty of 2, nesting level increased to 3
indexs[i];
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:510: +4, including nesting penalty of 3, nesting level increased to 4
EMI_JOIN) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:512: +1, nesting level increased to 4
i] = false;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:516: +1, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:519: +1, nesting level increased to 3
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:519: +4, including nesting penalty of 3, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:522: +1, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:523: +5, including nesting penalty of 4, nesting level increased to 5
i] = false;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:531: +1, nesting level increased to 1
er_column);
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:533: +2, including nesting penalty of 1, nesting level increased to 2
NTI_JOIN) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:536: +1, nesting level increased to 1
;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:538: +2, including nesting penalty of 1, nesting level increased to 2
r_size = 0;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:545: +1, including nesting penalty of 0, nesting level increased to 1
0);
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:549: +1, nesting level increased to 1
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:549: +2, including nesting penalty of 1, nesting level increased to 2
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:554: +2, including nesting penalty of 1, nesting level increased to 2
;
^
be/src/common/status.h:540: expanded from macro 'RETURN_IF_ERROR'
do { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:554: +3, including nesting penalty of 2, nesting level increased to 3
;
^
be/src/common/status.h:542: expanded from macro 'RETURN_IF_ERROR'
if (UNLIKELY(!_status_.ok())) { \
^
TPC-H: Total hot run time: 36851 ms
|
TeamCity be ut coverage result: |
TPC-DS: Total hot run time: 172152 ms
|
ClickBench: Total hot run time: 31 s
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
|
run buildall |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
* | ||
* To avoid using nested loop join, we use the mark join conjunct(`t1.k1 = t2.k1`) as the equal join conjunct. | ||
* So this query will be a "null aware left anti join", which means the equal conjunct's result should be nullable. | ||
*/ | ||
template <int JoinOpType, typename Parent> | ||
template <bool with_other_conjuncts> | ||
Status ProcessHashTableProbe<JoinOpType, Parent>::do_mark_join_conjuncts( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: function 'do_mark_join_conjuncts' has cognitive complexity of 56 (threshold 50) [readability-function-cognitive-complexity]
_conjuncts>
^
Additional context
be/src/vec/exec/join/process_hash_table_probe_impl.h:338: +1, including nesting penalty of 0, nesting level increased to 1
ck->rows();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:347: +1, including nesting penalty of 0, nesting level increased to 1
et_data();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:359: +2, including nesting penalty of 1, nesting level increased to 2
tched = -1;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:361: +3, including nesting penalty of 2, nesting level increased to 3
ucket_size;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:362: +4, including nesting penalty of 3, nesting level increased to 4
are_join) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:365: +1, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:365: +5, including nesting penalty of 4, nesting level increased to 5
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:368: +1, nesting level increased to 5
i] = false;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:371: +1, nesting level increased to 5
_indexs[i];
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:377: +2, including nesting penalty of 1, nesting level increased to 2
}
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:381: +1, nesting level increased to 1
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:381: +2, including nesting penalty of 1, nesting level increased to 2
} else {
^
be/src/common/status.h:540: expanded from macro 'RETURN_IF_ERROR'
do { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:381: +3, including nesting penalty of 2, nesting level increased to 3
} else {
^
be/src/common/status.h:542: expanded from macro 'RETURN_IF_ERROR'
if (UNLIKELY(!_status_.ok())) { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:388: +1, including nesting penalty of 0, nesting level increased to 1
er.data();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:392: +2, including nesting penalty of 1, nesting level increased to 2
ll = false;
^
be/src/common/status.h:540: expanded from macro 'RETURN_IF_ERROR'
do { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:392: +3, including nesting penalty of 2, nesting level increased to 3
ll = false;
^
be/src/common/status.h:542: expanded from macro 'RETURN_IF_ERROR'
if (UNLIKELY(!_status_.ok())) { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:398: +2, including nesting penalty of 1, nesting level increased to 2
ter.data();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:417: +1
_has_null =
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:418: +1, including nesting penalty of 0, nesting level increased to 1
_conjuncts;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:420: +2, including nesting penalty of 1, nesting level increased to 2
_indexs[i];
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:422: +3, including nesting penalty of 2, nesting level increased to 3
_indexs[i];
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:424: +1
[i] = true;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:428: +1, nesting level increased to 2
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:428: +3, including nesting penalty of 2, nesting level increased to 3
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:431: +1, nesting level increased to 3
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:431: +4, including nesting penalty of 3, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:431: +1
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:439: +1, including nesting penalty of 0, nesting level increased to 1
}
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:441: +2, including nesting penalty of 1, nesting level increased to 2
mark column
^
@@ -372,8 +451,7 @@ | |||
|
|||
template <int JoinOpType, typename Parent> | |||
Status ProcessHashTableProbe<JoinOpType, Parent>::do_other_join_conjuncts( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: function 'do_other_join_conjuncts' has cognitive complexity of 61 (threshold 50) [readability-function-cognitive-complexity]
ame Parent>
^
Additional context
be/src/vec/exec/join/process_hash_table_probe_impl.h:456: +1, including nesting penalty of 0, nesting level increased to 1
ck->rows();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:465: +1, including nesting penalty of 0, nesting level increased to 1
ll = false;
^
be/src/common/status.h:540: expanded from macro 'RETURN_IF_ERROR'
do { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:465: +2, including nesting penalty of 1, nesting level increased to 2
ll = false;
^
be/src/common/status.h:542: expanded from macro 'RETURN_IF_ERROR'
if (UNLIKELY(!_status_.ok())) { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:480: +1, including nesting penalty of 0, nesting level increased to 1
.data();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:487: +2, including nesting penalty of 1, nesting level increased to 2
re are any.
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:491: +3, including nesting penalty of 2, nesting level increased to 3
mn_ptr[i];
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:494: +1, nesting level increased to 3
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:496: +3, including nesting penalty of 2, nesting level increased to 3
}
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:501: +2, including nesting penalty of 1, nesting level increased to 2
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:502: +3, including nesting penalty of 2, nesting level increased to 3
unt; ++i) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:505: +4, including nesting penalty of 3, nesting level increased to 4
mn_ptr[i]);
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:511: +1, nesting level increased to 1
er_column);
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:517: +2, including nesting penalty of 1, nesting level increased to 2
().data();
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:520: +3, including nesting penalty of 2, nesting level increased to 3
indexs[i];
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:521: +4, including nesting penalty of 3, nesting level increased to 4
EMI_JOIN) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:523: +1, nesting level increased to 4
i] = false;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:527: +1, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:530: +1, nesting level increased to 3
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:530: +4, including nesting penalty of 3, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:533: +1, nesting level increased to 4
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:534: +5, including nesting penalty of 4, nesting level increased to 5
i] = false;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:542: +1, nesting level increased to 1
er_column);
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:544: +2, including nesting penalty of 1, nesting level increased to 2
NTI_JOIN) {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:547: +1, nesting level increased to 1
;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:549: +2, including nesting penalty of 1, nesting level increased to 2
r_size = 0;
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:556: +1, including nesting penalty of 0, nesting level increased to 1
0);
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:560: +1, nesting level increased to 1
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:560: +2, including nesting penalty of 1, nesting level increased to 2
} else {
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:565: +2, including nesting penalty of 1, nesting level increased to 2
;
^
be/src/common/status.h:540: expanded from macro 'RETURN_IF_ERROR'
do { \
^
be/src/vec/exec/join/process_hash_table_probe_impl.h:565: +3, including nesting penalty of 2, nesting level increased to 3
;
^
be/src/common/status.h:542: expanded from macro 'RETURN_IF_ERROR'
if (UNLIKELY(!_status_.ok())) { \
^
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
TeamCity be ut coverage result: |
TPC-H: Total hot run time: 37041 ms
|
TPC-DS: Total hot run time: 175255 ms
|
ClickBench: Total hot run time: 30.74 s
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
|
incorrect result of mark join
incorrect result of mark join
Proposed change
Further comments
If this is a relatively large or complex change, kick off the discussion at [email protected] by explaining why you chose the solution you did and what alternatives you considered, etc...