Packages

t

edu.gemini.grackle.sql

SqlMappingLike

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
Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SqlMappingLike
  2. SqlModule
  3. CirceMappingLike
  4. Mapping
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. 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 a Fragment. Table aliases are assigned as needed for recursive queries. Column aliases are assigned to disambiguate collections of columns generated by subqueries and unions.

  2. type Aliased[T] = IndexedStateT[Result, AliasState, AliasState, T]
  3. case class CirceCursor extends Cursor with Product with Serializable
    Definition Classes
    CirceMappingLike
  4. case class CirceField extends CirceFieldMapping with Product with Serializable
    Definition Classes
    CirceMappingLike
  5. sealed trait CirceFieldMapping extends circe.CirceMappingLike.FieldMapping
    Definition Classes
    CirceMappingLike
  6. implicit class CirceMappingRootEffectSyntax extends AnyRef
    Definition Classes
    CirceMappingLike
  7. implicit class CirceMappingRootStreamSyntax extends AnyRef
    Definition Classes
    CirceMappingLike
  8. 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
  9. 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)

  10. 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.

    Columns 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 construct SqlColumns.

  11. case class CursorField[T] extends FieldMapping with Product with Serializable
    Definition Classes
    Mapping
  12. case class CursorFieldJson extends CirceFieldMapping with Product with Serializable
    Definition Classes
    CirceMappingLike
  13. case class Delegate extends FieldMapping with Product with Serializable
    Definition Classes
    Mapping
  14. case class EffectField extends EffectMapping with Product with Serializable
    Definition Classes
    Mapping
  15. trait EffectMapping extends FieldMapping
    Definition Classes
    Mapping
  16. 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
  17. trait FieldMapping extends Product with Serializable
    Definition Classes
    Mapping
  18. case class FieldTransformCursor[T] extends ProxyCursor with Product with Serializable
    Definition Classes
    Mapping
  19. 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
  20. case class Join(conditions: List[(ColumnRef, ColumnRef)]) extends Product with Serializable

    A pair of ColumnRefs, representing a SQL join.

  21. case class LeafCursor extends Cursor with Product with Serializable
    Definition Classes
    Mapping
  22. trait LeafMapping[T] extends TypeMapping
    Definition Classes
    Mapping
  23. sealed trait MappedQuery extends AnyRef

    Represents the mapping of a GraphQL query to an SQL query

  24. case class MultiRootCursor(roots: List[SqlCursor]) extends AbstractCursor with Product with Serializable
  25. abstract class ObjectMapping extends TypeMapping
    Definition Classes
    Mapping
  26. case class PrefixedMapping extends TypeMapping with Product with Serializable
    Definition Classes
    Mapping
  27. case class PrimitiveField extends FieldMapping with Product with Serializable
    Definition Classes
    Mapping
  28. case class PrimitiveMapping extends TypeMapping with Product with Serializable
    Definition Classes
    Mapping
  29. case class RootCursor extends AbstractCursor with Product with Serializable
    Definition Classes
    Mapping
  30. class RootDef extends AnyRef
  31. case class RootEffect extends EffectMapping with Product with Serializable
    Definition Classes
    Mapping
  32. case class RootStream extends EffectMapping with Product with Serializable
    Definition Classes
    Mapping
  33. trait SqlColumn extends AnyRef

    Trait representing an SQL column

  34. case class SqlColumnTerm(col: SqlColumn) extends Term[Option[Unit]] with Product with Serializable

    Wraps an SqlColumn as a Term which can appear in a Predicate

  35. 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

  36. 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.

  37. trait SqlDiscriminator extends AnyRef

    Discriminator for the branches of an interface/union

  38. 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
  39. sealed trait SqlFieldMapping extends FieldMapping
  40. sealed trait SqlInterfaceMapping extends ObjectMapping with SqlDiscriminatedType
  41. case class SqlJson(fieldName: String, columnRef: ColumnRef)(implicit pos: SourcePos) extends SqlFieldMapping with Product with Serializable
  42. class SqlMappingException extends RuntimeException
  43. case class SqlObject(fieldName: String, joins: List[Join])(implicit pos: SourcePos) extends SqlFieldMapping with Product with Serializable
  44. sealed trait SqlQuery extends ColumnOwner

    Representation of a SQL query in a context

  45. sealed trait SqlUnionMapping extends ObjectMapping with SqlDiscriminatedType
  46. sealed trait Table extends AnyRef

    Representation of an SQL query result

  47. class TableDef extends AnyRef
  48. sealed trait TableExpr extends ColumnOwner

    Representation of a table expression

  49. case class TableName(name: String) extends Product with Serializable
  50. trait TypeMapping extends Product with Serializable
    Definition Classes
    Mapping
  51. trait SqlFragment[T] extends Monoid[T]

    Typeclass for SQL fragments.

    Typeclass for SQL fragments.

    Definition Classes
    SqlModule

