Object

quasar.physical.mongodb

MongoDbPlanner

Related Doc: package mongodb

Permalink

object MongoDbPlanner

Linear Supertypes
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 ExecTimeR[F[_]] = MonadReader_[F, Instant]

    Permalink
  2. type OutputM[A] = \/[PlannerError, A]

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

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

    Permalink
  5. trait Planner[F[_]] extends AnyRef

    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 HasInt[M[_], WF[_]](wb: WorkflowBuilder[WF])(implicit arg0: Monad[M], arg1: MonadFsErr[M], ev0: :<:[WorkflowOpCoreF, WF]): M[slamdata.Predef.Long]

    Permalink
    Annotations
    @SuppressWarnings()
  5. def HasLiteral[M[_], WF[_]](wb: WorkflowBuilder[WF])(implicit arg0: Applicative[M], arg1: MonadFsErr[M], ev0: :<:[WorkflowOpCoreF, WF]): M[Bson]

    Permalink
    Annotations
    @SuppressWarnings()
  6. object Planner

    Permalink
  7. val accumulator: (ReduceFunc[Fix[ExprOp]]) ⇒ AccumOp[Fix[ExprOp]]

    Permalink
  8. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  9. def buildWorkflow[T[_[_]], M[_], WF[_], EX[_]](cfg: PlannerConfig[T, EX, WF])(qs: T[[β$71$]Coproduct[[β$5$]QScriptCore[T, β$5$], [A]Coproduct[[β$3$]EquiJoin[T, β$3$], [β$4$]Const[ShiftedRead[Path[Abs, File, Sandboxed]], β$4$], A], β$71$]])(implicit arg0: BirecursiveT[T], arg1: EqualT[T], arg2: RenderTreeT[T], arg3: ShowT[T], arg4: Monad[M], arg5: PhaseResultTell[M], arg6: MonadFsErr[M], arg7: ExecTimeR[M], arg8: Functor[WF], arg9: Coalesce[WF], arg10: Crush[WF], arg11: Traverse[EX], ev0: :<:[WorkflowOpCoreF, WF], ev1: :<:[EX, ExprOp], ev2: RenderTree[Fix[WF]]): M[Fix[WF]]

    Permalink
  10. val check: Check[Fix[ExprOp], ExprOp]

    Permalink
  11. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. def createFieldName(prefix: slamdata.Predef.String, i: slamdata.Predef.Int): slamdata.Predef.String

    Permalink
  13. def defaultSelector[T[_[_]]]: PartialSelector[T]

    Permalink
  14. def ejsonToExpression[M[_], EJ](v: BsonVersion)(ej: EJ)(implicit arg0: Applicative[M], arg1: MonadFsErr[M], EJ: Aux[EJ, EJson]): M[Fix[ExprOp]]

    Permalink
  15. def ejsonToJs[M[_], EJ](ej: EJ)(implicit arg0: Applicative[M], arg1: MonadFsErr[M], arg2: Show[EJ], EJ: Aux[EJ, EJson]): M[JsCore]

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  18. def exprOrJs[M[_], A](a: A)(exf: (A) ⇒ M[Fix[ExprOp]], jsf: (A) ⇒ M[JsFn])(implicit arg0: Applicative[M], arg1: MonadFsErr[M]): M[Expr]

    Permalink
  19. def expression[T[_[_]], M[_], EX[_]](funcHandler: ~>[[β$14$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$14$], [β$15$]Option[Free[EX, β$15$]]])(implicit arg0: RecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: ExecTimeR[M], arg4: MonadFsErr[M], arg5: Traverse[EX], inj: :<:[EX, ExprOp]): AlgebraM[M, [β$16$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$16$], Fix[ExprOp]]

    Permalink
  20. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  21. def findFirst[T[_[_]], F[_], A](f: slamdata.Predef.PartialFunction[T[F], A])(implicit arg0: RecursiveT[T], arg1: Functor[F], arg2: Foldable[F]): CoalgebraM[[β$65$]\/[A, β$65$], F, T[F]]

    Permalink
  22. def generateTypeCheck[In, Out](or: (Out, Out) ⇒ Out)(f: slamdata.Predef.PartialFunction[Type, (In) ⇒ Out]): (Type) ⇒ slamdata.Predef.Option[(In) ⇒ Out]

    Permalink
    Annotations
    @SuppressWarnings()
  23. def getBuilder[T[_[_]], M[_], WF[_], EX[_], A](handler: (FreeMapA[T, A]) ⇒ M[Expr])(src: WorkflowBuilder[WF], fm: FreeMapA[T, A])(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: MonadFsErr[M], arg4: Traverse[EX], ev: :<:[EX, ExprOp]): M[WorkflowBuilder[WF]]

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

    Permalink
    Definition Classes
    AnyRef → Any
  25. def getExpr[T[_[_]], M[_], EX[_]](funcHandler: ~>[[β$47$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$47$], [β$48$]Option[Free[EX, β$48$]]], staticHandler: StaticHandler[T, EX])(fm: FreeMap[T])(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: ExecTimeR[M], arg4: MonadFsErr[M], arg5: Traverse[EX], arg6: Inject[EX, [A]Coproduct[ExprOp3_4F, [A]Coproduct[ExprOp3_2F, [A]Coproduct[ExprOp3_0F, ExprOpCoreF, A], A], A]]): M[Fix[ExprOp]]

    Permalink
  26. def getExprBuilder[T[_[_]], M[_], WF[_], EX[_]](funcHandler: ~>[[β$50$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$50$], [β$51$]Option[Free[EX, β$51$]]], staticHandler: StaticHandler[T, EX])(src: WorkflowBuilder[WF], fm: FreeMap[T])(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: ExecTimeR[M], arg4: MonadFsErr[M], arg5: Traverse[EX], ev: :<:[EX, ExprOp]): M[WorkflowBuilder[WF]]

    Permalink
  27. def getExprMerge[T[_[_]], M[_], EX[_]](funcHandler: ~>[[β$54$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$54$], [β$55$]Option[Free[EX, β$55$]]], staticHandler: StaticHandler[T, EX])(jf: JoinFunc[T], a1: DocVar, a2: DocVar)(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: MonadFsErr[M], arg4: ExecTimeR[M], arg5: Traverse[EX], inj: :<:[EX, ExprOp]): M[Fix[ExprOp]]

    Permalink
  28. def getExprRed[T[_[_]], M[_], EX[_]](funcHandler: ~>[[β$60$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$60$], [β$61$]Option[Free[EX, β$61$]]], staticHandler: StaticHandler[T, EX])(jr: FreeMapA[T, ReduceIndex])(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: ExecTimeR[M], arg4: MonadFsErr[M], arg5: Traverse[EX], ev: :<:[EX, ExprOp]): M[Fix[ExprOp]]

    Permalink
  29. def getJsFn[T[_[_]], M[_]](fm: FreeMap[T])(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: MonadFsErr[M], arg4: ExecTimeR[M]): M[JsFn]

    Permalink
  30. def getJsMerge[T[_[_]], M[_]](jf: JoinFunc[T], a1: JsCore, a2: JsCore)(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: MonadFsErr[M], arg4: ExecTimeR[M]): M[JsFn]

    Permalink
  31. def getJsRed[T[_[_]], M[_]](jr: Free[[β$62$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$62$], ReduceIndex])(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: MonadFsErr[M], arg4: ExecTimeR[M]): M[JsFn]

    Permalink
  32. def getReduceBuilder[T[_[_]], M[_], WF[_], EX[_]](funcHandler: ~>[[β$52$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$52$], [β$53$]Option[Free[EX, β$53$]]], staticHandler: StaticHandler[T, EX])(src: WorkflowBuilder[WF], fm: FreeMapA[T, ReduceIndex])(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: ExecTimeR[M], arg4: MonadFsErr[M], arg5: Traverse[EX], ev: :<:[EX, ExprOp]): M[WorkflowBuilder[WF]]

    Permalink
  33. def getSelector[T[_[_]], M[_], EX[_]](fm: FreeMap[T], galg: GAlgebra[[β$5$](T[[β$4$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$4$]], β$5$), [β$6$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$6$], OutputM[PartialSelector[T]]])(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: MonadFsErr[M], arg4: Traverse[EX], inj: :<:[EX, ExprOp]): OutputM[PartialSelector[T]]

    Permalink
  34. def handleFreeMap[T[_[_]], M[_], EX[_]](funcHandler: ~>[[β$56$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$56$], [β$57$]Option[Free[EX, β$57$]]], staticHandler: StaticHandler[T, EX], fm: FreeMap[T])(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: ExecTimeR[M], arg4: MonadFsErr[M], arg5: Traverse[EX], ev: :<:[EX, ExprOp]): M[Expr]

    Permalink
  35. def handleRedRepair[T[_[_]], M[_], EX[_]](funcHandler: ~>[[β$58$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$58$], [β$59$]Option[Free[EX, β$59$]]], staticHandler: StaticHandler[T, EX], jr: FreeMapA[T, ReduceIndex])(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: ExecTimeR[M], arg4: MonadFsErr[M], arg5: Traverse[EX], ev: :<:[EX, ExprOp]): M[Expr]

    Permalink
  36. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  37. def invoke2Nel[T[_[_]]](x: OutputM[PartialSelector[T]], y: OutputM[PartialSelector[T]])(f: (Selector, Selector) ⇒ Selector): OutputM[PartialSelector[T]]

    Permalink
  38. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  39. def javascript[T[_[_]], M[_]](implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Applicative[M], arg3: MonadFsErr[M], arg4: ExecTimeR[M]): AlgebraM[M, [β$17$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$17$], JsCore]

    Permalink
  40. def liftM[M[_], A](meh: WBM[A])(implicit arg0: Monad[M], arg1: MonadFsErr[M]): M[A]

    Permalink

    Brings a WBM into our M.

  41. def log[M[_], A](label: slamdata.Predef.String, ma: M[A])(implicit arg0: Monad[M], arg1: RenderTree[A], mtell: MonadTell_[M, PhaseResults]): M[A]

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

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

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

    Permalink
    Definition Classes
    AnyRef
  45. def plan[T[_[_]], M[_]](qs: T[[β$83$]Coproduct[[β$5$]QScriptCore[T, β$5$], [A]Coproduct[[β$3$]EquiJoin[T, β$3$], [β$4$]Const[ShiftedRead[Path[Abs, File, Sandboxed]], β$4$], A], β$83$]], queryContext: QueryContext, queryModel: MongoQueryModel, anyDoc: (Collection) ⇒ OptionT[M, BsonDocument])(implicit arg0: BirecursiveT[T], arg1: EqualT[T], arg2: ShowT[T], arg3: RenderTreeT[T], arg4: Monad[M], arg5: PhaseResultTell[M], arg6: MonadFsErr[M], arg7: ExecTimeR[M]): M[Crystallized[WorkflowF]]

    Permalink

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

    Translate the QScript 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.

    anyDoc

    returns any document in the given Collection

  46. def plan0[T[_[_]], M[_], WF[_], EX[_]](anyDoc: (Collection) ⇒ OptionT[M, BsonDocument], cfg: PlannerConfig[T, EX, WF])(qs: T[[β$75$]Coproduct[[β$5$]QScriptCore[T, β$5$], [A]Coproduct[[β$3$]EquiJoin[T, β$3$], [β$4$]Const[ShiftedRead[Path[Abs, File, Sandboxed]], β$4$], A], β$75$]])(implicit arg0: BirecursiveT[T], arg1: EqualT[T], arg2: RenderTreeT[T], arg3: ShowT[T], arg4: Monad[M], arg5: PhaseResultTell[M], arg6: MonadFsErr[M], arg7: ExecTimeR[M], arg8: Traverse[WF], arg9: Coalesce[WF], arg10: Crush[WF], arg11: Crystallize[WF], arg12: Traverse[EX], ev0: :<:[WorkflowOpCoreF, WF], ev1: Ops[WF], ev2: :<:[EX, ExprOp], ev3: RenderTree[Fix[WF]]): M[Crystallized[WF]]

    Permalink
  47. def planExecTime[T[_[_]], M[_]](qs: T[[β$79$]Coproduct[[β$5$]QScriptCore[T, β$5$], [A]Coproduct[[β$3$]EquiJoin[T, β$3$], [β$4$]Const[ShiftedRead[Path[Abs, File, Sandboxed]], β$4$], A], β$79$]], queryContext: QueryContext, queryModel: MongoQueryModel, anyDoc: (Collection) ⇒ OptionT[M, BsonDocument], execTime: Instant)(implicit arg0: BirecursiveT[T], arg1: EqualT[T], arg2: ShowT[T], arg3: RenderTreeT[T], arg4: Monad[M], arg5: PhaseResultTell[M], arg6: MonadFsErr[M]): M[Crystallized[WorkflowF]]

    Permalink
  48. def processMapFunc[T[_[_]], M[_], A](fm: FreeMapA[T, A])(recovery: (A) ⇒ JsCore)(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: MonadFsErr[M], arg4: ExecTimeR[M]): M[JsCore]

    Permalink
  49. def processMapFuncExpr[T[_[_]], M[_], EX[_], A](funcHandler: ~>[[β$0$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$0$], [β$1$]Option[Free[EX, β$1$]]], staticHandler: StaticHandler[T, EX])(fm: FreeMapA[T, A])(recovery: (A) ⇒ Fix[ExprOp])(implicit arg0: BirecursiveT[T], arg1: ShowT[T], arg2: Monad[M], arg3: ExecTimeR[M], arg4: MonadFsErr[M], arg5: Traverse[EX], inj: :<:[EX, ExprOp]): M[Fix[ExprOp]]

    Permalink
  50. def rebaseWB[T[_[_]], M[_], WF[_], EX[_]](cfg: PlannerConfig[T, EX, WF], free: FreeQS[T], src: WorkflowBuilder[WF])(implicit arg0: EqualT[T], arg1: Monad[M], arg2: ExecTimeR[M], arg3: MonadFsErr[M], arg4: Functor[WF], arg5: Coalesce[WF], arg6: Crush[WF], arg7: Traverse[EX], F: Aux[T, [β$63$]Coproduct[[β$0$]QScriptCore[T, β$0$], [β$1$]Coproduct[[β$2$]ProjectBucket[T, β$2$], [β$3$]Coproduct[[β$4$]ThetaJoin[T, β$4$], [β$5$]Coproduct[[β$6$]EquiJoin[T, β$6$], [β$7$]Coproduct[[β$8$]Const[ShiftedRead[Path[Abs, Dir, Sandboxed]], β$8$], [β$9$]Coproduct[[β$10$]Const[ShiftedRead[Path[Abs, File, Sandboxed]], β$10$], [β$11$]Coproduct[[β$12$]Const[Read[Path[Abs, Dir, Sandboxed]], β$12$], [β$13$]Coproduct[[β$14$]Const[Read[Path[Abs, File, Sandboxed]], β$14$], [β$15$]Const[DeadEnd, β$15$], β$13$], β$11$], β$9$], β$7$], β$5$], β$3$], β$1$], β$63$]], ev0: :<:[WorkflowOpCoreF, WF], ev1: RenderTree[WorkflowBuilder[WF]], ev2: Ops[WF], ev3: :<:[EX, ExprOp]): M[WorkflowBuilder[WF]]

    Permalink
  51. def selector[T[_[_]]](v: BsonVersion)(implicit arg0: RecursiveT[T], arg1: ShowT[T]): GAlgebra[[β$23$](T[[β$22$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$22$]], β$23$), [β$24$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$24$], OutputM[PartialSelector[T]]]

    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.

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

    Permalink
    Definition Classes
    AnyRef
  53. def toMongoQScript[T[_[_]], M[_]](anyDoc: (Collection) ⇒ OptionT[M, BsonDocument], qs: T[[β$66$]Coproduct[[β$5$]QScriptCore[T, β$5$], [A]Coproduct[[β$3$]EquiJoin[T, β$3$], [β$4$]Const[ShiftedRead[Path[Abs, File, Sandboxed]], β$4$], A], β$66$]])(implicit arg0: BirecursiveT[T], arg1: EqualT[T], arg2: RenderTreeT[T], arg3: ShowT[T], arg4: Monad[M], arg5: MonadFsErr[M], arg6: PhaseResultTell[M], BR: Branches[T, [β$67$]Coproduct[[β$5$]QScriptCore[T, β$5$], [A]Coproduct[[β$3$]EquiJoin[T, β$3$], [β$4$]Const[ShiftedRead[Path[Abs, File, Sandboxed]], β$4$], A], β$67$]]): M[T[[β$68$]Coproduct[[β$5$]QScriptCore[T, β$5$], [A]Coproduct[[β$3$]EquiJoin[T, β$3$], [β$4$]Const[ShiftedRead[Path[Abs, File, Sandboxed]], β$4$], A], β$68$]]]

    Permalink
  54. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  55. def typeSelector[T[_[_]]](implicit arg0: RecursiveT[T], arg1: ShowT[T]): GAlgebra[[β$20$](T[[β$19$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$19$]], β$20$), [β$21$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$21$], OutputM[PartialSelector[T]]]

    Permalink
  56. def unimplemented[M[_], A](label: slamdata.Predef.String)(implicit arg0: MonadFsErr[M]): M[A]

    Permalink
  57. final def wait(): Unit

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

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

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

Inherited from AnyRef

Inherited from Any

Ungrouped