class ComponentElaborator[F[_]] extends Phase
A compiler phase which partitions a query for execution by multiple composed mappings.
This phase transforms the input query by assigning subtrees to component
mappings as specified by the supplied cmapping
.
The mapping has Type
and field name pairs as keys and mapping and
join function pairs as values. When the traversal of the input query
visits a Select
node with type Type.field name
it will replace the
Select
with a Component
node comprising,
1. the mapping which will be responsible for evaluating the subquery. 2. A join function which will be called during interpretation with,
i) The deferred subquery. ii) the cursor at that point in evaluation.
This join function is responsible for computing the continuation query which will be evaluated by the responsible interpreter.
Because the join is provided with the cursor of the parent interpreter the subquery can be parameterised with values derived from the parent query.
- Source
- compiler.scala
- Alphabetic
- By Inheritance
- ComponentElaborator
- Phase
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val TypenameType: ObjectType
- Definition Classes
- Phase
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def transform(query: Query): Elab[Query]
Transform the supplied query algebra term
query
.Transform the supplied query algebra term
query
.- Definition Classes
- ComponentElaborator → Phase
- def transformSelect(fieldName: String, alias: Option[String], child: Query): Elab[Query]
- Definition Classes
- Phase
- def validateSubselection(fieldName: String, child: Query): Elab[Unit]
- Definition Classes
- Phase
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()