This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 548816899f10b8dff246130f4b2390921d4bec8a
Author: Jerry Hu <mrh...@gmail.com>
AuthorDate: Thu Feb 8 10:20:00 2024 +0800

    [fix](pipeline) Set the flag of short circuit only when hash join sink 
finished (#30977)
---
 be/src/pipeline/exec/hashjoin_build_sink.cpp | 2 +-
 be/src/vec/exec/join/vhash_join_node.cpp     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/be/src/pipeline/exec/hashjoin_build_sink.cpp 
b/be/src/pipeline/exec/hashjoin_build_sink.cpp
index 5c8995bebe9..4597bf9876e 100644
--- a/be/src/pipeline/exec/hashjoin_build_sink.cpp
+++ b/be/src/pipeline/exec/hashjoin_build_sink.cpp
@@ -569,8 +569,8 @@ Status HashJoinBuildSinkOperatorX::sink(RuntimeState* 
state, vectorized::Block*
         }
     }
 
-    local_state.init_short_circuit_for_probe();
     if (source_state == SourceState::FINISHED) {
+        local_state.init_short_circuit_for_probe();
         // Since the comparison of null values is meaningless, null aware left 
anti/semi join should not output null
         // when the build side is not empty.
         if (local_state._shared_state->build_block &&
diff --git a/be/src/vec/exec/join/vhash_join_node.cpp 
b/be/src/vec/exec/join/vhash_join_node.cpp
index ffb01aed552..40ba5c42492 100644
--- a/be/src/vec/exec/join/vhash_join_node.cpp
+++ b/be/src/vec/exec/join/vhash_join_node.cpp
@@ -815,6 +815,7 @@ Status HashJoinNode::sink(doris::RuntimeState* state, 
vectorized::Block* in_bloc
 
     if (eos) {
         _process_hashtable_ctx_variants_init(state);
+        _init_short_circuit_for_probe();
     }
 
     // Since the comparison of null values is meaningless, null aware left 
anti/semi join should not output null
@@ -823,7 +824,6 @@ Status HashJoinNode::sink(doris::RuntimeState* state, 
vectorized::Block* in_bloc
                          _join_op == TJoinOp::NULL_AWARE_LEFT_SEMI_JOIN)) {
         _probe_ignore_null = true;
     }
-    _init_short_circuit_for_probe();
 
     return Status::OK();
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to