pub trait ExprRewriter {
Show 13 methods
// Provided methods
fn rewrite_expr(&mut self, expr: ExprImpl) -> ExprImpl { ... }
fn rewrite_function_call(&mut self, func_call: FunctionCall) -> ExprImpl { ... }
fn rewrite_function_call_with_lambda(
&mut self,
func_call: FunctionCallWithLambda,
) -> ExprImpl { ... }
fn rewrite_agg_call(&mut self, agg_call: AggCall) -> ExprImpl { ... }
fn rewrite_parameter(&mut self, parameter: Parameter) -> ExprImpl { ... }
fn rewrite_literal(&mut self, literal: Literal) -> ExprImpl { ... }
fn rewrite_input_ref(&mut self, input_ref: InputRef) -> ExprImpl { ... }
fn rewrite_subquery(&mut self, subquery: Subquery) -> ExprImpl { ... }
fn rewrite_correlated_input_ref(
&mut self,
input_ref: CorrelatedInputRef,
) -> ExprImpl { ... }
fn rewrite_table_function(&mut self, table_func: TableFunction) -> ExprImpl { ... }
fn rewrite_window_function(
&mut self,
window_func: WindowFunction,
) -> ExprImpl { ... }
fn rewrite_user_defined_function(
&mut self,
udf: UserDefinedFunction,
) -> ExprImpl { ... }
fn rewrite_now(&mut self, now: Now) -> ExprImpl { ... }
}
Expand description
By default, ExprRewriter
simply traverses the expression tree and leaves nodes unchanged.
Implementations can override a subset of methods and perform transformation on some particular
types of expression.