Crate vortex_expr

Source
Expand description

Vortex’s expression language.

All expressions are serializable, and own their own wire format.

The implementation takes inspiration from Postgres and Apache Datafusion.

Modules§

aliases
dyn_traits
dynamic
forms
proto
pruning
transform
A collection of transformations that can be applied to a crate::ExprRef.
traversal
Datafusion inspired tree traversal logic.

Macros§

vtable

Structs§

BetweenExpr
BetweenExprEncoding
BetweenVTable
BinaryExpr
BinaryExprEncoding
BinaryVTable
CastExpr
CastExprEncoding
CastVTable
ExactExpr
An expression wrapper that performs pointer equality.
ExprAdapter
ExprEncodingAdapter
GetItemExpr
GetItemExprEncoding
GetItemVTable
IsNullExpr
IsNullExprEncoding
IsNullVTable
LikeExpr
LikeExprEncoding
LikeVTable
ListContainsExpr
ListContainsExprEncoding
ListContainsVTable
LiteralExpr
LiteralExprEncoding
LiteralVTable
MergeExpr
Merge zero or more expressions that ALL return structs.
MergeExprEncoding
MergeVTable
NotExpr
NotExprEncoding
NotVTable
PackExpr
Pack zero or more expressions into a structure with named fields.
PackExprEncoding
PackVTable
RootExpr
An expression that returns the full scope of the expression evaluation.
RootExprEncoding
RootVTable
Scope
Scope define the evaluation context/scope that an expression uses when being evaluated.
SelectExpr
SelectExprEncoding
SelectVTable

Enums§

Operator
Equalities, inequalities, and boolean operations over possibly null values.
SelectField

Traits§

AnalysisExpr
This can be used by expression to plug into vortex expression analysis, such as pruning or expression simplification
ExprEncoding
Encoding trait for a Vortex expression.
ExprRegistryExt
IntoExpr
ScopeVar
This traits defines variables that can be stored inside of an execution’s Scope.
StatsCatalog
A catalog of available stats that are associated with field paths.
VTable
VortexExpr
Represents logical operation on ArrayRefs
VortexExprExt

Functions§

and
Create a new BinaryExpr using the And operator.
and_collect
Collects a list of anded values into a single vortex, expr [x, y, z] => x and (y and z)
and_collect_right
Collects a list of anded values into a single vortex, expr [x, y, z] => x and (y and z)
between
Creates an expression that checks if values are between two bounds.
cast
Creates an expression that casts values to a target data type.
checked_add
Create a new BinaryExpr using the Add operator.
col
Creates an expression that accesses a field from the root array.
eq
Create a new BinaryExpr using the Eq operator.
get_item
Creates an expression that extracts a named field from a struct expression.
gt
Create a new BinaryExpr using the Gt operator.
gt_eq
Create a new BinaryExpr using the Gte operator.
is_null
Creates an expression that checks for null values.
is_root
Return whether the expression is a root expression.
list_contains
Creates an expression that checks if a value is contained in a list.
lit
Create a new Literal expression from a type that coerces to Scalar.
lt
Create a new BinaryExpr using the Lt operator.
lt_eq
Create a new BinaryExpr using the Lte operator.
merge
Creates an expression that merges struct expressions into a single struct.
not
Creates an expression that logically inverts boolean values.
not_eq
Create a new BinaryExpr using the NotEq operator.
or
Create a new BinaryExpr using the Or operator.
or_collect
Collects a list of ored values into a single vortex, expr [x, y, z] => x or (y or z)
pack
Creates an expression that packs values into a struct with named fields.
root
Creates an expression that references the root scope.
select
Creates an expression that selects (includes) specific fields from an array.
select_exclude
Creates an expression that excludes specific fields from an array.
split_conjunction
Splits top level and operations into separate expressions.

Type Aliases§

ExprEncodingRef
ExprId
ExprRef
ExprRegistry