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[Eval, 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. 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
  8. 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)

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

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

    A pair of ColumnRefs, representing a SQL join.

  17. case class LeafCursor extends Cursor with Product with Serializable
    Definition Classes
    Mapping
  18. trait LeafMapping[T] extends TypeMapping
    Definition Classes
    Mapping
  19. sealed trait MappedQuery extends AnyRef

    Represents the mapping of a GraphQL query to an SQL query

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

    Trait representing an SQL column

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

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

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

  32. trait SqlDiscriminator extends AnyRef

    Discriminator for the branches of an interface/union

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

    Representation of a SQL query in a context

  39. sealed trait SqlUnionMapping extends ObjectMapping with SqlDiscriminatedType
  40. sealed trait Table extends AnyRef

    Representation of an SQL query result

  41. class TableDef extends AnyRef
  42. sealed trait TableExpr extends ColumnOwner

    Representation of a table expression

  43. case class TableName(name: String) extends Product with Serializable
  44. trait TypeMapping extends Product with Serializable
    Definition Classes
    Mapping
  45. 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: Monad[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): Option[SqlColumn]

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

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

    Returns the aliased columns corresponding to term in context

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

    Returns the columns for leaf field fieldName in context

  10. def compileAndRun(text: String, name: Option[String], untypedVars: Option[Json], introspectionLevel: IntrospectionLevel, env: Env)(implicit sc: Compiler[F, F]): F[Json]
    Definition Classes
    QueryExecutor
  11. def compileAndRunAll(text: String, name: Option[String], untypedVars: Option[Json], introspectionLevel: IntrospectionLevel, env: Env): Stream[F, Json]
    Definition Classes
    Mapping → QueryExecutor
  12. 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
  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, env: Env): 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. def encoderForLeaf(tpe: Type): Option[io.circe.Encoder[Any]]
    Definition Classes
    Mapping
  20. def encoderForTerm(context: Context, term: Term[_]): Option[Encoder]

    Returns the Encoder for the given term in context

  21. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  22. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  23. def fieldMapping(context: Context, fieldName: String): Option[FieldMapping]
    Definition Classes
    Mapping
  24. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  25. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  26. val interpreter: QueryInterpreter[F]
    Definition Classes
    Mapping
  27. def isAssociative(context: Context): Boolean

    Is the context type mapped to an associative table?

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

    Is fieldName in context computed?

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

    Is fieldName in context Jsonb?

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

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

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

    Is term in contextexpressible in SQL?

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

    Returns the key columns for the context type

  36. def leafMapping[T](tpe: Type): Option[LeafMapping[T]]
    Definition Classes
    Mapping
  37. def mkCursorForField(parent: Cursor, fieldName: String, resultName: Option[String]): Result[Cursor]
    Definition Classes
    SqlMappingLike → CirceMappingLike → Mapping
  38. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  39. def nonLeafList(context: Context, fieldName: String): Boolean

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

  40. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  41. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  42. def objectMapping(context: Context): Option[ObjectMapping]
    Definition Classes
    Mapping
  43. def parentTableForType(context: Context): Option[TableRef]

    Returns the table for the type at context

  44. def rootEffect(context: Context, fieldName: String): Option[RootEffect]
    Definition Classes
    Mapping
  45. def rootFieldMapping(context: Context, query: Query): Option[FieldMapping]
  46. def run(op: Operation, env: Env): Stream[F, Json]
    Definition Classes
    Mapping
  47. def run(query: Query, rootTpe: Type, env: Env): Stream[F, Json]
    Definition Classes
    Mapping
  48. val selectElaborator: SelectElaborator
    Definition Classes
    Mapping
  49. def stripCompiled(query: Query, context: Context): 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.

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

Inherited from SqlModule[F]

Inherited from CirceMappingLike[F]

Inherited from Mapping[F]

Inherited from QueryExecutor[F, Json]

Inherited from AnyRef

Inherited from Any

Ungrouped