Expand description
Core expression language.
Modules
Utility functions to transform parts of a single
MirRelationExpr
into canonical form.EXPLAIN
support for structures defined in this crate.id 🔒
linear 🔒
relation 🔒
scalar 🔒
A set of virtual nodes that are used to recover some high-level
concepts that are desugared to non-trival terms in some IRs.
Visitor support for recursive data types.
Macros
Structs
Describes an aggregation expression.
Specification for an ordering by a column.
Filter characteristics that are used for ordering join inputs.
This can be created for a
Vec<MirScalarExpr>
, which represents an AND of predicates.Characteristics of a join order candidate collection.
Any column in a join expression exists in two contexts:
The identifier for a local component of a dataflow.
A compound operator that can be applied row-by-row.
Predicates partitioned into temporal and non-temporal.
A
MirRelationExpr
that claims to have been optimized, e.g., by an
transform::Optimizer
.Instructions for finishing the result of a query.
A wrapper type which indicates it is safe to simply evaluate all expressions.
Unique identifier for an instantiation of a source.
Describe a window frame, e.g.
RANGE UNBOUNDED PRECEDING
or
ROWS BETWEEN 5 PRECEDING AND CURRENT ROW
.Enums
An opaque identifier for a dataflow component. In other words, identifies
the target of a
MirRelationExpr::Get
.Describe a join implementation in dataflow.
Identify whether the given aggregate function is Lag or Lead, since they share
implementations.
An abstract syntax tree which defines a collection.
Unique identifier for each part of a whole source.
Kafka -> partition
None -> sources that have no notion of partitioning (e.g file sources)
Describe how frame bounds are interpreted
Constants
A recursion limit to be used for stack-safe traversals of
MirRelationExpr
trees.Traits
A trait for types that describe how to build a collection.
Functions
Compare
left
and right
using order
. If that doesn’t produce a strict ordering, call tiebreaker
.Given the permutations (see
permutation_for_arrangement
and
(dataflow::plan::AvailableCollections
) corresponding to two
collections with the same key arity,
computes the permutation for the result of joining them.Recursively memoize parts of
expr
, storing those parts in memoized_parts
.Return the map associating columns in the logical,
unthinned representation of a collection to columns in the
thinned representation of the arrangement corresponding to
key
.