struct Canonicalizer {}Expand description
Canonicalize any BinaryExprs that are not in canonical form
<literal> <op> <col> is rewritten to <col> <op> <literal>
<col1> <op> <col2> is rewritten so that the name of col1 sorts higher
than col2 (a > b would be canonicalized to b < a)
Implementations§
Source§impl Canonicalizer
impl Canonicalizer
Trait Implementations§
Source§impl TreeNodeRewriter for Canonicalizer
impl TreeNodeRewriter for Canonicalizer
Source§fn f_up(&mut self, expr: Expr) -> Result<Transformed<Expr>>
fn f_up(&mut self, expr: Expr) -> Result<Transformed<Expr>>
Invoked while traversing up the tree after all children have been rewritten.
Default implementation returns the node as is and continues recursion.
Source§fn f_down(
&mut self,
node: Self::Node,
) -> Result<Transformed<Self::Node>, DataFusionError>
fn f_down( &mut self, node: Self::Node, ) -> Result<Transformed<Self::Node>, DataFusionError>
Invoked while traversing down the tree before any children are rewritten.
Default implementation returns the node as is and continues recursion.
Auto Trait Implementations§
impl Freeze for Canonicalizer
impl RefUnwindSafe for Canonicalizer
impl Send for Canonicalizer
impl Sync for Canonicalizer
impl Unpin for Canonicalizer
impl UnwindSafe for Canonicalizer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more