FlattenProjections

slick.compiler.FlattenProjections

Flatten all Pure node contents into a single StructNode.

After this phase, all Pure nodes produce a StructNode of primitive fields. As a side-effect, nested NominalTypes are eliminated.

Attributes

Source:
FlattenProjections.scala
Graph
Supertypes
trait Phase
trait Logging
class Object
trait Matchable
class Any

Members list

Concise view

Type members

Inherited types

type State

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.

Attributes

Inherited from:
Phase
Source:
QueryCompiler.scala

Value members

Concrete methods

Run the phase

Run the phase

Attributes

Source:
FlattenProjections.scala
def flattenProjection(n: Node, collapse: Boolean): (StructNode, Map[List[TermSymbol], TermSymbol])

Flatten a projection into a StructNode.

Flatten a projection into a StructNode.

Attributes

collapse

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.

Source:
FlattenProjections.scala
def splitPath(n: PathElement, candidates: Set[TypeSymbol]): Option[(PathElement, List[TermSymbol], TypeSymbol)]

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.

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.

Attributes

Source:
FlattenProjections.scala

Inherited methods

def andThen[A](g: CompilerState => A): T1 => A

Attributes

Inherited from:
Function1
def compose[A](g: A => CompilerState): A => R

Attributes

Inherited from:
Function1
override def toString(): String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns:

a string representation of the object.

Definition Classes
Function1 -> Any
Inherited from:
Function1

Concrete fields

val name: String

The unique name of the phase

The unique name of the phase

Attributes

Source:
FlattenProjections.scala