The immutable state of the phase that can also be accessed by other phases.
The immutable state of the phase that can also be accessed by other phases.
Run the phase
Run the phase
Flatten a projection into a StructNode.
Flatten a projection into a StructNode.
If set to true, duplicate definitions are combined into a single one. This
must not be used in the top-level Bind because the definitions have to match the top-level
type (which is used later in createResultSetMapping
). Any duplicates there will be
eliminated in hoistClientOps
. It is also disabled directly under a Union because the
columns on both sides have to match up.
The unique name of the phase
The unique name of the phase
Split a path into the shortest part with a NominalType and the rest on top of it.
Split a path into the shortest part with a NominalType and the rest on
top of it. Returns None
if there is no NominalType with one of the
candidate TypeSymbols in the path, otherwise returns Some(base, rest, tsym)
where tsym
is the symbol that was found and base
is the Node in the path
which has a NominalType of that symbol. rest
is a (possibly empty) path of
symbols on top of base
.
Flatten all
Pure
node contents into a singleStructNode
.After this phase, all
Pure
nodes produce aStructNode
of primitive fields. As a side-effect, nested NominalTypes are eliminated.