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

panxiaolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new a298d01e14d [Bug](runtime-filter) send rf when hash join build early 
close and add check for BloomFilterFuncBase (#41601)
a298d01e14d is described below

commit a298d01e14d111aa30dc28fa5a562f94db5b3254
Author: Pxl <[email protected]>
AuthorDate: Wed Oct 9 19:02:45 2024 +0800

    [Bug](runtime-filter) send rf when hash join build early close and add 
check for BloomFilterFuncBase (#41601)
    
    ## Proposed changes
    send rf when hash join build early close and add check for
    BloomFilterFuncBase
---
 be/src/exprs/bloom_filter_func.h             | 4 ++--
 be/src/pipeline/exec/hashjoin_build_sink.cpp | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/be/src/exprs/bloom_filter_func.h b/be/src/exprs/bloom_filter_func.h
index 6d452bbe992..ad43b78cc6a 100644
--- a/be/src/exprs/bloom_filter_func.h
+++ b/be/src/exprs/bloom_filter_func.h
@@ -151,19 +151,19 @@ public:
     }
 
     Status merge(BloomFilterFuncBase* bloomfilter_func) {
+        DCHECK(bloomfilter_func != nullptr);
+        DCHECK(bloomfilter_func->_bloom_filter != nullptr);
         // If `_inited` is false, there is no memory allocated in bloom filter 
and this is the first
         // call for `merge` function. So we just reuse this bloom filter, and 
we don't need to
         // allocate memory again.
         if (!_inited) {
             auto* other_func = 
static_cast<BloomFilterFuncBase*>(bloomfilter_func);
             DCHECK(_bloom_filter == nullptr);
-            DCHECK(bloomfilter_func != nullptr);
             _bloom_filter = bloomfilter_func->_bloom_filter;
             _bloom_filter_alloced = other_func->_bloom_filter_alloced;
             _inited = true;
             return Status::OK();
         }
-        DCHECK(bloomfilter_func != nullptr);
         auto* other_func = static_cast<BloomFilterFuncBase*>(bloomfilter_func);
         if (_bloom_filter_alloced != other_func->_bloom_filter_alloced) {
             return Status::InternalError(
diff --git a/be/src/pipeline/exec/hashjoin_build_sink.cpp 
b/be/src/pipeline/exec/hashjoin_build_sink.cpp
index 93d22850dfc..e72904cb0ce 100644
--- a/be/src/pipeline/exec/hashjoin_build_sink.cpp
+++ b/be/src/pipeline/exec/hashjoin_build_sink.cpp
@@ -135,7 +135,7 @@ Status HashJoinBuildSinkLocalState::close(RuntimeState* 
state, Status exec_statu
         }
     }};
 
-    if (!_runtime_filter_slots || _runtime_filters.empty() || 
state->is_cancelled() || !_eos) {
+    if (!_runtime_filter_slots || _runtime_filters.empty() || 
state->is_cancelled()) {
         return Base::close(state, exec_status);
     }
     auto* block = _shared_state->build_block.get();


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to