fn visit_expressions<F, E>(&self, f: &mut F) -> Result<(), E>
    where
        F: FnMut(&BoxScalarExpr) -> Result<(), E>,
    {
        for c in self.columns.iter() {
            f(&c.expr)?;
        }
        match &self.box_type {
            BoxType::Select(select) => {
                for p in select.predicates.iter() {
                    f(p)?;
                }
                if let Some(order_key) = &select.order_key {
                    for p in order_key.iter() {
                        f(p)?;
                    }
                }
                if let Some(limit) = &select.limit {
                    f(limit)?;
                }
                if let Some(offset) = &select.offset {
                    f(offset)?;
                }
            }
            BoxType::OuterJoin(outer_join) => {
                for p in outer_join.predicates.iter() {
                    f(p)?;
                }
            }
            BoxType::Grouping(grouping) => {
                for p in grouping.key.iter() {
                    f(p)?;
                }
            }
            BoxType::Values(values) => {
                for row in values.rows.iter() {
                    for value in row.iter() {
                        f(value)?;
                    }
                }
            }
            BoxType::TableFunction(table_function) => {
                for p in table_function.parameters.iter() {
                    f(p)?;
                }
            }
            BoxType::Except | BoxType::Union | BoxType::Intersect | BoxType::Get(_) => {}
        }
        Ok(())
    }
/// Visit all the expressions in this query box.
Visit all the expressions in this query box.
Visit all the expressions in this query box .
fn visit_expressions<F, E>(&self, f: &mut F) -> Result<(), E>
    where
        F: FnMut(&BoxScalarExpr) -> Result<(), E>,
    {
        for c in self.columns.iter() {
            f(&c.expr)?;
        }
        match &self.box_type {
            BoxType::Select(select) => {
                for p in select.predicates.iter() {
                    f(p)?;
                }
                if let Some(order_key) = &select.order_key {
                    for p in order_key.iter() {
                        f(p)?;
                    }
                }
                if let Some(limit) = &select.limit {
                    f(limit)?;
                }
                if let Some(offset) = &select.offset {
                    f(offset)?;
                }
            }
            BoxType::OuterJoin(outer_join) => {
                for p in outer_join.predicates.iter() {
                    f(p)?;
                }
            }
            BoxType::Grouping(grouping) => {
                for p in grouping.key.iter() {
                    f(p)?;
                }
            }
            BoxType::Values(values) => {
                for row in values.rows.iter() {
                    for value in row.iter() {
                        f(value)?;
                    }
                }
            }
            BoxType::TableFunction(table_function) => {
                for p in table_function.parameters.iter() {
                    f(p)?;
                }
            }
            BoxType::Except | BoxType::Union | BoxType::Intersect | BoxType::Get(_) => {}
        }
        Ok(())
    }
fn visit_expressions < F , E > ( & self , f : & mut F ) -> Result < ( ) , E > where F : FnMut ( & BoxScalarExpr ) -> Result < ( ) , E > , { for c in self . columns . iter ( ) { f ( & c . expr ) ? ; } match & self . box_type { BoxType :: Select ( select ) => { for p in select . predicates . iter ( ) { f ( p ) ? ; } if let Some ( order_key ) = & select . order_key { for p in order_key . iter ( ) { f ( p ) ? ; } } if let Some ( limit ) = & select . limit { f ( limit ) ? ; } if let Some ( offset ) = & select . offset { f ( offset ) ? ; } } BoxType :: OuterJoin ( outer_join ) => { for p in outer_join . predicates . iter ( ) { f ( p ) ? ; } } BoxType :: Grouping ( grouping ) => { for p in grouping . key . iter ( ) { f ( p ) ? ; } } BoxType :: Values ( values ) => { for row in values . rows . iter ( ) { for value in row . iter ( ) { f ( value ) ? ; } } } BoxType :: TableFunction ( table_function ) => { for p in table_function . parameters . iter ( ) { f ( p ) ? ; } } BoxType :: Except | BoxType :: Union | BoxType :: Intersect | BoxType :: Get ( _ ) => { } } Ok ( ( ) ) }
Visit all the expressions in this query box.
Visit all the expressions in this query box .
&self
f
&mut F
&self
f
&mut F