[Bug](runtime-filter) make need_local_merge unrelated with broadcast and support merge on bitmap_filter (#33664)
This commit is contained in:
@ -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;
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user