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]
Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SqlMappingLike
  2. SqlModule
  3. CirceMappingLike
  4. Mapping
  5. QueryExecutor
  6. AnyRef
  7. 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. 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
  19. case class Join(conditions: List[(ColumnRef, ColumnRef)]) extends Product with Serializable

    A pair of ColumnRefs, representing a SQL join.

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

    Represents the mapping of a GraphQL query to an SQL query

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

    Trait representing an SQL column

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

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

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

  36. trait SqlDiscriminator extends AnyRef

    Discriminator for the branches of an interface/union

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

    Representation of a SQL query in a context

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

    Representation of an SQL query result

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

    Representation of a table expression

  48. case class TableName(name: String) extends Product with Serializable
  49. trait TypeMapping extends Product with Serializable
    Definition Classes
    Mapping
  50. 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() @HotSpotIntrinsicCandidate()
  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
    QueryExecutor
  12. def compileAndRunAll(text: String, name: Option[String], untypedVars: Option[Json], introspectionLevel: IntrospectionLevel, env: Env): Stream[F, Json]
    Definition Classes
    Mapping → QueryExecutor
  13. def compileAndRunOne(text: String, name: Option[String], untypedVars: Option[Json], introspectionLevel: IntrospectionLevel, env: Env)(implicit sc: Compiler[F, F]): F[Json]
    Definition Classes
    Mapping → QueryExecutor
  14. lazy val compiler: QueryCompiler
    Definition Classes
    Mapping
  15. def compilerPhases: List[Phase]
    Definition Classes
    Mapping
  16. lazy val componentElaborator: ComponentElaborator[[_]F[_]]
    Definition Classes
    Mapping
  17. def defaultRootCursor(query: Query, tpe: Type, parentCursor: Option[Cursor]): F[Result[(Query, Cursor)]]
    Definition Classes
    SqlMappingLike → Mapping
  18. def discriminatorColumnsForType(context: Context): List[SqlColumn]

    Returns the discriminator columns for the context type

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

    Returns the discriminator for the type at context

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

    Returns the Encoder for the given term in context

  23. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  24. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  25. def fieldMapping(context: Context, fieldName: String): Option[FieldMapping]
    Definition Classes
    Mapping
  26. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  27. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  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 mkInvalidResponse(result: Result[Operation]): F[Json]
    Definition Classes
    Mapping
  41. def mkResponse(result: Result[Json]): F[Json]
    Definition Classes
    Mapping
  42. def mkResponse(data: Option[Json], errors: Chain[Problem]): Json
    Definition Classes
    Mapping
  43. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  44. def nonLeafList(context: Context, fieldName: String): Boolean

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

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

    Returns the table for the type at context

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

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

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
    Deprecated

Inherited from SqlModule[F]

Inherited from CirceMappingLike[F]

Inherited from Mapping[F]

Inherited from QueryExecutor[F, Json]

Inherited from AnyRef

Inherited from Any

Ungrouped