package
workflow
Type Members
-
final
case class
$FlatMapF[A](src: A, fn: AnonFunDecl, scope: Scope) extends MapReduceF[A] with Product with Serializable
-
final
case class
$FoldLeftF[A](head: A, tail: NonEmptyList[A]) extends WorkflowOpCoreF[A] with Product with Serializable
-
final
case class
$GeoNearF[A](src: A, near: (slamdata.Predef.Double, slamdata.Predef.Double), distanceField: BsonField, limit: slamdata.Predef.Option[slamdata.Predef.Int], maxDistance: slamdata.Predef.Option[slamdata.Predef.Double], query: slamdata.Predef.Option[Selector], spherical: slamdata.Predef.Option[slamdata.Predef.Boolean], distanceMultiplier: slamdata.Predef.Option[slamdata.Predef.Double], includeLocs: slamdata.Predef.Option[BsonField], uniqueDocs: slamdata.Predef.Option[slamdata.Predef.Boolean]) extends WorkflowOpCoreF[A] with Product with Serializable
-
-
final
case class
$LimitF[A](src: A, count: slamdata.Predef.Long) extends WorkflowOpCoreF[A] with Product with Serializable
-
-
final
case class
$MapF[A](src: A, fn: AnonFunDecl, scope: Scope) extends MapReduceF[A] with Product with Serializable
-
final
case class
$MatchF[A](src: A, selector: Selector) extends WorkflowOpCoreF[A] with Product with Serializable
-
final
case class
$OutF[A](src: A, collection: CollectionName) extends WorkflowOpCoreF[A] with Product with Serializable
-
final
case class
$ProjectF[A](src: A, shape: Reshape[ExprOp], idExclusion: IdHandling) extends WorkflowOpCoreF[A] with Product with Serializable
-
final
case class
$PureF(value: Bson) extends WorkflowOpCoreF[slamdata.Predef.Nothing] with Product with Serializable
-
final
case class
$ReadF(coll: Collection) extends WorkflowOpCoreF[slamdata.Predef.Nothing] with Product with Serializable
-
final
case class
$RedactF[A](src: A, value: Fix[ExprOp]) extends WorkflowOpCoreF[A] with Product with Serializable
-
final
case class
$ReduceF[A](src: A, fn: AnonFunDecl, scope: Scope) extends MapReduceF[A] with Product with Serializable
-
final
case class
$SampleF[A](src: A, size: slamdata.Predef.Int) extends WorkflowOp3_2F[A] with Product with Serializable
-
final
case class
$SimpleMapF[A](src: A, exprs: NonEmptyList[CardinalExpr[JsFn]], scope: Scope) extends MapReduceF[A] with Product with Serializable
-
final
case class
$SkipF[A](src: A, count: slamdata.Predef.Long) extends WorkflowOpCoreF[A] with Product with Serializable
-
final
case class
$SortF[A](src: A, value: NonEmptyList[(BsonField, SortDir)]) extends WorkflowOpCoreF[A] with Product with Serializable
-
final
case class
$UnwindF[A](src: A, field: DocVar) extends WorkflowOpCoreF[A] with Product with Serializable
-
sealed abstract
class
CardinalExpr[A] extends AnyRef
-
trait
Classify[F[_]] extends Serializable
-
trait
Coalesce[F[_]] extends Serializable
-
trait
Crush[F[_]] extends Serializable
-
trait
Crystallize[F[_]] extends Serializable
-
final
case class
Crystallized[F[_]](op: Fix[F]) extends Product with Serializable
-
type
FixOp[F[_]] = (Fix[F]) ⇒ Fix[F]
-
final
case class
FlatExpr[A](fn: A) extends CardinalExpr[A] with Product with Serializable
-
sealed abstract
class
IdHandling extends AnyRef
-
final
case class
MapExpr[A](fn: A) extends CardinalExpr[A] with Product with Serializable
-
-
-
final
case class
PipelineOp(op: WorkflowF[slamdata.Predef.Unit], bson: Doc) extends Product with Serializable
-
trait
Refs[F[_]] extends Serializable
-
abstract
class
RewriteRefs[F[_]] extends AnyRef
-
-
abstract
class
SingleSourceF[F[_], A] extends AnyRef
-
final
case class
SourceF[F[_], A](wf: F[A]) extends Product with Serializable
-
type
Workflow = Fix[WorkflowF]
-
-
-
-
sealed abstract
class
WorkflowOp3_2F[+A] extends AnyRef
-
sealed abstract
class
WorkflowOpCoreF[+A] extends slamdata.Predef.Product with slamdata.Predef.Serializable
Value Members
-
object
$FlatMapF extends Serializable
-
object
$MapF extends Serializable
-
object
$ProjectF extends Serializable
-
object
$RedactF extends Serializable
-
object
$ReduceF extends Serializable
-
object
$SimpleMapF extends Serializable
-
object
$SortF extends Serializable
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
object
Classify extends Serializable
-
object
Coalesce extends Serializable
-
object
Crush extends Serializable
-
object
Crystallize extends Serializable
-
object
Crystallized extends Serializable
-
object
ExcludeId extends IdHandling with Product with Serializable
-
val
ExprLabel: String
-
val
ExprName: Name
-
val
ExprVar: DocVar
-
-
val
IdLabel: String
-
val
IdName: Name
-
-
object
IgnoreId extends IdHandling with Product with Serializable
-
object
IncludeId extends IdHandling with Product with Serializable
-
-
-
-
-
object
PipelineOp extends Serializable
-
-
object
Refs extends Serializable
-
-
-
def
chain[A](src: A, op1: (A) ⇒ A, ops: (A) ⇒ A*): A
-
def
coalesceAll[F[_]](implicit arg0: Functor[F], I: :<:[WorkflowOpCoreF, F]): Coalesce[F]
-
-
def
prefixBase(base: DocVar): slamdata.Predef.PartialFunction[DocVar, DocVar]
-
def
simpleShape[F[_]](op: Fix[F])(implicit I: :<:[F, Workflow3_2F]): slamdata.Predef.Option[slamdata.Predef.List[Name]]
-
def
task[F[_]](fop: Crystallized[F])(implicit arg0: Functor[F], C: Crush[F]): WorkflowTask
-
def
toPipelineOp[F[_], A](op: PipelineF[F, A], base: DocVar)(implicit arg0: Functor[F], I: :<:[F, WorkflowF]): PipelineOp
-
-
implicit
def
workflowRenderTree[T[_[_]], F[_]](implicit arg0: RecursiveT[T], arg1: Traverse[F], arg2: Classify[F], ev0: :<:[WorkflowOpCoreF, F], ev1: RenderTree[F[slamdata.Predef.Unit]]): RenderTree[T[F]]
Inherited from AnyRef
Inherited from Any
A Workflow is a graph of atomic operations, with WorkflowOps for the vertices. We crush them down into a WorkflowTask. This
crush
gives us a location to optimize our workflow decisions. EG, A sequence of simple ops may be combined into a single pipeline request, but if one of those operations contains JS, we have to execute that outside of a pipeline, possibly reordering the other operations to avoid having two pipelines with a JS operation in the middle.We also implement the optimizations atomic http://docs.mongodb.org/manual/core/aggregation-pipeline-optimization/ so that we can build others potentially on top of them (including reordering non-pipelines around pipelines, etc.).