Module expr

Module 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
arbitrary
display
forms
proto
pruning
session
test_harness
transform
A collection of transformations that can be applied to a crate::expr::Expression.
traversal
Datafusion inspired tree traversal logic.

Structs§

Between
An optimized scalar expression to compute whether values fall between two bounds.
Binary
Cast
A cast expression that converts values to a target data type.
DynamicComparison
A dynamic comparison expression can be used to capture a comparison to a value that can change during the execution of a query, such as when a compute engine pushes down an ORDER BY + LIMIT operation and is able to progressively tighten the bounds of the filter.
DynamicComparisonExpr
DynamicExprUpdates
A utility for checking whether any dynamic expressions have been updated.
ExactExpr
An expression wrapper that performs pointer equality.
ExprVTable
A Vortex expression vtable, used to deserialize or instantiate expressions dynamically.
Expression
A node in a Vortex expression tree.
ExpressionView
A view over an Expression with an associated vtable, allowing typed access to the expression’s instance data.
GetItem
IsNull
Expression that checks for null values.
Like
Expression that performs SQL LIKE pattern matching.
ListContains
Literal
Expression that represents a literal scalar value.
Merge
Merge zero or more expressions that ALL return structs.
Not
Expression that logically inverts boolean values.
NotSupported
A placeholder vtable implementation for unsupported optional functionality of an expression.
Pack
Pack zero or more expressions into a structure with named fields.
PackOptions
Root
An expression that returns the full scope of the expression evaluation.
Select
VTableAdapter

Enums§

DuplicateHandling
What to do when merged structs share a field name.
FieldSelection
Operator
Equalities, inequalities, and boolean operations over possibly null values.

Traits§

AnalysisExpr
This can be used by expression to plug into vortex expression analysis, such as pruning or expression simplification
DynExprVTable
An object-safe trait for dynamic dispatch of Vortex expression vtables.
StatsCatalog
A catalog of available stats that are associated with field paths.
VTable
This trait defines the interface for expression vtables, including methods for serialization, deserialization, validation, child naming, return type computation, and evaluation.
VTableExt
Factory functions for static vtables.
VortexExprExt

Functions§

and
Create a new Binary 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 Binary using the Add operator.
col
Creates an expression that accesses a field from the root array.
dynamic
eq
Create a new Binary using the Eq operator.
get_item
Creates an expression that extracts a named field from a struct expression.
gt
Create a new Binary using the Gt operator.
gt_eq
Create a new Binary using the Gte operator.
ilike
is_null
Creates an expression that checks for null values.
is_root
Return whether the expression is a root expression.
like
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 Binary using the Lt operator.
lt_eq
Create a new Binary using the Lte operator.
merge
Creates an expression that merges struct expressions into a single struct.
merge_opts
not
Creates an expression that logically inverts boolean values.
not_eq
Create a new Binary using the NotEq operator.
not_ilike
not_like
or
Create a new Binary 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§

ChildName
A reference to the name of a child expression.
ExprId