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.
- Dynamic
Comparison - 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.
- Dynamic
Comparison Expr - Dynamic
Expr Updates - A utility for checking whether any dynamic expressions have been updated.
- Exact
Expr - An expression wrapper that performs pointer equality.
- ExprV
Table - A Vortex expression vtable, used to deserialize or instantiate expressions dynamically.
- Expression
- A node in a Vortex expression tree.
- Expression
View - A view over an
Expressionwith 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.
- List
Contains - 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.
- Pack
Options - Root
- An expression that returns the full scope of the expression evaluation.
- Select
- VTable
Adapter
Enums§
- Duplicate
Handling - What to do when merged structs share a field name.
- Field
Selection - Operator
- Equalities, inequalities, and boolean operations over possibly null values.
Traits§
- Analysis
Expr - This can be used by expression to plug into vortex expression analysis, such as pruning or expression simplification
- DynExprV
Table - An object-safe trait for dynamic dispatch of Vortex expression vtables.
- Stats
Catalog - 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.
- VTable
Ext - Factory functions for static vtables.
- Vortex
Expr Ext
Functions§
- and
- Create a new
Binaryusing theAndoperator. - 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
Binaryusing theAddoperator. - col
- Creates an expression that accesses a field from the root array.
- dynamic
- eq
- Create a new
Binaryusing theEqoperator. - get_
item - Creates an expression that extracts a named field from a struct expression.
- gt
- Create a new
Binaryusing theGtoperator. - gt_eq
- Create a new
Binaryusing theGteoperator. - 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
Literalexpression from a type that coerces toScalar. - lt
- Create a new
Binaryusing theLtoperator. - lt_eq
- Create a new
Binaryusing theLteoperator. - 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
Binaryusing theNotEqoperator. - not_
ilike - not_
like - or
- Create a new
Binaryusing theOroperator. - 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.