trait SqlMappingLike[F[_]] extends Mapping[F] with CirceMappingLike[F] with SqlModule[F]
An abstract mapping that is backed by a SQL database.
- Self Type
- SqlMappingLike[F]
- Source
- SqlMapping.scala
- Alphabetic
- By Inheritance
- SqlMappingLike
- SqlModule
- CirceMappingLike
- Mapping
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- case class AliasState(next: Int, seenTables: Set[String], tableAliases: Map[(List[String], String), String], seenColumns: Set[String], columnAliases: Map[(List[String], String), String], ownerChain: List[ColumnOwner]) extends Product with Serializable
State required to assign table and column aliases.
State required to assign table and column aliases.
Used when rendering an
SqlQuery
as aFragment
. Table aliases are assigned as needed for recursive queries. Column aliases are assigned to disambiguate collections of columns generated by subqueries and unions. - type Aliased[T] = IndexedStateT[Result, AliasState, AliasState, T]
- case class CirceCursor extends Cursor with Product with Serializable
- Definition Classes
- CirceMappingLike
- case class CirceField extends CirceFieldMapping with Product with Serializable
- Definition Classes
- CirceMappingLike
- sealed trait CirceFieldMapping extends circe.CirceMappingLike.FieldMapping
- Definition Classes
- CirceMappingLike
- implicit class CirceMappingRootEffectSyntax extends AnyRef
- Definition Classes
- CirceMappingLike
- implicit class CirceMappingRootStreamSyntax extends AnyRef
- Definition Classes
- CirceMappingLike
- abstract type Codec
The type of a codec that reads and writes column values of type
A
.The type of a codec that reads and writes column values of type
A
.- Definition Classes
- SqlModule
- sealed trait ColumnOwner extends Product with Serializable
Trait representing an owner of an
SqlColumn
Trait representing an owner of an
SqlColumn
ColumnOwners are tables, SQL queries and subqueries, common table expressions and the like. Most, but not all have a name (SqlSelect, SqlUnion and SqlJoin being unnamed examples)
- case class ColumnRef(table: String, column: String, codec: SqlMappingLike.Codec, scalaTypeName: String, pos: SourcePos) extends Product with Serializable
Name of a SQL schema column and its associated codec, Scala type an defining source position within an
SqlMapping
.Name of a SQL schema column and its associated codec, Scala type an defining source position within an
SqlMapping
.Column
s are considered equal if their table and column names are equal.Note that
ColumnRef
primarily play a role in mappings. During compilation they will be used to constructSqlColumns
. - case class CursorField[T] extends FieldMapping with Product with Serializable
- Definition Classes
- Mapping
- case class CursorFieldJson extends CirceFieldMapping with Product with Serializable
- Definition Classes
- CirceMappingLike
- case class Delegate extends FieldMapping with Product with Serializable
- Definition Classes
- Mapping
- case class EffectField extends EffectMapping with Product with Serializable
- Definition Classes
- Mapping
- trait EffectMapping extends FieldMapping
- Definition Classes
- Mapping
- abstract type Encoder
The type of an encoder that writes column values of type
A
.The type of an encoder that writes column values of type
A
.- Definition Classes
- SqlModule
- trait FieldMapping extends Product with Serializable
- Definition Classes
- Mapping
- case class FieldTransformCursor[T] extends ProxyCursor with Product with Serializable
- Definition Classes
- Mapping
- abstract type Fragment
The type of a fragment of SQL together with any interpolated arguments.
The type of a fragment of SQL together with any interpolated arguments.
- Definition Classes
- SqlModule
- case class Join(conditions: List[(ColumnRef, ColumnRef)]) extends Product with Serializable
A pair of
ColumnRef
s, representing a SQL join. - case class LeafCursor extends Cursor with Product with Serializable
- Definition Classes
- Mapping
- trait LeafMapping[T] extends TypeMapping
- Definition Classes
- Mapping
- sealed trait MappedQuery extends AnyRef
Represents the mapping of a GraphQL query to an SQL query
- case class MultiRootCursor(roots: List[SqlCursor]) extends AbstractCursor with Product with Serializable
- abstract class ObjectMapping extends TypeMapping
- Definition Classes
- Mapping
- case class PrefixedMapping extends TypeMapping with Product with Serializable
- Definition Classes
- Mapping
- case class PrimitiveField extends FieldMapping with Product with Serializable
- Definition Classes
- Mapping
- case class PrimitiveMapping extends TypeMapping with Product with Serializable
- Definition Classes
- Mapping
- case class RootCursor extends AbstractCursor with Product with Serializable
- Definition Classes
- Mapping
- class RootDef extends AnyRef
- case class RootEffect extends EffectMapping with Product with Serializable
- Definition Classes
- Mapping
- case class RootStream extends EffectMapping with Product with Serializable
- Definition Classes
- Mapping
- trait SqlColumn extends AnyRef
Trait representing an SQL column
- case class SqlColumnTerm(col: SqlColumn) extends Term[Option[Unit]] with Product with Serializable
Wraps an
SqlColumn
as aTerm
which can appear in aPredicate
- case class SqlCursor(context: Context, focus: Any, mapped: MappedQuery, parent: Option[Cursor], env: Env) extends Cursor with Product with Serializable
Cursor positioned at a GraphQL result non-leaf
- sealed trait SqlDiscriminatedType extends AnyRef
Common super type for mappings which have a programmatic discriminator, ie.
Common super type for mappings which have a programmatic discriminator, ie. interface and union mappings.
- trait SqlDiscriminator extends AnyRef
Discriminator for the branches of an interface/union
- case class SqlField(fieldName: String, columnRef: ColumnRef, key: Boolean = false, discriminator: Boolean = false, hidden: Boolean = false, associative: Boolean = false)(implicit pos: SourcePos) extends SqlFieldMapping with Product with Serializable
- sealed trait SqlFieldMapping extends FieldMapping
- sealed trait SqlInterfaceMapping extends ObjectMapping with SqlDiscriminatedType
- case class SqlJson(fieldName: String, columnRef: ColumnRef)(implicit pos: SourcePos) extends SqlFieldMapping with Product with Serializable
- class SqlMappingException extends RuntimeException
- case class SqlObject(fieldName: String, joins: List[Join])(implicit pos: SourcePos) extends SqlFieldMapping with Product with Serializable
- sealed trait SqlQuery extends ColumnOwner
Representation of a SQL query in a context
- sealed trait SqlUnionMapping extends ObjectMapping with SqlDiscriminatedType
- sealed trait Table extends AnyRef
Representation of an SQL query result
- class TableDef extends AnyRef
- sealed trait TableExpr extends ColumnOwner
Representation of a table expression
- case class TableName(name: String) extends Product with Serializable
- trait TypeMapping extends Product with Serializable
- Definition Classes
- Mapping
- trait SqlFragment[T] extends Monoid[T]
Typeclass for SQL fragments.
Typeclass for SQL fragments.
- Definition Classes
- SqlModule
Abstract Value Members
- implicit abstract def Fragments: SqlFragment[Fragment]
- Definition Classes
- SqlModule
- implicit abstract val M: MonadThrow[F]
- Definition Classes
- Mapping
- abstract def booleanEncoder: Encoder
- Definition Classes
- SqlModule
- abstract def doubleEncoder: Encoder
- Definition Classes
- SqlModule
- abstract def fetch(fragment: Fragment, codecs: List[(Boolean, Codec)]): F[Vector[Array[Any]]]
- Definition Classes
- SqlModule
- abstract def intCodec: Codec
- Definition Classes
- SqlModule
- abstract def intEncoder: Encoder
- Definition Classes
- SqlModule
- abstract def monitor: SqlMonitor[F, Fragment]
- Definition Classes
- SqlModule
- abstract val schema: Schema
- Definition Classes
- Mapping
- abstract def stringEncoder: Encoder
- Definition Classes
- SqlModule
- abstract def toEncoder(c: Codec): Encoder
Extract an encoder from a codec.
Extract an encoder from a codec.
- Definition Classes
- SqlModule
- abstract val typeMappings: List[TypeMapping]
- Definition Classes
- Mapping
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def circeCursor(path: Path, env: Env, value: Json): Cursor
- Definition Classes
- CirceMappingLike
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def columnForAtomicField(context: Context, fieldName: String): Result[SqlColumn]
Returns the aliased column corresponding to the atomic field
fieldName
incontext
- def columnForSqlTerm[T](context: Context, term: Term[T]): Result[SqlColumn]
Returns the aliased columns corresponding to
term
incontext
- def columnsForLeaf(context: Context, fieldName: String): Result[List[SqlColumn]]
Returns the columns for leaf field
fieldName
incontext
- def combineAndRun(queries: List[(Query, Cursor)]): F[Result[List[ProtoJson]]]
- Definition Classes
- Mapping
- def compileAndRun(text: String, name: Option[String], untypedVars: Option[Json], introspectionLevel: IntrospectionLevel, env: Env)(implicit sc: Compiler[F, F]): F[Json]
- Definition Classes
- Mapping
- def compileAndRunSubscription(text: String, name: Option[String], untypedVars: Option[Json], introspectionLevel: IntrospectionLevel, env: Env): Stream[F, Json]
- Definition Classes
- Mapping
- lazy val compiler: QueryCompiler
- Definition Classes
- Mapping
- def compilerPhases: List[Phase]
- Definition Classes
- Mapping
- lazy val componentElaborator: ComponentElaborator[[_]F[_]]
- Definition Classes
- Mapping
- def defaultRootCursor(query: Query, tpe: Type, parentCursor: Option[Cursor]): F[Result[(Query, Cursor)]]
- Definition Classes
- SqlMappingLike → Mapping
- def discriminatorColumnsForType(context: Context): List[SqlColumn]
Returns the discriminator columns for the context type
- def discriminatorForType(context: Context): Option[SqlDiscriminatedType]
Returns the discriminator for the type at
context
- lazy val effectElaborator: EffectElaborator[[_]F[_]]
- Definition Classes
- Mapping
- def encoderForLeaf(tpe: Type): Option[io.circe.Encoder[Any]]
- Definition Classes
- Mapping
- def encoderForTerm(context: Context, term: Term[_]): Result[Encoder]
Returns the
Encoder
for the given term incontext
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def fieldMapping(context: Context, fieldName: String): Option[FieldMapping]
- Definition Classes
- Mapping
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- val interpreter: QueryInterpreter[F]
- Definition Classes
- Mapping
- def isAssociative(context: Context): Boolean
Is the context type mapped to an associative table?
- def isComputedField(context: Context, fieldName: String): Boolean
Is
fieldName
incontext
computed? - final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isJsonb(context: Context, fieldName: String): Boolean
Is
fieldName
incontext
Jsonb? - def isLeaf(tpe: Type): Boolean
- Definition Classes
- Mapping
- def isLocallyMapped(context: Context, query: Query): Boolean
- def isSingular(context: Context, fieldName: String, query: Query): Boolean
Does the supplied field correspond to a single, possibly structured, value?
- def isSqlTerm(context: Context, term: Term[_]): Result[Boolean]
Is
term
incontext
expressible in SQL? - def keyColumnsForType(context: Context): List[SqlColumn]
Returns the key columns for the context type
- def leafMapping[T](tpe: Type): Option[LeafMapping[T]]
- Definition Classes
- Mapping
- def mkCursorForField(parent: Cursor, fieldName: String, resultName: Option[String]): Result[Cursor]
- Definition Classes
- SqlMappingLike → CirceMappingLike → Mapping
- def mkResponse(result: Result[Json]): F[Json]
- Definition Classes
- Mapping
- def mkResponse(data: Option[Json], errors: Chain[Problem]): Json
- Definition Classes
- Mapping
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def nonLeafList(context: Context, fieldName: String): Boolean
Does the type of
fieldName
incontext
represent a list of subobjects? - final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def objectMapping(context: Context): Option[ObjectMapping]
- Definition Classes
- Mapping
- def parentTableForType(context: Context): Result[TableRef]
Returns the table for the type at
context
- def rootEffect(context: Context, fieldName: String): Option[RootEffect]
- Definition Classes
- Mapping
- def rootFieldMapping(context: Context, query: Query): Option[FieldMapping]
- def rootStream(context: Context, fieldName: String): Option[RootStream]
- Definition Classes
- Mapping
- val selectElaborator: SelectElaborator
- Definition Classes
- Mapping
- def sqlCursor(query: Query, env: Env): F[Result[Cursor]]
- def stripCompiled(query: Query, context: Context): Result[Query]
Operators which can be compiled to SQL are eliminated here, partly to avoid duplicating work programmatically, but also because the operation isn't necessarily idempotent and the result set doesn't necessarily contain the fields required for the filter predicates.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def typeMapping(tpe: NamedType): Option[TypeMapping]
- Definition Classes
- Mapping
- val validator: SqlMappingValidator
- Definition Classes
- SqlMappingLike → Mapping
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- object AliasState extends Serializable
- object Aliased
- object CursorField extends Serializable
- Definition Classes
- Mapping
- object Join extends Serializable
- object MappedQuery
- object SqlColumn
- object SqlInterfaceMapping extends Serializable
- object SqlObject extends Serializable
- object SqlQuery extends Serializable
- object SqlUnionMapping extends Serializable
- object Table
- object TableExpr extends Serializable
- object TableName extends Serializable