Object

quasar.physical.mongodb

WorkflowBuilder

Related Doc: package mongodb

Permalink

object WorkflowBuilder

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. WorkflowBuilder
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final case class ArrayBuilderF[F[_], A](src: A, shape: slamdata.Predef.List[Expr]) extends WorkflowBuilderF[F, A] with Product with Serializable

    Permalink
  2. sealed trait ArrayContents[+A] extends Contents[A]

    Permalink
  3. final case class ArraySpliceBuilderF[F[_], A](src: A, structure: slamdata.Predef.List[ArrayContents[Expr]]) extends WorkflowBuilderF[F, A] with Product with Serializable

    Permalink
  4. sealed abstract class Base extends AnyRef

    Permalink

    The location of the desired content relative to the current $$ROOT.

    The location of the desired content relative to the current $$ROOT.

    Various transformations (merging, conversion to Workflow, etc.) combine structures that we need to be able to extract later. This tells us how to extract them.

  5. final case class CollectionBuilderF[F[_]](src: Fix[F], base: Base, struct: Schema) extends WorkflowBuilderF[F, slamdata.Predef.Nothing] with Product with Serializable

    Permalink

    Like ValueBuilder, this is a Leaf node which can be used to construct a more complicated WorkflowBuilder.

    Like ValueBuilder, this is a Leaf node which can be used to construct a more complicated WorkflowBuilder. Takes a value resulting from a Workflow and wraps it in a WorkflowBuilder. For example: If you want to read from MongoDB and then project on a field, the read would be the CollectionBuilder.

    base

    Name, or names under which the values produced by the src will be found. It's most often Root, or else it's probably a temporary Field.

    struct

    In the case of read, it's None. In the case where we are converting a WorkflowBuilder into a Workflow, we have access to the shape of this Workflow and encode it in struct.

  6. trait Combine extends AnyRef

    Permalink
  7. sealed abstract class Contents[+A] extends slamdata.Predef.Product with slamdata.Predef.Serializable

    Permalink
  8. final case class DocBuilderF[F[_], A](src: A, shape: slamdata.Predef.ListMap[Name, Expr]) extends WorkflowBuilderF[F, A] with Product with Serializable

    Permalink

    Same as an ExprBuilder but contains the shape of the resulting query.

    Same as an ExprBuilder but contains the shape of the resulting query. The result is a document that maps the field Name to the resulting values from applying the Expr associated with that name. NB: The shape is more restrictive than $project because we may need to convert it to a GroupBuilder, and a nested Reshape can be realized with a chain of DocBuilders, leaving the collapsing to Workflow.coalesce.

  9. sealed abstract class DocContents[+A] extends Contents[A]

    Permalink
  10. type EitherE[X] = \/[PlannerError, X]

    Permalink
  11. type Expr = \/[JsFn, Fix[ExprOp]]

    Permalink

    Either arbitrary javascript expression or Pipeline expression An arbitrary javascript is more powerful but less performant because it gets materialized into a Map/Reduce operation.

  12. final case class ExprBuilderF[F[_], A](src: A, expr: Expr) extends WorkflowBuilderF[F, A] with Product with Serializable

    Permalink

    A query that applies an Expr operator to a source (which could be multiple values).

    A query that applies an Expr operator to a source (which could be multiple values). You can think of Expr as a function application in MongoDB that accepts values and produces new values. It's kind of like a map. The shape coming out of an ExprBuilder is unknown because of the fact that the expression can be arbitrary.

    src

    The values on which to apply the Expr

    expr

    The expression that produces a new set of values given a set of values.

  13. final case class Field(name: BsonField) extends Base with Product with Serializable

    Permalink

    The content is nested in a field under $$ROOT.

  14. final case class FlatteningBuilderF[F[_], A](src: A, fields: slamdata.Predef.Set[StructureType[DocVar]]) extends WorkflowBuilderF[F, A] with Product with Serializable

    Permalink
  15. final case class GroupBuilderF[F[_], A](src: A, keys: slamdata.Predef.List[A], contents: GroupContents) extends WorkflowBuilderF[F, A] with Product with Serializable

    Permalink
  16. type GroupContents = DocContents[GroupValue[Fix[ExprOp]]]

    Permalink
  17. type GroupValue[A] = \/[AccumOp[A], A]

    Permalink
  18. type M[X] = IndexedStateT[EitherE, NameGen, NameGen, X]

    Permalink
  19. final class Ops[F[_]] extends AnyRef

    Permalink
  20. final case class Root() extends Base with Product with Serializable

    Permalink

    The content is already at $$ROOT.

  21. type Schema = Option[NonEmptyList[Name]]

    Permalink

    If we know what the shape is, represents the list of Fields.

  22. final case class ShapePreservingBuilderF[F[_], A](src: A, inputs: slamdata.Predef.List[A], op: slamdata.Predef.PartialFunction[slamdata.Predef.List[BsonField], FixOp[F]]) extends WorkflowBuilderF[F, A] with Product with Serializable

    Permalink

    For instance, $match, $skip, $limit, $sort

  23. final case class SpliceBuilderF[F[_], A](src: A, structure: slamdata.Predef.List[DocContents[Expr]]) extends WorkflowBuilderF[F, A] with Product with Serializable

    Permalink

    Holds a partially-unknown structure.

    Holds a partially-unknown structure. Expr entries are unknown and Doc entries are known. There should be at least one Expr in the list, otherwise it should be a DocBuilder.

  24. sealed abstract class StructureType[A] extends AnyRef

    Permalink
  25. final case class Subset(fields: slamdata.Predef.Set[Name]) extends Base with Product with Serializable

    Permalink

    The content is a subset of the document at $$ROOT.

  26. final case class ValueBuilderF[F[_]](value: Bson) extends WorkflowBuilderF[F, slamdata.Predef.Nothing] with Product with Serializable

    Permalink

    A query that produces a constant value.

  27. type WorkflowBuilder[F[_]] = Fix[[β$7$]WorkflowBuilderF[F, β$7$]]

    Permalink

    A partial description of a query that can be run on an instance of MongoDB

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object ArrayBuilder

    Permalink
  5. object ArraySpliceBuilder

    Permalink
  6. object Base

    Permalink
  7. object CollectionBuilder

    Permalink
  8. object Contents extends Serializable

    Permalink
  9. object DocBuilder

    Permalink
  10. object ExprBuilder

    Permalink
  11. implicit val ExprRenderTree: RenderTree[Expr]

    Permalink
  12. object FlatteningBuilder

    Permalink
  13. object GroupBuilder

    Permalink
  14. object Ops

    Permalink
  15. object ShapePreservingBuilder

    Permalink
  16. object SpliceBuilder

    Permalink
  17. object StructureType

    Permalink
  18. object ValueBuilder

    Permalink
  19. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  20. def asLiteral[F[_]](wb: WorkflowBuilder[F]): slamdata.Predef.Option[Bson]

    Permalink
  21. def build[F[_]](wb: WorkflowBuilder[F])(implicit arg0: Coalesce[F], ev0: :<:[WorkflowOpCoreF, F], ev1: RenderTree[WorkflowBuilder[F]], ev2: Uni[ExprOp]): M[Fix[F]]

    Permalink
  22. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. def commonMap[K, A, B](m: slamdata.Predef.ListMap[K, \/[A, B]])(f: (B) ⇒ \/[PlannerError, A]): \/[PlannerError, \/[slamdata.Predef.ListMap[K, A], slamdata.Predef.ListMap[K, B]]]

    Permalink
  24. def contentsToBuilder[F[_]]: (Contents[Expr]) ⇒ (WorkflowBuilder[F]) ⇒ WorkflowBuilder[F]

    Permalink
  25. def emit[A](a: A): M[A]

    Permalink
  26. def emitSt[A](v: State[NameGen, A]): M[A]

    Permalink
  27. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  28. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  29. def fail[A](e: PlannerError): M[A]

    Permalink
  30. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  31. def findKeys[F[_]](wb: WorkflowBuilder[F]): slamdata.Predef.Option[Base]

    Permalink
    Annotations
    @tailrec()
  32. val fromDocVar: (DocVar) ⇒ Base

    Permalink
  33. def generateWorkflow[F[_]](wb: WorkflowBuilder[F])(implicit arg0: Coalesce[F], ev0: :<:[WorkflowOpCoreF, F], ev1: RenderTree[WorkflowBuilder[F]], ev2: Uni[ExprOp]): M[(Fix[F], Base)]

    Permalink
  34. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  35. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  36. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  37. def lift[A](v: EitherE[A]): M[A]

    Permalink
  38. def mergeContents[A](c1: DocContents[A], c2: DocContents[A]): M[((Base, Base), DocContents[A])]

    Permalink
  39. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  40. def normalize[F[_]](implicit arg0: Coalesce[F], ev0: :<:[WorkflowOpCoreF, F], exprOps: Uni[ExprOp]): (WorkflowBuilderF[F, Fix[[β$19$]WorkflowBuilderF[F, β$19$]]]) ⇒ WorkflowBuilderF[F, Fix[[β$19$]WorkflowBuilderF[F, β$19$]]]

    Permalink
  41. def normalizeƒ[F[_]](implicit arg0: Coalesce[F], ev0: :<:[WorkflowOpCoreF, F], exprOps: Uni[ExprOp]): (WorkflowBuilderF[F, Fix[[β$18$]WorkflowBuilderF[F, β$18$]]]) ⇒ slamdata.Predef.Option[WorkflowBuilderF[F, Fix[[β$19$]WorkflowBuilderF[F, β$19$]]]]

    Permalink

    Simplify/coalesce certain shapes, eliminating extra layers that make it harder to pattern match.

    Simplify/coalesce certain shapes, eliminating extra layers that make it harder to pattern match. Should be applied before objectConcat, arrayConcat, or merge.

  42. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  43. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  44. def shift[F[_]](base: Base, struct: Schema, graph: Fix[F])(implicit arg0: Coalesce[F], ev: :<:[WorkflowOpCoreF, F]): (Fix[F], Base)

    Permalink
  45. def swapM[A](v: State[NameGen, \/[PlannerError, A]]): M[A]

    Permalink
  46. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  47. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  48. val unflipped: Combine

    Permalink
  49. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  50. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  51. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped