Trait datafusion::logical_plan::ExprRewriter
source · [−]pub trait ExprRewriter<E = Expr>where
E: ExprRewritable,{
fn mutate(&mut self, expr: E) -> Result<E, DataFusionError>;
fn pre_visit(
&mut self,
_expr: &E
) -> Result<RewriteRecursion, DataFusionError> { ... }
}
Expand description
Trait for potentially recursively rewriting an Expr
expression
tree. When passed to Expr::rewrite
, ExpressionVisitor::mutate
is
invoked recursively on all nodes of an expression tree. See the
comments on Expr::rewrite
for details on its use
Required Methods
sourcefn mutate(&mut self, expr: E) -> Result<E, DataFusionError>
fn mutate(&mut self, expr: E) -> Result<E, DataFusionError>
Invoked after all children of expr
have been mutated and
returns a potentially modified expr.
Provided Methods
sourcefn pre_visit(&mut self, _expr: &E) -> Result<RewriteRecursion, DataFusionError>
fn pre_visit(&mut self, _expr: &E) -> Result<RewriteRecursion, DataFusionError>
Invoked before any children of expr
are rewritten /
visited. Default implementation returns Ok(RewriteRecursion::Continue)