You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2022/07/18 05:43:11 UTC
[doris] branch dev-1.1.1 updated: [bugfix] fix coredump of left anti join (#10961)
This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch dev-1.1.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/dev-1.1.1 by this push:
new 8220d145fd [bugfix] fix coredump of left anti join (#10961)
8220d145fd is described below
commit 8220d145fd007306967d9ae1bff4b35dcec2ffbe
Author: TengJianPing <18...@users.noreply.github.com>
AuthorDate: Mon Jul 18 13:43:06 2022 +0800
[bugfix] fix coredump of left anti join (#10961)
Merge fix of #10591 to branch dev-1.1.1.
---
be/src/vec/exec/join/vhash_join_node.cpp | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/be/src/vec/exec/join/vhash_join_node.cpp b/be/src/vec/exec/join/vhash_join_node.cpp
index 72af7c29b3..422b77b801 100644
--- a/be/src/vec/exec/join/vhash_join_node.cpp
+++ b/be/src/vec/exec/join/vhash_join_node.cpp
@@ -225,16 +225,27 @@ struct ProcessHashTableProbe {
_build_block_rows[j]);
}
} else {
- auto column = _build_blocks[_build_block_offsets[j]]
- .get_by_position(i)
- .column;
- if (mcol[i + column_offset]->is_nullable() xor
- column->is_nullable()) {
- DCHECK(mcol[i + column_offset]->is_nullable() &&
- !column->is_nullable());
- column = make_nullable(column);
+ if (_build_block_offsets[j] == -1) {
+ // the only case to reach here:
+ // 1. left anti join with other conjuncts, and
+ // 2. equal conjuncts does not match
+ // since nullptr is emplaced back to visited_map,
+ // the output value of the build side does not matter,
+ // just insert default value
+ mcol[i + column_offset]->insert_default();
+ } else {
+ auto column = _build_blocks[_build_block_offsets[j]]
+ .get_by_position(i)
+ .column;
+ if (mcol[i + column_offset]->is_nullable() xor
+ column->is_nullable()) {
+ DCHECK(mcol[i + column_offset]->is_nullable() &&
+ !column->is_nullable());
+ column = make_nullable(column);
+ }
+ mcol[i + column_offset]->insert_from(*column,
+ _build_block_rows[j]);
}
- mcol[i + column_offset]->insert_from(*column, _build_block_rows[j]);
}
}
} else {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org