DoobieIntegraion

gql.relational.doobie.DoobieIntegraion$

Attributes

Source
DoobieIntegraion.scala
Graph
Supertypes
trait QueryAlgebra
class Object
trait Matchable
class Any
Self type

Members list

Type members

Inherited classlikes

trait AnyQueryAttribute[G[_], A]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait TableFieldAttribute[G, A, B, ArgType, Q]
trait UnificationQueryAttribute[A, Q, B]
case class Done[G[_], A, B](dec: Decoder[A], reassoc: List[A] => Either[String, G[B]])

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object FieldVariant

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
sealed trait FieldVariant[Q, A]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
class Object
trait Matchable
class Any
trait PDFField[F[_]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class PDFFieldImpl[F, G0]
case class PDFFieldImpl[F[_], G0[_]](field: Field[F, G0, _]) extends PDFField[F]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
trait Serializable
trait Product
trait Equals
trait PDFField[F]
class Object
trait Matchable
class Any
Show all
case class PreparedQuery[G[_], A, B, C](qc: QueryContent, done: Done[G, A, B], rootQueryValue: C)

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object Query

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
sealed trait Query[G[_], +A]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
class Object
trait Matchable
class Any

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
trait QueryContext[A]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
class Object
trait Matchable
class Any
case class QueryJoin(tbl: Frag, pred: Frag)

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object QueryTask

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
sealed trait QueryTask[F[_], A]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
class Object
trait Matchable
class Any
trait Queryable[F[_]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
class Object
trait Matchable
class Any
trait Table

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait DoobieTable

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
trait AnyQueryAttribute[G, B]
class Object
trait Matchable
class Any

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
Supertypes
class Object
trait Matchable
class Any
Show all

Types

type Connection[F[_]] = Transactor[F]

Attributes

Source
DoobieIntegraion.scala
type Decoder[A] = Read[A]

Attributes

Source
DoobieIntegraion.scala
type Frag = Fragment

Attributes

Source
DoobieIntegraion.scala

Inherited types

type Effect[A] = EitherT[[_] =>> StateT[[_] =>> Writer[QueryContent, _$42], Int, _$43], String, A]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
type QueryState[G[_], C] = QueryState[Decoder, G, C]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala

Value members

Concrete methods

def optDecoder[A](d: Read[A]): Read[Option[A]]

Attributes

Source
DoobieIntegraion.scala

Attributes

Source
DoobieIntegraion.scala

Inherited methods

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
def collapseQuery[G[_], C](q: Query[G, C]): Effect[QueryState[G, C]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
def compileNextField[F[_], G[_], A, B, ArgType, Q](pdf: PreparedDataField[F, _, _], a: A, tfa: TableFieldAttribute[G, A, B, ArgType, Q]): Effect[Done[G, _, B]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
def compileQueryState[F[_], G[_], B, Q](qs: QueryState[G, Q], variant: FieldVariant[Q, B], nextTasks: Eval[List[QueryTask[F, _]]]): Effect[Done[G, _, B]]

Attributes

Inherited from:
qs.fk.apply[B](_$57))) }))) case_:QueryAlgebra.this.FieldVariant.SubSelection[a]=> valpassthrough:Q=qs.value valtasks:List[QueryTask[F,_>:Nothing<:Any]]=nextTasks.value traitTaskResult()extendsObject{ typeG[A]=_>:Nothing<:Any defattr:AnyQueryAttribute[G,_>:Nothing<:Any] defd:Done[G,_>:Nothing<:Any,_>:Nothing<:Any] } caseclassTaskResultImpl[G0[_$58]](attr:AnyQueryAttribute[G0,_>:Nothing<:Any],d:Done[G0,_>:Nothing<:Any,_>:Nothing<:Any])extendsTaskResult{ overridedefhashCode():Int=_hashCode(TaskResultImpl.this) overridedefequals(x$0:Any):Boolean=TaskResultImpl.this.eq(x$0.$asInstanceOf$[Object]).||(x$0match{ casex$0:TaskResultImpl[G0]@unchecked=> TaskResultImpl.this.attr.==(`x$0₂`.attr).&&(TaskResultImpl.this.d.==(`x$0₂`.d)).&&(`x$0₂`.canEqual(TaskResultImpl.this)) case_=> false }) overridedeftoString():String=_toString(TaskResultImpl.this) overridedefcanEqual(that:Any):Boolean=that.isInstanceOf[TaskResultImpl[G0]@unchecked] overridedefproductArity:Int=2 overridedefproductPrefix:String="TaskResultImpl" overridedefproductElement(n:Int):Any=nmatch{ case0=> TaskResultImpl.this._1 case1=> TaskResultImpl.this._2 case_=> thrownewIndexOutOfBoundsException(n.toString()) } typeG[A]=G0[A] } lazyvalTaskResultImpl:TaskResultImpl=newTaskResultImpl() objectTaskResultImplextendsAnyRefwithProduct{ overridedeftoString:String="TaskResultImpl" typeMirroredMonoType deffromProduct(`x$0₃`:Product):MirroredMonoType=newTaskResultImpl[[_$58>:Nothing<:Any]=>Any](`x$0₃`.productElement(0).$asInstanceOf$[AnyQueryAttribute[[_$58>:Nothing<:Any]=>Any,_>:Nothing<:Any]],`x$0₃`.productElement(1).$asInstanceOf$[Done[[_$58>:Nothing<:Any]=>Any,_>:Nothing<:Any,_>:Nothing<:Any]]) } valtaskResults:Effect[List[TaskResult]]=toTraverseOps[List,QueryTask[F,_>:Nothing<:Any]](tasks)(catsStdInstancesForList).traverse[[B>:Nothing<:Any]=>EitherT[[_$43>:Nothing<:Any]=>StateT[[_$42>:Nothing<:Any]=>Writer[QueryContent,_$42],Int,_$43],String,B],TaskResult](((`x$1₃`:QueryTask[F,_>:Nothing<:Any])=>`x$1₃`match{ casef:QueryAlgebra.this.QueryTask.Field[f,g,a]=> QueryAlgebra.this.compileNextField[F,g,a,B,ArgType,Q](f.v,passthrough.asInstanceOf[a],f.attr).map[TaskResult](((done:Done[g,_>:Nothing<:Any,B])=>TaskResultImpl.apply[g](f.attr,done)))(catsDataMonadForIndexedStateT[[_$42>:Nothing<:Any]=>Writer[QueryContent,_$42],Int](catsDataMonadForWriterTId[QueryContent](QueryAlgebra.this.monoidForQueryContent))) casef:QueryAlgebra.this.QueryTask.Unification[F,a,b]=> QueryAlgebra.this.compileNextUnification[F,a,Q,b](`f₂`.attr,passthrough.asInstanceOf[a],`f₂`.fields).map[TaskResult](((`done₂`:Done[[A>:Nothing<:Any]=>Option[A],_>:Nothing<:Any,b])=>TaskResultImpl.apply[[A>:Nothing<:Any]=>Option[A]](`f₂`.attr,`done₂`)))(catsDataMonadForIndexedStateT[[_$42>:Nothing<:Any]=>Writer[QueryContent,_$42],Int](catsDataMonadForWriterTId[QueryContent](QueryAlgebra.this.monoidForQueryContent))) }))(catsDataMonadErrorForEitherT[[_$43>:Nothing<:Any]=>StateT[[_$42>:Nothing<:Any]=>Writer[QueryContent,_$42],Int,_$43],String](catsDataMonadForIndexedStateT[[_$42>:Nothing<:Any]=>Writer[QueryContent,_$42],Int](catsDataMonadForWriterTId[QueryContent](QueryAlgebra.this.monoidForQueryContent)))) traitK()extendsObject{ typeG[A]=_>:Nothing<:Any defattr:AnyQueryAttribute[G,_>:Nothing<:Any] } caseclassKImpl[G0[_$59]](`attr₂`:AnyQueryAttribute[G0,_>:Nothing<:Any])extendsK{ overridedefhashCode():Int=_hashCode(KImpl.this) overridedefequals(`x$0₄`:Any):Boolean=KImpl.this.eq(`x$0₄`.$asInstanceOf$[Object]).||(`x$0₄`match{ casex$0:KImpl[G0]@unchecked=> KImpl.this.attr.==(`x$0₅`.attr).&&(`x$0₅`.canEqual(KImpl.this)) case_=> false }) overridedeftoString():String=_toString(KImpl.this) overridedefcanEqual(`that₂`:Any):Boolean=`that₂`.isInstanceOf[KImpl[G0]@unchecked] overridedefproductArity:Int=1 overridedefproductPrefix:String="KImpl" overridedefproductElement(`n₂`:Int):Any=`n₂`match{ case0=> KImpl.this._1 case_=> thrownewIndexOutOfBoundsException(`n₂`.toString()) } typeG[A]=G0[A] } lazyvalKImpl:KImpl=newKImpl() objectKImplextendsAnyRefwithProduct{ overridedeftoString:String="KImpl" typeMirroredMonoType deffromProduct(`x$0₆`:Product):MirroredMonoType=newKImpl[[_$59>:Nothing<:Any]=>Any](`x$0₆`.productElement(0).$asInstanceOf$[AnyQueryAttribute[[_$59>:Nothing<:Any]=>Any,_>:Nothing<:Any]]) } taskResults.map[Done[G,_>:Nothing<:Any,B]](((dones:List[TaskResult])=>{ valdecs:Decoder[Map[K,Any]]=toFunctorOps[Decoder,List[Tuple2[K,Any]]](toTraverseOps[List,TaskResult](dones)(catsStdInstancesForList).flatTraverse[Decoder,Tuple2[K,Any]](((tr:TaskResult)=>toFunctorOps[Decoder,A](tr.d.dec)(QueryAlgebra.this.applicativeForDecoder).map[List[Tuple2[K,Any]]](((`x₂`:A)=>List.apply[Tuple2[K,Any]](ArrowAssoc[KImpl[G]](KImpl.apply[G](tr.attr)).->[A](`x₂`))))))(QueryAlgebra.this.applicativeForDecoder,catsStdInstancesForList))(QueryAlgebra.this.applicativeForDecoder).map[Map[K,Any]](((_$60:List[Tuple2[K,Any]])=>_$60.toMap[K,Any](refl[Tuple2[K,Any]]))) valdoneMap:Map[K,Done[_>:Nothing<:[A>:Nothing<:Any]=>Any,_>:Nothing<:Any,_>:Nothing<:Any]]=dones.map[Tuple2[K,Done[_>:Nothing<:[A>:Nothing<:Any]=>Any,_>:Nothing<:Any,_>:Nothing<:Any]]](((t:TaskResult)=>ArrowAssoc[K]((KImpl.apply[G](t.attr):K)).->[Done[G,_>:Nothing<:Any,_>:Nothing<:Any]](t.d))).toMap[K,Done[_>:Nothing<:[A>:Nothing<:Any]=>Any,_>:Nothing<:Any,_>:Nothing<:Any]](refl[Tuple2[K,Done[_>:Nothing<:[A>:Nothing<:Any]=>Any,_>:Nothing<:Any,_>:Nothing<:Any]]]) valreassocNext:Function1[List[Map[K,Any]],QueryContext[Q]]=((`xs₃`:List[Map[K,Any]])=>{ valkeys:Set[K]=`xs₃`.flatMap[K](((_$61:Map[K,Any])=>_$61.keySet)).toSet[K] valgrouped:Map[K,List[Any]]=keys.toList.map[Tuple2[K,List[Any]]](((`k₂`:K)=>ArrowAssoc[K](`k₂`).->[List[Any]](`xs₃`.flatMap[Any](((_$62:Map[K,Any])=>_$62.get(`k₂`)))))).toMap[K,List[Any]](refl[Tuple2[K,List[Any]]]) finalclass$anon()extendsQueryContext[Q]{ defread[H[_$63],X](tfa:AnyQueryAttribute[H,X]):Option[Either[String,H[X]]]={ val`k₃`:K=KImpl.apply[H](tfa) doneMap.get(`k₃`).flatMap[Either[String,H[X]]](((`x$1₄`:Done[_>:Nothing<:[A>:Nothing<:Any]=>Any,_>:Nothing<:Any,_>:Nothing<:Any])=>`x$1₄`match{ casedone:Done[H,a,_$112]@unchecked=> grouped.get(`k₃`).map[Either[String,H[X]]](((`ys₂`:List[Any])=>`done₃`.reassoc.apply(`ys₂`.asInstanceOf[List[a]]).map[H[X]](((_$64:H[_$112])=>_$64.asInstanceOf[H[X]])))) })) } } (new$anon():QueryContext[Q]) }) QueryAlgebra.this.Done.apply[G,Tuple2[qs.Key,Map[K,Any]],QueryContext[Q]](catsSyntaxTuple2Semigroupal[Decoder,Key,Map[K,Any]](Tuple2.apply[Decoder[Key],Decoder[Map[K,Any]]](qs.decoder,decs)).tupled(QueryAlgebra.this.applicativeForDecoder,QueryAlgebra.this.applicativeForDecoder),((`xs₄`:List[Tuple2[qs.Key,Map[K,Any]]])=>qs.reassoc.apply[Map[K,Any]](`xs₄`).map[G[QueryContext[Q]]](((`gs₂`:T[List[Map[K,Any]]])=>qs.fk.apply[QueryContext[Q]](qs.reassoc.traverse.map[List[Map[K,Any]],QueryContext[Q]](`gs₂`)(((`xs₅`:List[Map[K,Any]])=>reassocNext.apply(`xs₅`)))))))).$asInstanceOf$[Done[G,_>:Nothing<:Any,B]] }))(catsDataMonadForIndexedStateT[[_$42>:Nothing<:Any]=>Writer[QueryContent,_$42],Int](catsDataMonadForWriterTId[QueryContent](QueryAlgebra.this.monoidForQueryContent))) }">QueryAlgebra
Source
QueryAlgebra.scala
def compileToResolver[F[_], G[_], H[_] : Traverse, I, ArgType, O](toplevelArg: EmptyableArg[ArgType])(compiler: (NonEmptyList[I], ArgType, FieldMeta[F]) => F[Map[I, O]])(implicit evidence$5: Traverse[H], F: Applicative[F]): Resolver[F, H[I], H[O]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
def evalQuery[F[_], G[_], I, B, ArgType](xs: NonEmptyList[I], fm: FieldMeta[F], query: Query[G, (Select[I], B)], connection: Transactor[F])(implicit F: Applicative[F], queryable: Queryable[F]): F[Map[I, Either[String, G[QueryContext[B]]]]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
def findNextSel[F[_], A](p: Prepared[F, A]): Option[Selection[F, _]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
def getNextAttributes[F[_], A, B](pdf: PreparedDataField[F, A, B]): List[QueryTask[F, _]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
def getPDFField[F[_], A, B](pdf: PreparedDataField[F, A, B]): Option[PDFField[F]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
def makeTasks[F[_], A, B](ps: PreparedSpecification[F, A, B]): List[QueryTask[F, _]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala

Attributes

Inherited from:
{ val$3$:Tuple2[QueryJoin,Chain[QueryJoin]]=(catsNonEmptyChainOps[QueryJoin](nec).uncons:Tuple2[QueryJoin,Chain[QueryJoin]]@unchecked)match{ caseTuple2(hd,tl)=> Tuple2.apply[QueryJoin,Chain[QueryJoin]](hd,tl) } val`hd₂`:QueryJoin=$3$._1 val`tl₂`:Chain[QueryJoin]=$3$._2 valys:Frag=toFoldableOps[Chain,QueryJoin](`tl₂`)(catsDataInstancesForChain).foldMap[Frag](((x:QueryJoin)=>{ valp:Frag=x.pred valt:Frag=x.tbl catsSyntaxSemigroup[Frag](catsSyntaxSemigroup[Frag](catsSyntaxSemigroup[Frag](catsSyntaxSemigroup[Frag](nl)(QueryAlgebra.this.appliedFragmentMonoid).|+|(QueryAlgebra.this.stringToFrag("leftjoin")))(QueryAlgebra.this.appliedFragmentMonoid).|+|(t))(QueryAlgebra.this.appliedFragmentMonoid).|+|(QueryAlgebra.this.stringToFrag("on")))(QueryAlgebra.this.appliedFragmentMonoid).|+|(p) }))(QueryAlgebra.this.appliedFragmentMonoid) catsSyntaxSemigroup[Frag](catsSyntaxSemigroup[Frag](catsSyntaxSemigroup[Frag](catsSyntaxSemigroup[Frag](catsSyntaxSemigroup[Frag](catsSyntaxSemigroup[Frag](nl)(QueryAlgebra.this.appliedFragmentMonoid).|+|(QueryAlgebra.this.stringToFrag("from")))(QueryAlgebra.this.appliedFragmentMonoid).|+|(`hd₂`.tbl))(QueryAlgebra.this.appliedFragmentMonoid).|+|(ys))(QueryAlgebra.this.appliedFragmentMonoid).|+|(nl))(QueryAlgebra.this.appliedFragmentMonoid).|+|(QueryAlgebra.this.stringToFrag("where")))(QueryAlgebra.this.appliedFragmentMonoid).|+|(`hd₂`.pred) }))(QueryAlgebra.this.appliedFragmentMonoid) catsSyntaxSemigroup[Frag](catsSyntaxSemigroup[Frag](QueryAlgebra.this.stringToFrag("select"))(QueryAlgebra.this.appliedFragmentMonoid).|+|(selections))(QueryAlgebra.this.appliedFragmentMonoid).|+|(suffix) }">QueryAlgebra
Source
QueryAlgebra.scala
def resolveQuery[F[_] : Applicative, G[_], I, B, ArgType](toplevelArg: EmptyableArg[ArgType], q: (NonEmptyList[I], ArgType) => Query[G, (Select[I], B)], connection: Transactor[F]): Resolver[F, I, G[QueryContext[B]]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
def resolveQueryFull[F[_] : Queryable, G[_], H[_], I, B, ArgType](toplevelArg: EmptyableArg[ArgType], q: (NonEmptyList[I], ArgType) => Query[G, (Select[I], B)], connection: Transactor[F])(implicit evidence$1: Queryable[F], F: Applicative[F], H: Reassociateable[H]): Resolver[F, H[I], H[G[QueryContext[B]]]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala
def resolveQuerySingle[F[_] : Queryable, G[_], I, B, ArgType](toplevelArg: EmptyableArg[ArgType], q: (I, ArgType) => Query[G, B], connection: Transactor[F])(implicit evidence$4: Queryable[F], F: Applicative[F]): Resolver[F, I, G[QueryContext[B]]]

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala

Implicits

Implicits

Attributes

Source
DoobieIntegraion.scala
implicit def doobieQueryable[F[_] : MonadCancelThrow]: Queryable[F]

Attributes

Source
DoobieIntegraion.scala

Inherited implicits

Attributes

Inherited from:
QueryAlgebra
Source
QueryAlgebra.scala