Statements must be purified before they can be planned. See the
pure module for details.
This file houses a representation of a SQL plan that is parallel to that found in src/expr/relation/mod.rs, but represents an earlier phase of planning. It's structurally very similar to that file, with some differences which are noted below. It gets turned into that representation via a call to decorrelate().
Lowering is the process of transforming a
Helper code used throughout the planner.
Handles SQL's scoping rules.
Transformations of SQL ASTs.
Transformations of SQL IR, before decorrelation.
Maintains a catalog of valid casts between
A vector of values to which parameter references should be bound.
Controls planning of a SQL query.
The state required when planning a
Immutable state that applies to the planning of an entire
Describes the output of a SQL statement.
Just like MirRelationExpr, except where otherwise noted below.
Just like expr::MirScalarExpr, except where otherwise noted below.
Specifies when a
Instructions for executing a SQL query.
Specifies how long a query will live. This impacts whether the query is
allowed to reason about the time at which it is running, e.g., by calling
Creates a description of the purified statement
Returns the first two values provided as typ_mods as