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]