Abstract Value Members

  1. implicit abstract def Fragments: SqlFragment[Fragment]
    Definition Classes
    SqlModule
  2. implicit abstract val M: MonadThrow[F]
    Definition Classes
    Mapping
  3. abstract def booleanEncoder: Encoder
    Definition Classes
    SqlModule
  4. abstract def doubleEncoder: Encoder
    Definition Classes
    SqlModule
  5. abstract def fetch(fragment: Fragment, codecs: List[(Boolean, Codec)]): F[Vector[Array[Any]]]
    Definition Classes
    SqlModule
  6. abstract def intCodec: Codec
    Definition Classes
    SqlModule
  7. abstract def intEncoder: Encoder
    Definition Classes
    SqlModule
  8. abstract def monitor: SqlMonitor[F, Fragment]
    Definition Classes
    SqlModule
  9. abstract val schema: Schema
    Definition Classes
    Mapping
  10. abstract def stringEncoder: Encoder
    Definition Classes
    SqlModule
  11. abstract def toEncoder(c: Codec): Encoder

    Extract an encoder from a codec.

    Extract an encoder from a codec.

    Definition Classes
    SqlModule
  12. abstract val typeMappings: List[TypeMapping]
    Definition Classes
    Mapping

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def circeCursor(path: Path, env: Env, value: Json): Cursor
    Definition Classes
    CirceMappingLike
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  7. def columnForAtomicField(context: Context, fieldName: String): Result[SqlColumn]

    Returns the aliased column corresponding to the atomic field fieldName in context

  8. def columnForSqlTerm[T](context: Context, term: Term[T]): Result[SqlColumn]

    Returns the aliased columns corresponding to term in context

  9. def columnsForLeaf(context: Context, fieldName: String): Result[List[SqlColumn]]

    Returns the columns for leaf field fieldName in context

  10. def combineAndRun(queries: List[(Query, Cursor)]): F[Result[List[ProtoJson]]]
    Definition Classes
    Mapping
  11. def compileAndRun(text: String, name: Option[String], untypedVars: Option[Json], introspectionLevel: IntrospectionLevel, env: Env)(implicit sc: Compiler[F, F]): F[Json]
    Definition Classes
    Mapping
  12. def compileAndRunSubscription(text: String, name: Option[String], untypedVars: Option[Json], introspectionLevel: IntrospectionLevel, env: Env): Stream[F, Json]
    Definition Classes
    Mapping
  13. lazy val compiler: QueryCompiler
    Definition Classes
    Mapping
  14. def compilerPhases: List[Phase]
    Definition Classes
    Mapping
  15. lazy val componentElaborator: ComponentElaborator[[_]F[_]]
    Definition Classes
    Mapping
  16. def defaultRootCursor(query: Query, tpe: Type, parentCursor: Option[Cursor]): F[Result[(Query, Cursor)]]
    Definition Classes
    SqlMappingLike → Mapping
  17. def discriminatorColumnsForType(context: Context): List[SqlColumn]

    Returns the discriminator columns for the context type

  18. def discriminatorForType(context: Context): Option[SqlDiscriminatedType]

    Returns the discriminator for the type at context

  19. lazy val effectElaborator: EffectElaborator[[_]F[_]]
    Definition Classes
    Mapping
  20. def encoderForLeaf(tpe: Type): Option[io.circe.Encoder[Any]]
    Definition Classes
    Mapping
  21. def encoderForTerm(context: Context, term: Term[_]): Result[Encoder]

    Returns the Encoder for the given term in context

  22. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  23. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  24. def fieldMapping(context: Context, fieldName: String): Option[FieldMapping]
    Definition Classes
    Mapping
  25. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  26. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  27. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  28. val interpreter: QueryInterpreter[F]
    Definition Classes
    Mapping
  29. def isAssociative(context: Context): Boolean

    Is the context type mapped to an associative table?

  30. def isComputedField(context: Context, fieldName: String): Boolean

    Is fieldName in context computed?

  31. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  32. def isJsonb(context: Context, fieldName: String): Boolean

    Is fieldName in context Jsonb?

  33. def isLeaf(tpe: Type): Boolean
    Definition Classes
    Mapping
  34. def isLocallyMapped(context: Context, query: Query): Boolean
  35. def isSingular(context: Context, fieldName: String, query: Query): Boolean

    Does the supplied field correspond to a single, possibly structured, value?

  36. def isSqlTerm(context: Context, term: Term[_]): Result[Boolean]

    Is term in contextexpressible in SQL?

  37. def keyColumnsForType(context: Context): List[SqlColumn]

    Returns the key columns for the context type

  38. def leafMapping[T](tpe: Type): Option[LeafMapping[T]]
    Definition Classes
    Mapping
  39. def mkCursorForField(parent: Cursor, fieldName: String, resultName: Option[String]): Result[Cursor]
    Definition Classes
    SqlMappingLike → CirceMappingLike → Mapping
  40. def mkResponse(result: Result[Json]): F[Json]
    Definition Classes
    Mapping
  41. def mkResponse(data: Option[Json], errors: Chain[Problem]): Json
    Definition Classes
    Mapping
  42. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  43. def nonLeafList(context: Context, fieldName: String): Boolean

    Does the type of fieldName in context represent a list of subobjects?

  44. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  45. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  46. def objectMapping(context: Context): Option[ObjectMapping]
    Definition Classes
    Mapping
  47. def parentTableForType(context: Context): Result[TableRef]

    Returns the table for the type at context

  48. def rootEffect(context: Context, fieldName: String): Option[RootEffect]
    Definition Classes
    Mapping
  49. def rootFieldMapping(context: Context, query: Query): Option[FieldMapping]
  50. def rootStream(context: Context, fieldName: String): Option[RootStream]
    Definition Classes
    Mapping
  51. val selectElaborator: SelectElaborator
    Definition Classes
    Mapping
  52. def sqlCursor(query: Query, env: Env): F[Result[Cursor]]
  53. 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.

  54. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  55. def toString(): String
    Definition Classes
    AnyRef → Any
  56. def typeMapping(tpe: NamedType): Option[TypeMapping]
    Definition Classes
    Mapping
  57. val validator: SqlMappingValidator
    Definition Classes
    SqlMappingLike → Mapping
  58. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  59. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  60. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  61. object AliasState extends Serializable
  62. object Aliased
  63. object CursorField extends Serializable
    Definition Classes
    Mapping
  64. object Join extends Serializable
  65. object MappedQuery
  66. object SqlColumn
  67. object SqlInterfaceMapping extends Serializable
  68. object SqlObject extends Serializable
  69. object SqlQuery extends Serializable
  70. object SqlUnionMapping extends Serializable
  71. object Table
  72. object TableExpr extends Serializable
  73. object TableName extends Serializable

Inherited from SqlModule[F]

Inherited from CirceMappingLike[F]

Inherited from Mapping[F]

Inherited from AnyRef

Inherited from Any

Ungrouped