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

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


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new c7d93e62134 [runtime filter](fix) Fix wrong results caused by 
IN_OR_BLOOM filter (#33701) (#33715)
c7d93e62134 is described below

commit c7d93e62134796899120b07f52a549491396abaf
Author: Gabriel <[email protected]>
AuthorDate: Tue Apr 16 17:31:39 2024 +0800

    [runtime filter](fix) Fix wrong results caused by IN_OR_BLOOM filter 
(#33701) (#33715)
---
 be/src/exprs/runtime_filter.cpp | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/be/src/exprs/runtime_filter.cpp b/be/src/exprs/runtime_filter.cpp
index fcfc58ece5c..50105d56068 100644
--- a/be/src/exprs/runtime_filter.cpp
+++ b/be/src/exprs/runtime_filter.cpp
@@ -347,6 +347,9 @@ public:
             // BloomFilter may be not init
             RETURN_IF_ERROR(bf->init_with_fixed_length());
             insert_to_bloom_filter(bf);
+        } else {
+            DCHECK(_context->hybrid_set == nullptr || 
_context->hybrid_set->size() == 0)
+                    << "set size: " << (_context->hybrid_set ? 
_context->hybrid_set->size() : 0);
         }
         // release in filter
         _context->hybrid_set.reset();
@@ -522,7 +525,7 @@ public:
                 } else {
                     VLOG_DEBUG << " change runtime filter to bloom filter(id=" 
<< _filter_id
                                << ") because: already exist a bloom filter";
-                    RETURN_IF_ERROR(change_to_bloom_filter(false));
+                    
RETURN_IF_ERROR(change_to_bloom_filter(!_build_bf_exactly));
                     RETURN_IF_ERROR(_context->bloom_filter_func->merge(
                             wrapper->_context->bloom_filter_func.get()));
                 }
@@ -1322,8 +1325,9 @@ bool IRuntimeFilter::get_ignored() {
 std::string IRuntimeFilter::formatted_state() const {
     return fmt::format(
             "[IsPushDown = {}, RuntimeFilterState = {}, HasRemoteTarget = {}, "
-            "HasLocalTarget = {}]",
-            _is_push_down, _get_explain_state_string(), _has_remote_target, 
_has_local_target);
+            "HasLocalTarget = {}, Ignored = {}]",
+            _is_push_down, _get_explain_state_string(), _has_remote_target, 
_has_local_target,
+            _wrapper->_context->ignored);
 }
 
 BloomFilterFuncBase* IRuntimeFilter::get_bloomfilter() const {


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

Reply via email to