slick

compiler

package compiler

Slick AST to database query compiler

Source
package.scala
Linear Supertypes
AnyRef, Any
Content Hierarchy Learn more about scaladoc diagrams
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. compiler
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. class AssignUniqueSymbols extends Phase

    Ensure that all symbol definitions in a tree are unique.

  2. abstract class CodeGen extends Phase

    A standard skeleton for a code generator phase.

  3. class CompilerState extends AnyRef

    The current state of a compiler run, consisting of the current AST and additional immutable state of individual phases.

  4. class CreateAggregates extends Phase

    Rewrite aggregation function calls to Aggregate nodes.

  5. class CreateResultSetMapping extends Phase

    Create a ResultSetMapping root node, ensure that the top-level server-side node returns a collection, and hoist client-side type conversions into the ResultSetMapping.

  6. class EmulateOuterJoins extends Phase

    An optional phase which rewrites outer joins into more commonly supported operations for use on databases that lack outer join support.

  7. class ExpandRecords extends Phase

    Expand paths of record types to reference all fields individually and recreate the record structure at the call site.

  8. class ExpandSums extends Phase

    Expand sum types and their catamorphisms to equivalent product type operations.

  9. class ExpandTables extends Phase

    Expand table-valued expressions in the result type to their star projection and compute the missing structural expansions of table types.

  10. class FixRowNumberOrdering extends Phase

    Inject the proper orderings into the RowNumber nodes produced earlier by the resolveFixJoins phase.

  11. class FlattenProjections extends Phase

    Flatten all Pure node contents into a single StructNode.

  12. class ForceOuterBinds extends Phase

    Ensure that all collection operations are wrapped in a Bind so that we have a place for expanding references later.

  13. class HoistClientOps extends Phase

    Lift applicable operations at the top level to the client side.

  14. class InferTypes extends Phase

    Infer all missing types.

  15. class InsertCompiler extends Phase

    A custom compiler for INSERT statements.

  16. class MergeToComprehensions extends Phase

    This phase merges nested nodes of types Bind, Filter, GroupBy, SortBy, Take, Drop, CollectionCast and Distinct to Comprehension nodes.

  17. class OptimizeScalar extends Phase

    Optimize scalar expressions

  18. trait Phase extends (CompilerState) ⇒ CompilerState with Logging

    A phase of the query compiler, identified by a unique name

  19. class PruneProjections extends Phase

    Remove unreferenced fields from StructNodes.

  20. class QueryCompiler extends Logging

    An immutable, stateless query compiler consisting of a series of phases

  21. class RelabelUnions extends Phase

    Assign the AnonSymbols of fields from the left side of a Union to the right side.

  22. class RemoveFieldNames extends Phase

    Convert unreferenced StructNodes to single columns or ProductNodes (which is needed for aggregation functions and at the top level).

  23. class RemoveMappedTypes extends Phase

    Remove all mapped types from the tree and store the original top-level type as the phase state to be used later for building the ResultSetMapping.

  24. class RemoveTakeDrop extends Phase

    Replace all occurrences of Take and Drop with row number computations based on zipWithIndex operations.

  25. class ReorderOperations extends Phase

    Reorder certain stream operations for more efficient merging in mergeToComprehensions.

  26. class ResolveZipJoins extends Phase

    Rewrite zip joins into a form suitable for SQL using inner joins and RowNumber columns.

  27. class RewriteBooleans extends Phase

    For SQL back-ends which do not support real boolean types for fields and general expressions but which do have special boolean expressions and operators, this phase injects conversions between fake and real boolean values.

  28. class RewriteDistinct extends Phase

    Rewrite "distinct on" to "distinct" or "group by"

  29. class RewriteJoins extends Phase

    Rewrite monadic joins to applicative joins.

  30. class SpecializeParameters extends Phase

    Specialize the AST for edge cases of query parameters.

  31. case class UsedFeatures(distinct: Boolean, typeMapping: Boolean, aggregate: Boolean, nonPrimitiveOption: Boolean) extends Product with Serializable

  32. class VerifySymbols extends Phase

    Verify that all monadic joins have been transformed into applicative joins and that the resulting tree does not contain references to unreachable symbols.

  33. class VerifyTypes extends Phase

    Optional phase which verifies that retyping the tree does not change any types.

Value Members

  1. object CodeGen

  2. object InsertCompiler

  3. object Phase

    The Phase companion objects contains ready-to-use Phase objects for the standard phases of the query compiler

  4. object QueryCompiler

  5. object RewriteBooleans

Inherited from AnyRef

Inherited from Any

Ungrouped