Crate expr[][src]

Expand description

Core expression language.


Utility functions to transform parts of a single MirRelationExpr into canonical form.

This module houses a pretty printer for MirRelationExprs.


Describes an aggregation expression.

Specification for an ordering by a column.

A bare-minimum implementation of ExprHumanizer.

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.


The identifier for a global dataflow.

An opaque identifier for a dataflow component. In other words, identifies the target of a MirRelationExpr::Get.

Describe a join implementation in dataflow.

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)


A recursion limit to be used for stack-safe traversals of MirRelationExpr trees.


A trait for humanizing components of an expression.


Compare left and right using order. If that doesn’t produce a strict ordering, call tiebreaker.

Recursively memoize parts of expr, storing those parts in memoized_parts.

Takes a permutation represented as an array (where the ith column being j implies that column i in the original row corresponds to column j in the permuted row; see dataflow::render::Permutation) and converts it to a column map along with the arity of the permuted representation