Revert "[refactor](scan) delete bloom_filter_predicate (#26499)" (#26851)

This reverts commit 2bb3ef198144954583aea106591959ee09932cba.
This commit is contained in:
TengJianPing
2023-11-13 16:27:23 +08:00
committed by GitHub
parent 8160a04b35
commit 504ec324bb
16 changed files with 272 additions and 11 deletions

View File

@ -522,6 +522,9 @@ Status VScanNode::_normalize_predicate(const VExprSPtr& conjunct_expr_root, VExp
RETURN_IF_PUSH_DOWN(
_normalize_bitmap_filter(cur_expr, context, slot, &pdt),
status);
RETURN_IF_PUSH_DOWN(
_normalize_bloom_filter(cur_expr, context, slot, &pdt),
status);
if (_state->enable_function_pushdown()) {
RETURN_IF_PUSH_DOWN(_normalize_function_filters(
cur_expr, context, slot, &pdt),
@ -594,6 +597,20 @@ Status VScanNode::_normalize_predicate(const VExprSPtr& conjunct_expr_root, VExp
return Status::OK();
}
Status VScanNode::_normalize_bloom_filter(VExpr* expr, VExprContext* expr_ctx, SlotDescriptor* slot,
PushDownType* pdt) {
if (TExprNodeType::BLOOM_PRED == expr->node_type()) {
DCHECK(expr->children().size() == 1);
PushDownType temp_pdt = _should_push_down_bloom_filter();
if (temp_pdt != PushDownType::UNACCEPTABLE) {
_filter_predicates.bloom_filters.emplace_back(slot->col_name(),
expr->get_bloom_filter_func());
*pdt = temp_pdt;
}
}
return Status::OK();
}
Status VScanNode::_normalize_bitmap_filter(VExpr* expr, VExprContext* expr_ctx,
SlotDescriptor* slot, PushDownType* pdt) {
if (TExprNodeType::BITMAP_PRED == expr->node_type()) {