Expand description

Core expression language.

Modules

Utility functions to transform parts of a single MirRelationExpr into canonical form.
This module houses a pretty printer for MirRelationExprs.
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.

Structs

Describes an aggregation expression.
Specification for an ordering by a column.
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)
Specifies WindowFrame’s start_bound and end_bound
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.