Object

quasar.physical.mongodb.planner

MongoDbPlanner

Related Doc: package planner

Permalink

object MongoDbPlanner

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

Type Members

  1. type OutputM[A] = \/[PlannerError, A]

    Permalink
  2. type Partial[In, Out] = (slamdata.Predef.PartialFunction[slamdata.Predef.List[In], Out], slamdata.Predef.List[InputFinder])

    Permalink
  3. type PartialJs = (slamdata.Predef.PartialFunction[slamdata.Predef.List[JsFn], JsFn], slamdata.Predef.List[InputFinder])

    Permalink
  4. type PartialSelector = (slamdata.Predef.PartialFunction[slamdata.Predef.List[BsonField], Selector], slamdata.Predef.List[InputFinder])

    Permalink

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. def alignJoinsƒ: (LogicalPlan[Fix[LogicalPlan]]) ⇒ OutputM[Fix[LogicalPlan]]

    Permalink
  5. val annotateƒ: (LogicalPlan[(Fix[LogicalPlan], (OutputM[PartialSelector], OutputM[PartialJs]))]) ⇒ (OutputM[PartialSelector], OutputM[PartialJs])

    Permalink
  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def assumeReadObjƒ: AlgebraM[[β$4$]\/[PlannerError, β$4$], LogicalPlan, Fix[LogicalPlan]]

    Permalink

    To be used by backends that require collections to contain Obj, this looks at type checks on Read then either eliminates them if they are trivial, leaves them if they check field contents, or errors if they are incompatible.

  8. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. val elideJoinCheckƒ: (Fix[LogicalPlan]) ⇒ LogicalPlan[LPorLP]

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  12. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. def generateTypeCheck[In, Out](or: (Out, Out) ⇒ Out)(f: slamdata.Predef.PartialFunction[Type, (In) ⇒ Out]): (Type) ⇒ slamdata.Predef.Option[(In) ⇒ Out]

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

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

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

    Permalink
    Definition Classes
    Any
  17. val jsExprƒ: Algebra[LogicalPlan, OutputM[PartialJs]]

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

    Permalink
    Definition Classes
    AnyRef
  19. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  21. implicit def partialJsRenderTree: RenderTree[PartialJs]

    Permalink
  22. implicit def partialSelRenderTree(implicit S: RenderTree[Selector]): RenderTree[PartialSelector]

    Permalink
  23. def plan[M[_]](logical: Fix[LogicalPlan], queryContext: QueryContext[M]): EitherT[[β$11$]WriterT[[X]X, Vector[PhaseResult], β$11$], PlannerError, Crystallized[WorkflowF]]

    Permalink

    Translate the high-level "logical" plan to an executable MongoDB "physical" plan, taking into account the current runtime environment as captured by the given context.

    Translate the high-level "logical" plan to an executable MongoDB "physical" plan, taking into account the current runtime environment as captured by the given context. Internally, the type of the plan being built constrains which operators can be used, but the resulting plan uses the largest, common type so that callers don't need to worry about it.

  24. def plan0[WF[_], EX[_]](joinHandler: JoinHandler[WF, M], funcHandler: FuncHandler[Fix, EX])(logical: Fix[LogicalPlan])(implicit arg0: Functor[WF], arg1: Coalesce[WF], arg2: Crush[WF], arg3: Crystallize[WF], arg4: Traverse[EX], ev0: :<:[WorkflowOpCoreF, WF], ev1: RenderTree[Fix[WF]], ev2: :<:[ExprOpCoreF, EX], ev3: :<:[EX, ExprOp]): EitherT[[β$5$]WriterT[[X]X, Vector[PhaseResult], β$5$], PlannerError, Crystallized[WF]]

    Permalink
  25. def removeTypecheckFilters: AlgebraM[[β$3$]\/[PlannerError, β$3$], LogicalPlan, Fix[LogicalPlan]]

    Permalink

    In QScript mongo we will not remove typecheck filters and this will be deleted.

  26. val selectorƒ: GAlgebra[[β$0$](Fix[LogicalPlan], β$0$), LogicalPlan, OutputM[PartialSelector]]

    Permalink

    The selector phase tries to turn expressions into MongoDB selectors -- i.e.

    The selector phase tries to turn expressions into MongoDB selectors -- i.e. Mongo query expressions. Selectors are only used for the filtering pipeline op, so it's quite possible we build more stuff than is needed (but it doesn't matter, unneeded annotations will be ignored by the pipeline phase).

    Like the expression op phase, this one requires bson field annotations.

    Most expressions cannot be turned into selector expressions without using the "$where" operator, which allows embedding JavaScript code. Unfortunately, using this operator turns filtering into a full table scan. We should do a pass over the tree to identify partial boolean expressions which can be turned into selectors, factoring out the leftovers for conversion using $where.

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  29. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. def workflowƒ[F[_], EX[_]](joinHandler: JoinHandler[F, M], funcHandler: FuncHandler[Fix, EX])(implicit arg0: Functor[F], arg1: Coalesce[F], arg2: Crush[F], arg3: Crystallize[F], arg4: Traverse[EX], ev0: :<:[WorkflowOpCoreF, F], ev1: RenderTree[WorkflowBuilder[F]], ev2: :<:[ExprOpCoreF, EX], inj: :<:[EX, ExprOp], WB: Ops[F]): (LogicalPlan[Cofree[LogicalPlan, ((OutputM[PartialSelector], OutputM[PartialJs]), OutputM[WorkflowBuilder[F]])]]) ⇒ State[NameGen, OutputM[WorkflowBuilder[F]]]

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped