From 918f7225b4230f69523ae2d4eac06ccc2ef6ee80 Mon Sep 17 00:00:00 2001 From: Pxl Date: Tue, 16 Apr 2024 13:28:54 +0800 Subject: [PATCH] [Bug](runtime-filter) make need_local_merge unrelated with broadcast and support merge on bitmap_filter (#33664) --- be/src/exprs/runtime_filter.cpp | 5 ++++- be/src/pipeline/exec/nested_loop_join_build_operator.cpp | 5 ----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/be/src/exprs/runtime_filter.cpp b/be/src/exprs/runtime_filter.cpp index 67349008da..fcfc58ece5 100644 --- a/be/src/exprs/runtime_filter.cpp +++ b/be/src/exprs/runtime_filter.cpp @@ -537,6 +537,10 @@ public: } break; } + case RuntimeFilterType::BITMAP_FILTER: { + // do nothing because we assume bitmap filter join always have full data + break; + } default: return Status::InternalError("unknown runtime filter"); } @@ -1332,7 +1336,6 @@ Status IRuntimeFilter::init_with_desc(const TRuntimeFilterDesc* desc, const TQue DCHECK(node_id >= 0 || (node_id == -1 && !is_consumer())); _is_broadcast_join = desc->is_broadcast_join; - _need_local_merge &= !_is_broadcast_join; _has_local_target = desc->has_local_targets; _has_remote_target = desc->has_remote_targets; _expr_order = desc->expr_order; diff --git a/be/src/pipeline/exec/nested_loop_join_build_operator.cpp b/be/src/pipeline/exec/nested_loop_join_build_operator.cpp index 3a64382bcf..f074afce37 100644 --- a/be/src/pipeline/exec/nested_loop_join_build_operator.cpp +++ b/be/src/pipeline/exec/nested_loop_join_build_operator.cpp @@ -44,11 +44,6 @@ Status NestedLoopJoinBuildSinkLocalState::init(RuntimeState* state, LocalSinkSta for (size_t i = 0; i < p._runtime_filter_descs.size(); i++) { RETURN_IF_ERROR(state->register_producer_runtime_filter( p._runtime_filter_descs[i], p._need_local_merge, &_runtime_filters[i], false)); - if (!_runtime_filters[i]->is_broadcast_join()) { - return Status::InternalError( - "runtime filter({}) on NestedLoopJoin should be set to is_broadcast_join", - _runtime_filters[i]->get_name()); - } } return Status::OK(); }