pub fn action(&self, relation: &mut MirRelationExpr) {
        if let MirRelationExpr::Filter { input, predicates } = relation {
            // consolidate nested filters.
            while let MirRelationExpr::Filter {
                input: inner,
                predicates: p2,
            } = &mut **input
            {
                predicates.append(p2);
                *input = Box::new(inner.take_dangerous());
            }

            expr::canonicalize::canonicalize_predicates(predicates, &input.typ());

            // remove the Filter stage if empty.
            if predicates.is_empty() {
                *relation = input.take_dangerous();
            }
        }
    }
/// Fuses multiple `Filter` operators into one and canonicalizes predicates.
Fuses multiple `Filter` operators into one and canonicalizes predicates.
Fuses multiple ` Filter ` operators into one and canonicalizes predicates .
pub fn action(&self, relation: &mut MirRelationExpr) {
        if let MirRelationExpr::Filter { input, predicates } = relation {
            // consolidate nested filters.
            while let MirRelationExpr::Filter {
                input: inner,
                predicates: p2,
            } = &mut **input
            {
                predicates.append(p2);
                *input = Box::new(inner.take_dangerous());
            }
            expr::canonicalize::canonicalize_predicates(predicates, &input.typ());
            // remove the Filter stage if empty.
            if predicates.is_empty() {
                *relation = input.take_dangerous();
            }
        }
    }
pub fn action ( & self , relation : & mut MirRelationExpr ) { if let MirRelationExpr :: Filter { input , predicates } = relation { // consolidate nested filters. while let MirRelationExpr :: Filter { input : inner , predicates : p2 , } = & mut * * input { predicates . append ( p2 ) ; * input = Box :: new ( inner . take_dangerous ( ) ) ; } expr :: canonicalize :: canonicalize_predicates ( predicates , & input . typ ( ) ) ; // remove the Filter stage if empty. if predicates . is_empty ( ) { * relation = input . take_dangerous ( ) ; } } }
Fuses multiple `Filter` operators into one and canonicalizes predicates.
Fuses multiple ` Filter ` operators into one and canonicalizes predicates .
&self
relation
&mut MirRelationExpr
&self
relation
&mut MirRelationExpr