package ql
- Alphabetic
- Public
- Protected
Type Members
- case class AsColumnOf[T](child: Node, typeName: Option[String])(implicit evidence$10: TypeMapper[T]) extends Column[T] with UnaryNode with Product with Serializable
A column that can be converted from one sql type to another
- trait BaseTypeMapper[T] extends TypeMapper[T]
- case class BindColumn[T](value: T)(implicit evidence$5: TypeMapper[T]) extends Column[T] with Product with Serializable
A column with a constant value which gets turned into a bind variable.
- abstract class CaseColumn[T] extends Column[T]
A column representing a case/when/end condition
- sealed abstract class Column[T] extends ColumnBase[T]
- trait ColumnBase[T] extends Node with ValueLinearizer[T] with WithOp
Common base trait for columns, tables, and projections
- trait ColumnOps[B1, P1] extends AnyRef
- case class ConstColumn[T](value: T)(implicit evidence$4: TypeMapper[T]) extends Column[T] with Product with Serializable
A column with a constant value which is inserted into an SQL statement as a literal.
- sealed trait Constraint extends AnyRef
- trait DDL extends AnyRef
A DDL object contains the SQL statements for creating and dropping database entities.
A DDL object contains the SQL statements for creating and dropping database entities. DDLs can be combined for creating or dropping multiple entities together, even if they have circular dependencies.
- sealed class EscFunction[T] extends OperatorColumn[T] with SimpleFunction
- class ForeignKey[TT <: Table[_], P] extends OperatorColumn[Boolean] with BinaryNode
- sealed abstract class ForeignKeyAction extends AnyRef
- class ForeignKeyQuery[TT <: Table[_], U] extends QueryWrap[TT, U] with Constraint
- final case class Grouping(by: Node) extends QueryModifier with Product with Serializable
- case class HavingColumn[T](c: Column[_])(implicit evidence$8: TypeMapper[T]) extends Column[T] with Product with Serializable
A column representing a group by having clause
- class Index extends AnyRef
An index (or foreign key constraint with an implicit index).
- case class Join(left: Node, right: Node, on: Node, joinType: JoinType) extends BinaryNode with Product with Serializable
- class JoinQuery[+P, P2, +U, U2] extends QueryWrap[(P, P2), (U, U2)]
- sealed abstract class JoinType extends AnyRef
- final class MappedProjection[T, P <: Product] extends ColumnBase[T] with UnaryNode
- abstract class MappedTypeMapper[T, U] extends TypeMapper[T]
- final class NamedColumn[T] extends Column[T]
A column which is part of a Table.
- trait NumericTypeMapper extends AnyRef
- abstract class OperatorColumn[T] extends Column[T]
A column which gets created as the result of applying an operator.
- sealed trait OptionMapper2[B1, B2, BR, P1, P2, R] extends (Column[BR]) => Column[R]
- Annotations
- @implicitNotFound()
- sealed trait OptionMapper3[B1, B2, B3, BR, P1, P2, P3, R] extends (Column[BR]) => Column[R]
- Annotations
- @implicitNotFound()
- abstract class OptionTypeMapper[T] extends TypeMapper[Option[T]]
- sealed abstract class Ordering extends QueryModifier
- case class ParameterColumn[T](idx: Int)(implicit evidence$6: TypeMapper[T]) extends Column[T] with Product with Serializable
A parameter from a QueryTemplate which gets turned into a bind variable.
- final class Params[P, C] extends AnyRef
- case class PrimaryKey(name: String, columns: IndexedSeq[Node]) extends Constraint with Product with Serializable
- sealed trait Projection[T <: Product] extends ColumnBase[T] with ProductNode with Product
- final case class Projection10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10]) extends Product10[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)] with Product with Serializable
- final case class Projection11[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10], _11: Column[T11]) extends Product11[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10], Column[T11]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)] with Product with Serializable
- final case class Projection12[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10], _11: Column[T11], _12: Column[T12]) extends Product12[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10], Column[T11], Column[T12]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)] with Product with Serializable
- final case class Projection13[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10], _11: Column[T11], _12: Column[T12], _13: Column[T13]) extends Product13[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10], Column[T11], Column[T12], Column[T13]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)] with Product with Serializable
- final case class Projection14[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10], _11: Column[T11], _12: Column[T12], _13: Column[T13], _14: Column[T14]) extends Product14[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10], Column[T11], Column[T12], Column[T13], Column[T14]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)] with Product with Serializable
- final case class Projection15[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10], _11: Column[T11], _12: Column[T12], _13: Column[T13], _14: Column[T14], _15: Column[T15]) extends Product15[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10], Column[T11], Column[T12], Column[T13], Column[T14], Column[T15]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)] with Product with Serializable
- final case class Projection16[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10], _11: Column[T11], _12: Column[T12], _13: Column[T13], _14: Column[T14], _15: Column[T15], _16: Column[T16]) extends Product16[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10], Column[T11], Column[T12], Column[T13], Column[T14], Column[T15], Column[T16]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)] with Product with Serializable
- final case class Projection17[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10], _11: Column[T11], _12: Column[T12], _13: Column[T13], _14: Column[T14], _15: Column[T15], _16: Column[T16], _17: Column[T17]) extends Product17[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10], Column[T11], Column[T12], Column[T13], Column[T14], Column[T15], Column[T16], Column[T17]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)] with Product with Serializable
- final case class Projection18[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10], _11: Column[T11], _12: Column[T12], _13: Column[T13], _14: Column[T14], _15: Column[T15], _16: Column[T16], _17: Column[T17], _18: Column[T18]) extends Product18[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10], Column[T11], Column[T12], Column[T13], Column[T14], Column[T15], Column[T16], Column[T17], Column[T18]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)] with Product with Serializable
- final case class Projection19[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10], _11: Column[T11], _12: Column[T12], _13: Column[T13], _14: Column[T14], _15: Column[T15], _16: Column[T16], _17: Column[T17], _18: Column[T18], _19: Column[T19]) extends Product19[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10], Column[T11], Column[T12], Column[T13], Column[T14], Column[T15], Column[T16], Column[T17], Column[T18], Column[T19]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)] with Product with Serializable
- final case class Projection2[T1, T2](_1: Column[T1], _2: Column[T2]) extends Product2[Column[T1], Column[T2]] with Projection[(T1, T2)] with Product with Serializable
- final case class Projection20[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10], _11: Column[T11], _12: Column[T12], _13: Column[T13], _14: Column[T14], _15: Column[T15], _16: Column[T16], _17: Column[T17], _18: Column[T18], _19: Column[T19], _20: Column[T20]) extends Product20[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10], Column[T11], Column[T12], Column[T13], Column[T14], Column[T15], Column[T16], Column[T17], Column[T18], Column[T19], Column[T20]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)] with Product with Serializable
- final case class Projection21[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10], _11: Column[T11], _12: Column[T12], _13: Column[T13], _14: Column[T14], _15: Column[T15], _16: Column[T16], _17: Column[T17], _18: Column[T18], _19: Column[T19], _20: Column[T20], _21: Column[T21]) extends Product21[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10], Column[T11], Column[T12], Column[T13], Column[T14], Column[T15], Column[T16], Column[T17], Column[T18], Column[T19], Column[T20], Column[T21]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)] with Product with Serializable
- final case class Projection22[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9], _10: Column[T10], _11: Column[T11], _12: Column[T12], _13: Column[T13], _14: Column[T14], _15: Column[T15], _16: Column[T16], _17: Column[T17], _18: Column[T18], _19: Column[T19], _20: Column[T20], _21: Column[T21], _22: Column[T22]) extends Product22[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9], Column[T10], Column[T11], Column[T12], Column[T13], Column[T14], Column[T15], Column[T16], Column[T17], Column[T18], Column[T19], Column[T20], Column[T21], Column[T22]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)] with Product with Serializable
- final case class Projection3[T1, T2, T3](_1: Column[T1], _2: Column[T2], _3: Column[T3]) extends Product3[Column[T1], Column[T2], Column[T3]] with Projection[(T1, T2, T3)] with Product with Serializable
- final case class Projection4[T1, T2, T3, T4](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4]) extends Product4[Column[T1], Column[T2], Column[T3], Column[T4]] with Projection[(T1, T2, T3, T4)] with Product with Serializable
- final case class Projection5[T1, T2, T3, T4, T5](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5]) extends Product5[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5]] with Projection[(T1, T2, T3, T4, T5)] with Product with Serializable
- final case class Projection6[T1, T2, T3, T4, T5, T6](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6]) extends Product6[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6]] with Projection[(T1, T2, T3, T4, T5, T6)] with Product with Serializable
- final case class Projection7[T1, T2, T3, T4, T5, T6, T7](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7]) extends Product7[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7]] with Projection[(T1, T2, T3, T4, T5, T6, T7)] with Product with Serializable
- final case class Projection8[T1, T2, T3, T4, T5, T6, T7, T8](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8]) extends Product8[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8)] with Product with Serializable
- final case class Projection9[T1, T2, T3, T4, T5, T6, T7, T8, T9](_1: Column[T1], _2: Column[T2], _3: Column[T3], _4: Column[T4], _5: Column[T5], _6: Column[T6], _7: Column[T7], _8: Column[T8], _9: Column[T9]) extends Product9[Column[T1], Column[T2], Column[T3], Column[T4], Column[T5], Column[T6], Column[T7], Column[T8], Column[T9]] with Projection[(T1, T2, T3, T4, T5, T6, T7, T8, T9)] with Product with Serializable
- sealed abstract class Query[+P, +U] extends Node
- sealed trait QueryModifier extends Node
- class QueryWrap[+P, +U] extends Query[P, U]
- trait Queryable[-T] extends AnyRef
a type class that restricts Query monad filter operations
- sealed trait Reify[-P, R] extends AnyRef
A type class that encodes the reification
Packed => Reified
of aQuery[Packed]
to a fully packed typeReified
, i.e.A type class that encodes the reification
Packed => Reified
of aQuery[Packed]
to a fully packed typeReified
, i.e. a type where everything which is not a transparent container is wrapped in aColumn[_]
.This needs to be defined in a separate typeclass but in lockstep with Unpack because of limitations of Scala's type inferencer.
Example:
- Packed: (Column[Int], Column[(Int, String)], (Int, Option[Double])) - Reified: (Column[Int], Column[(Int, String)], (Column[Int], Column[Option[Double]]))
- Annotations
- @implicitNotFound()
- trait ReifyLowPriority extends AnyRef
- class Sequence[T] extends AnyRef
- trait SimpleBinaryOperator extends BinaryNode
- trait SimpleExpression extends Node
- trait SimpleFunction extends Node
A SimpleFunction gets translated to a plain function call or JDBC/ODBC scalar function {fn ...} call in SQL.
- case class SimpleLiteral(name: String) extends Node with Product with Serializable
- case class StdFunction[T](name: String, operand: Node)(implicit evidence$6: TypeMapper[T]) extends OperatorColumn[T] with SimpleFunction with Product with Serializable
- case class Subquery(query: Node, rename: Boolean) extends Node with Product with Serializable
- case class SubqueryColumn(pos: Int, subquery: Subquery, typeMapper: TypeMapper[_]) extends Node with Product with Serializable
- abstract class Table[T] extends ColumnBase[T]
- final case class TakeDrop(take: Option[Column[Int]], drop: Option[Column[Int]], compareNode: Option[Column[Int]] = None) extends QueryModifier with NullaryNode with Product with Serializable
- sealed trait TypeMapper[T] extends (Profile) => TypeMapperDelegate[T]
A (usually implicit) TypeMapper object represents a Scala type that can be used as a column type in the database.
A (usually implicit) TypeMapper object represents a Scala type that can be used as a column type in the database. The actual implementation of the type is deferred to a TypeMapperDelegate which can depend on the driver.
Custom types with a single implementation can implement both traits in one object:
implicit object MyTypeMapper extends TypeMapper[MyType] with TypeMapperDelegate[MyType] { def apply(p:Profile) = this def zero = ... def sqlType = ... def setValue(v: Long, p: PositionedParameters) = ... def setOption(v: Option[Long], p: PositionedParameters) = ... def nextValue(r: PositionedResult) = ... def updateValue(v: Long, r: PositionedResult) = ... }
- trait TypeMapperDelegate[T] extends AnyRef
- case class Union(all: Boolean, queries: List[Query[_, _]]) extends Node with Product with Serializable
- sealed trait Unpack[-P, U] extends AnyRef
A type class that encodes the unpacking
Packed => Unpacked
of aQuery[Packed]
to its result element typeUnpacked
.A type class that encodes the unpacking
Packed => Unpacked
of aQuery[Packed]
to its result element typeUnpacked
.At run-time, it provides the reification,
ValueLinearizer
of theUnpacked
type.Example:
- Packed: (Column[Int], Column[(Int, String)], (Int, Option[Double])) - Unpacked: (Int, (Int, String), (Int, Option[Double])) - Reified: (Column[Int], Column[(Int, String)], (Column[Int], Column[Option[Double]])) - Linearized: (Int, Int, String, Int, Option[Double])
- Annotations
- @implicitNotFound()
- trait UnpackLowPriority extends UnpackLowPriority2
- trait UnpackLowPriority2 extends AnyRef
- case class Unpackable[T, U](value: T, unpack: Unpack[T, U]) extends Product with Serializable
A packed value together with its unpacking
- class WrappedColumn[T] extends Column[T]
A WrappedColumn can be used to change a column's nullValue.
Value Members
- object Case
- object ColumnOps
- object ConstColumn extends Serializable
- object EscFunction
- object ForeignKeyAction
- object Functions
- object Join extends Serializable
- object JoinType
- object MappedTypeMapper
- object NamedColumn
- object OptionMapper2
- object OptionMapper3
- object Ordering
- object Params
- object Query extends QueryWrap[Unit, Unit]
- object Queryable
- object Reify extends ReifyLowPriority
- object Sequence
- object SimpleBinaryOperator
- object SimpleExpression
- object SimpleFunction
- object Subquery extends Serializable
- object Table
- object TakeDrop extends Serializable
- object TypeMapper
- object TypeMapperDelegate
- object Unpack extends UnpackLowPriority
- object ~