pub fn extract_non_errors_from_expr(expr: &MirRelationExpr) -> (Self, &MirRelationExpr) {
        match expr {
            MirRelationExpr::Map { input, scalars }
                if scalars.iter().all(|s| !s.is_literal_err()) =>
            {
                let (mfp, expr) = Self::extract_from_expression(input);
                (mfp.map(scalars.iter().cloned()), expr)
            }
            MirRelationExpr::Filter { input, predicates }
                if predicates.iter().all(|p| !p.is_literal_err()) =>
            {
                let (mfp, expr) = Self::extract_from_expression(input);
                (mfp.filter(predicates.iter().cloned()), expr)
            }
            MirRelationExpr::Project { input, outputs } => {
                let (mfp, expr) = Self::extract_from_expression(input);
                (mfp.project(outputs.iter().cloned()), expr)
            }
            x => (Self::new(x.arity()), x),
        }
    }
/// Extracts an error-free MapFilterProject at the root of the expression.
///
/// The expression will be modified to extract maps, filters, and projects
/// from the root of the expression, which will be returned as `Self`. The
/// extraction will halt if a Map or Filter containing a literal error is
/// reached. Otherwise, the method will return an identity operator.
///
/// This method is meant to be used during optimization, where it is
/// necessary to avoid moving around maps and filters with errors.
Extracts an error-free MapFilterProject at the root of the expression.
The expression will be modified to extract maps, filters, and projects
from the root of the expression, which will be returned as `Self`. The
extraction will halt if a Map or Filter containing a literal error is
reached. Otherwise, the method will return an identity operator.

This method is meant to be used during optimization, where it is
necessary to avoid moving around maps and filters with errors.
Extracts an error - free MapFilterProject at the root of the expression . The expression will be modified to extract maps filters and projects from the root of the expression which will be returned as ` Self ` . The extraction will halt if a Map or Filter containing a literal error is reached . Otherwise the method will return an identity operator . This method is meant to be used during optimization where it is necessary to avoid moving around maps and filters with errors .
pub fn extract_non_errors_from_expr(expr: &MirRelationExpr) -> (Self, &MirRelationExpr) {
        match expr {
            MirRelationExpr::Map { input, scalars }
                if scalars.iter().all(|s| !s.is_literal_err()) =>
            {
                let (mfp, expr) = Self::extract_from_expression(input);
                (mfp.map(scalars.iter().cloned()), expr)
            }
            MirRelationExpr::Filter { input, predicates }
                if predicates.iter().all(|p| !p.is_literal_err()) =>
            {
                let (mfp, expr) = Self::extract_from_expression(input);
                (mfp.filter(predicates.iter().cloned()), expr)
            }
            MirRelationExpr::Project { input, outputs } => {
                let (mfp, expr) = Self::extract_from_expression(input);
                (mfp.project(outputs.iter().cloned()), expr)
            }
            x => (Self::new(x.arity()), x),
        }
    }
pub fn extract_non_errors_from_expr ( expr : & MirRelationExpr ) -> ( Self , & MirRelationExpr ) { match expr { MirRelationExpr :: Map { input , scalars } if scalars . iter ( ) . all ( | s | ! s . is_literal_err ( ) ) => { let ( mfp , expr ) = Self :: extract_from_expression ( input ) ; ( mfp . map ( scalars . iter ( ) . cloned ( ) ) , expr ) } MirRelationExpr :: Filter { input , predicates } if predicates . iter ( ) . all ( | p | ! p . is_literal_err ( ) ) => { let ( mfp , expr ) = Self :: extract_from_expression ( input ) ; ( mfp . filter ( predicates . iter ( ) . cloned ( ) ) , expr ) } MirRelationExpr :: Project { input , outputs } => { let ( mfp , expr ) = Self :: extract_from_expression ( input ) ; ( mfp . project ( outputs . iter ( ) . cloned ( ) ) , expr ) } x => ( Self :: new ( x . arity ( ) ) , x ) , } }
Extracts an error-free MapFilterProject at the root of the expression.
Extracts an error - free MapFilterProject at the root of the expression .
expr
&MirRelationExpr
expr
&MirRelationExpr