EffectElaborator

grackle.QueryCompiler.EffectElaborator
See theEffectElaborator companion object
class EffectElaborator[F[_]] extends Phase

A compiler phase which partitions a query for execution which may invoke multiple effect handlers.

This phase transforms the input query by assigning subtrees to effect handlers as specified by the supplied emapping.

The mapping has Type and field name pairs as keys and effect handlers as values. When the traversal of the input query visits a Select node with type Type.field name it will replace the Select with an Effect node comprising,

1. the effect handler which will be responsible for running the effect and evaluating the subquery against its result. 2. the subquery which will be evaluated by the effect handler.

Attributes

Companion
object
Source
compiler.scala
Graph
Supertypes
trait Phase
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

override def transform(query: Query): Elab[Query]

Transform the supplied query algebra term query.

Transform the supplied query algebra term query.

Attributes

Definition Classes
Source
compiler.scala

Inherited methods

def transformSelect(fieldName: String, alias: Option[String], child: Query): Elab[Query]

Attributes

Inherited from:
Phase
Source
compiler.scala
def validateSubselection(fieldName: String, child: Query): Elab[Unit]

Attributes

Inherited from:
Phase
Source
compiler.scala

Inherited fields

Attributes

Inherited from:
Phase
Source
compiler.scala