[Bug](runtime-filter) make need_local_merge unrelated with broadcast and support merge on bitmap_filter (#33664)

This commit is contained in:
Pxl
2024-04-16 13:28:54 +08:00
committed by yiguolei
parent f8acb1ee2e
commit 918f7225b4
2 changed files with 4 additions and 6 deletions

View File

@ -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;

View File

@ -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();
}