Module physical_expr

Module physical_expr 

Source

Traits§

DynEq
A dyn-compatible version of Eq trait. The implementation constraints for this trait are the same as for Eq: the implementation must be reflexive, symmetric, and transitive. Additionally, if two values can be compared with DynEq and PartialEq then they must be DynEq-equal if and only if they are PartialEq-equal. It is therefore strongly discouraged to implement this trait for types that implement PartialEq<Other> or Eq<Other> for any type Other other than Self.
DynHash
A dyn-compatible version of Hash trait. If two values are equal according to DynEq, they must produce the same hash value.
PhysicalExpr
PhysicalExprs represent expressions such as A + 1 or CAST(c1 AS int).

Functions§

fmt_sql
Prints a PhysicalExpr in a SQL-like format
format_physical_expr_list
Returns Display able a list of PhysicalExpr
is_dynamic_physical_expr
Check if the given PhysicalExpr is dynamic. Internally this calls snapshot_generation to check if the generation is non-zero, any dynamic PhysicalExpr should have a non-zero generation.
is_volatile
Returns true if the expression is volatile, i.e. whether it can return different results when evaluated multiple times with the same input.
snapshot_generation
Check the generation of this PhysicalExpr. Dynamic PhysicalExprs may have a generation that is incremented every time the state of the PhysicalExpr changes. If the generation changes that means this PhysicalExpr or one of its children has changed since the last time it was evaluated.
snapshot_physical_expr
Take a snapshot of the given PhysicalExpr if it is dynamic.
with_new_children_if_necessary
Returns a copy of this expr if we change any child according to the pointer comparison. The size of children must be equal to the size of PhysicalExpr::children().

Type Aliases§

PhysicalExprRef
Shared PhysicalExpr.