Package

quasar

qscript

Permalink

package qscript

The various representations of an arbitrary query, as seen by the filesystem connectors, along with the operations for dealing with them.

There are a few patterns that are worth noting: - (src: A, ..., lBranch: FreeQS[T], rBranch: FreeQS[T], ...) – used in operations that combine multiple data sources (notably joins and unions). This holds the divergent parts of the data sources in the branches, with SrcHole indicating a reference back to the common src of the two branches. There is not required to be a SrcHole. - Free[F, A] – we use this structure as a restricted form of variable binding, where F is some pattern functor, and A is some enumeration that has a specific referent. E.g., FreeMap is a recursive structure of MapFunc that has a single “variable”, SrcHole, which (usually) refers to the src parameter of that operation. JoinFunc, FreeQS, and the repair parameter to Reduce behave similarly. - We use the type parameter QS[_] to indicate QScript, as well as the type parameters IN[_] and OUT[_] to indicate the input and output coproducts in transformations where they can be different.

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

Type Members

  1. final case class Ann[T[_[_]]](provenance: slamdata.Predef.List[Provenance[T]], values: FreeMap[T]) extends Product with Serializable

    Permalink
  2. sealed abstract class Binary[T[_[_]], A] extends MapFuncCore[T, A]

    Permalink
  3. sealed abstract class BinaryDerived[T[_[_]], A] extends MapFuncDerived[T, A]

    Permalink
  4. implicit final class BirecursiveOps[T[_[_]], F[_]] extends AnyVal

    Permalink
  5. trait Branches[T[_[_]], IN[_]] extends AnyRef

    Permalink
  6. final case class BucketIndex[T[_[_]], A](src: A, value: FreeMap[T], index: FreeMap[T]) extends ProjectBucket[T, A] with Product with Serializable

    Permalink
  7. final case class BucketKey[T[_[_]], A](src: A, value: FreeMap[T], name: FreeMap[T]) extends ProjectBucket[T, A] with Product with Serializable

    Permalink
  8. type CoEnvFree[F[_], A] = CoEnv[A, F, Free[F, A]]

    Permalink
  9. type CoEnvJoin[T[_[_]], A] = CoEnv[JoinSide, [β$75$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$75$], A]

    Permalink
  10. type CoEnvMap[T[_[_]], A] = CoEnv[Hole, [β$75$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$75$], A]

    Permalink
  11. type CoEnvMapA[T[_[_]], A, B] = CoEnv[A, [β$75$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$75$], B]

    Permalink
  12. type CoEnvQS[T[_[_]], A] = CoEnv[Hole, [β$74$]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$], β$74$], A]

    Permalink
  13. trait Coalesce[IN[_]] extends AnyRef

    Permalink

    Rewrites adjacent nodes.

  14. trait CoalesceInstances extends AnyRef

    Permalink
  15. class CoalesceT[T[_[_]]] extends TTypes[T]

    Permalink
  16. sealed abstract class DeadEnd extends AnyRef

    Permalink
  17. trait DiscoverPath[IN[_]] extends AnyRef

    Permalink

    This extracts statically-known paths from QScript queries to make it easier for connectors to map queries to their own filesystems.

  18. abstract class DiscoverPathInstances extends AnyRef

    Permalink
  19. final case class EquiJoin[T[_[_]], A](src: A, lBranch: FreeQS[T], rBranch: FreeQS[T], key: slamdata.Predef.List[(FreeMap[T], FreeMap[T])], f: JoinType, combine: JoinFunc[T]) extends Product with Serializable

    Permalink

    This is an optional component of QScript that can be used instead of ThetaJoin.

    This is an optional component of QScript that can be used instead of ThetaJoin. It’s easier to implement, but more restricted (where ThetaJoin has an arbitrary predicate to determine if a pair of records should be combined, EquiJoin has an expression on each side that is compared with simple equality).

  20. trait ExpandDirs[IN[_]] extends AnyRef

    Permalink

    Converts any {Shifted}Read containing a directory to a union of all the files in that directory.

  21. abstract class ExpandDirsInstances extends AnyRef

    Permalink
  22. trait ExpandMapFunc[IN[_]] extends Serializable

    Permalink
  23. sealed abstract class ExpandMapFuncInstances extends ExpandMapFuncInstancesʹ

    Permalink
  24. sealed abstract class ExpandMapFuncInstancesʹ extends AnyRef

    Permalink
  25. trait ExtractPath[F[_], P] extends AnyRef

    Permalink

    Extracts paths of particular type from QScript, collecting them in the provided ApplicativePlus.

  26. sealed abstract class ExtractPathInstances extends ExtractPathInstances0

    Permalink
  27. sealed abstract class ExtractPathInstances0 extends AnyRef

    Permalink
  28. final case class Filter[T[_[_]], A](src: A, f: FreeMap[T]) extends QScriptCore[T, A] with Product with Serializable

    Permalink

    Eliminates some values from a dataset, based on the result of f (which must evaluate to a boolean value for each element in the set).

  29. type FreeMap[T[_[_]]] = Free[[β$73$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$73$], Hole]

    Permalink
  30. type FreeMapA[T[_[_]], A] = Free[[β$73$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$73$], A]

    Permalink
  31. type FreeQS[T[_[_]]] = Free[[β$72$]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$], β$72$], Hole]

    Permalink
  32. implicit final class FreeQSOps[T[_[_]]] extends AnyVal

    Permalink
  33. sealed abstract class Hole extends AnyRef

    Permalink
  34. sealed abstract class IdStatus extends AnyRef

    Permalink
  35. trait Injectable[IN[_]] extends AnyRef

    Permalink

    This is like scalaz.Inject, but for injecting an arbitrary coproduct where all of the components are in the OUT coproduct in any order.

    This is like scalaz.Inject, but for injecting an arbitrary coproduct where all of the components are in the OUT coproduct in any order.

    It _may_ be unprincipled (otherwise, why not allow scalaz.Inject to work this way directly?) But it is temporarily necessary in order to “inject” our more constrained versions of QScript into QScriptTotal.

  36. type JoinFunc[T[_[_]]] = Free[[β$73$]Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], β$73$], JoinSide]

    Permalink
  37. sealed abstract class JoinSide extends AnyRef

    Permalink
  38. sealed abstract class JoinSide3 extends AnyRef

    Permalink
  39. final case class LeftShift[T[_[_]], A](src: A, struct: FreeMap[T], idStatus: IdStatus, repair: JoinFunc[T]) extends QScriptCore[T, A] with Product with Serializable

    Permalink

    Flattens nested structure, converting each value into a data set, which are then unioned.

    Flattens nested structure, converting each value into a data set, which are then unioned.

    struct is an expression that evaluates to an array or object, which is then “exploded” into multiple values. idStatus indicates what each of those exploded values should look like (either just the value, just the “id” (i.e., the key or index), or a 2-element array of key and value). repair is applied across the new set, integrating the exploded values into the original set.

    E.g., in: LeftShift(x, ProjectKey(SrcHole, "bar"), ExcludeId, ConcatMaps(LeftSide, MakeMap("bar", RightSide))) If x consists of things that look like { foo: 7, bar: [1, 2, 3] }, then that’s what LeftSide is. And RightSide is values like 1, 2, and 3, because that’s what you get from flattening the struct.So then our right-biased quasar.qscript.MapFuncsCore.ConcatMaps says to concat { foo: 7, bar: [1, 2, 3] } with { bar: 1 }, resulting in { foo: 7, bar: 1 } (then again with { foo: 7, bar: 2 } and { foo: 7, bar: 3 }, finishing up the handling of that one element in the original (x) dataset.

  40. final case class Map[T[_[_]], A](src: A, f: FreeMap[T]) extends QScriptCore[T, A] with Product with Serializable

    Permalink

    A data-level transformation.

  41. type MapFunc[T[_[_]], A] = Coproduct[[β$62$]MapFuncCore[T, β$62$], [β$63$]MapFuncDerived[T, β$63$], A]

    Permalink
  42. sealed abstract class MapFuncCore[T[_[_]], A] extends AnyRef

    Permalink
  43. sealed abstract class MapFuncDerived[T[_[_]], A] extends AnyRef

    Permalink
  44. class Merge[T[_[_]]] extends TTypes[T]

    Permalink
  45. trait Mergeable[F[_]] extends Serializable

    Permalink
  46. trait Normalizable[F[_]] extends Serializable

    Permalink
  47. trait NormalizableInstances extends AnyRef

    Permalink
  48. class NormalizableT[T[_[_]]] extends TTypes[T]

    Permalink
  49. sealed abstract class Nullary[T[_[_]], A] extends MapFuncCore[T, A]

    Permalink
  50. sealed abstract class NullaryDerived[T[_[_]], A] extends MapFuncDerived[T, A]

    Permalink
  51. class Optimize[T[_[_]]] extends TTypes[T]

    Permalink
  52. class PAFindRemap[T, F[_]] extends AnyRef

    Permalink
  53. class PAHelpers[T[_[_]]] extends TTypes[T]

    Permalink
  54. trait PreferProjection[F[_], T, B[_]] extends AnyRef

    Permalink

    A rewrite that, where possible, replaces map key deletion with construction of a new map containing the keys in the complement of the singleton set consisting of the deleted key.

    A rewrite that, where possible, replaces map key deletion with construction of a new map containing the keys in the complement of the singleton set consisting of the deleted key.

    Only applies to maps where all keys are known statically.

  55. sealed abstract class PreferProjectionInstances extends AnyRef

    Permalink
  56. sealed abstract class ProjectBucket[T[_[_]], A] extends AnyRef

    Permalink

    Projections are technically dimensional (i.e., QScript) operations.

    Projections are technically dimensional (i.e., QScript) operations. However, to a filesystem, they are merely Map operations. So, we use these components while building the QScript plan and they are then used in static path processing, but they are replaced with equivalent MapFuncsCore before being processed by the filesystem.

  57. trait PruneArrays[F[_]] extends Serializable

    Permalink
  58. type QScript[T[_[_]], A] = Coproduct[[β$36$]QScriptCore[T, β$36$], [A]Coproduct[[β$34$]ThetaJoin[T, β$34$], [β$35$]Const[DeadEnd, β$35$], A], A]

    Permalink

    QScript that has not gone through Read conversion.

  59. sealed abstract class QScriptCore[T[_[_]], A] extends slamdata.Predef.Product with slamdata.Predef.Serializable

    Permalink
  60. type QScriptEducated[T[_[_]], A] = Coproduct[[β$23$]QScriptCore[T, β$23$], [A]Coproduct[[β$20$]ThetaJoin[T, β$20$], [A]Coproduct[[β$21$]Const[Read[Path[Abs, Dir, Sandboxed]], β$21$], [β$22$]Const[Read[Path[Abs, File, Sandboxed]], β$22$], A], A], A]

    Permalink

    Initial QScript.

  61. type QScriptRead[T[_[_]], A] = Coproduct[[β$45$]QScriptCore[T, β$45$], [A]Coproduct[[β$42$]ThetaJoin[T, β$42$], [A]Coproduct[[β$43$]Const[Read[Path[Abs, Dir, Sandboxed]], β$43$], [β$44$]Const[Read[Path[Abs, File, Sandboxed]], β$44$], A], A], A]

    Permalink

    QScript that has gone through Read conversion.

    QScript that has gone through Read conversion.

    NB: Once QScriptTotal goes away, this could become parametric in the path type.

  62. type QScriptShiftRead[T[_[_]], A] = Coproduct[[β$55$]QScriptCore[T, β$55$], [A]Coproduct[[β$52$]ThetaJoin[T, β$52$], [A]Coproduct[[β$53$]Const[ShiftedRead[Path[Abs, Dir, Sandboxed]], β$53$], [β$54$]Const[ShiftedRead[Path[Abs, File, Sandboxed]], β$54$], A], A], A]

    Permalink

    QScript that has gone through Read conversion and shifted conversion.

    QScript that has gone through Read conversion and shifted conversion.

    NB: Once QScriptTotal goes away, this could become parametric in the path type.

  63. type QScriptTotal[T[_[_]], A] = 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$], A]

    Permalink

    This type is _only_ used for join branch-like structures.

    This type is _only_ used for join branch-like structures. It’s an unfortunate consequence of not having mutually-recursive data structures. Once we do, this can go away. It should _not_ be used in other situations.

    NB: We're using the "alias" method of building the coproduct here as it provides a modest reduction in compilation time (~15%) for this module.

  64. type QScriptTotal0[T[_[_]], A] = 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$], A]

    Permalink
  65. type QScriptTotal1[T[_[_]], A] = 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$], A]

    Permalink
  66. type QScriptTotal2[T[_[_]], A] = 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$], A]

    Permalink
  67. type QScriptTotal3[T[_[_]], A] = 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$], A]

    Permalink
  68. type QScriptTotal4[T[_[_]], A] = 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$], A]

    Permalink
  69. type QScriptTotal5[T[_[_]], A] = Coproduct[[β$12$]Const[Read[Path[Abs, Dir, Sandboxed]], β$12$], [β$13$]Coproduct[[β$14$]Const[Read[Path[Abs, File, Sandboxed]], β$14$], [β$15$]Const[DeadEnd, β$15$], β$13$], A]

    Permalink
  70. type QScriptTotal6[T[_[_]], A] = Coproduct[[β$14$]Const[Read[Path[Abs, File, Sandboxed]], β$14$], [β$15$]Const[DeadEnd, β$15$], A]

    Permalink
  71. final case class Read[A](path: A) extends Product with Serializable

    Permalink

    A backend-resolved Root, which is now a path.

  72. final case class Reduce[T[_[_]], A](src: A, bucket: slamdata.Predef.List[FreeMap[T]], reducers: slamdata.Predef.List[ReduceFunc[FreeMap[T]]], repair: FreeMapA[T, ReduceIndex]) extends QScriptCore[T, A] with Product with Serializable

    Permalink

    Performs a reduction over a dataset, with the dataset partitioned by the result of the bucket MapFuncCore.

    Performs a reduction over a dataset, with the dataset partitioned by the result of the bucket MapFuncCore. So, rather than many-to-one, this is many-to-fewer.

    bucket partitions the values into buckets based on the result of the expression, reducers applies the provided reduction to each expression, and repair finally turns those reduced expressions into a final value.

    ReduceIndex is guaranteed to be a valid index into reducers.

  73. sealed abstract class ReduceFunc[A] extends AnyRef

    Permalink
  74. final case class ReduceIndex(idx: \/[slamdata.Predef.Int, slamdata.Predef.Int]) extends Product with Serializable

    Permalink

    Left indexes into the bucket.

    Left indexes into the bucket. Right indexes into the reducers.

  75. trait ReplaceMapFunc[T[_[_]], F[_]] extends AnyRef

    Permalink
  76. trait ReplaceMapFuncInstances extends AnyRef

    Permalink
  77. class Rewrite[T[_[_]]] extends TTypes[T]

    Permalink
  78. sealed abstract class SelectionOp extends AnyRef

    Permalink
  79. trait ShiftRead[F[_]] extends AnyRef

    Permalink

    This optional transformation changes the semantics of Read.

    This optional transformation changes the semantics of Read. The default semantics return a single value, whereas the transformed version has an implied LeftShift and therefore returns a set of values, which more closely matches the way many data stores behave.

  80. trait ShiftReadDir[F[_]] extends AnyRef

    Permalink

    Like ShiftRead, but only applies when the path is a directory, leaving file reads untouched.

  81. sealed abstract class ShiftReadDirInstances extends ShiftReadDirInstances0

    Permalink
  82. sealed abstract class ShiftReadDirInstances0 extends AnyRef

    Permalink
  83. final case class ShiftedRead[A](path: A, idStatus: IdStatus) extends Product with Serializable

    Permalink

    Similar to Read, but returns a dataset with an entry for each record.

    Similar to Read, but returns a dataset with an entry for each record. If idStatus is IncludeId, then it returns a two-element array for each record, with the id at element 0 and the record itself at element 1. If it’s ExcludeId, then it simply returns the record.

  84. class SimplifiableProjectionT[T[_[_]]] extends TTypes[T]

    Permalink
  85. trait SimplifyJoin[F[_]] extends AnyRef

    Permalink

    Replaces ThetaJoin with EquiJoin, which is often more feasible for connectors to implement.

    Replaces ThetaJoin with EquiJoin, which is often more feasible for connectors to implement. It potentially adds a Filter iff there are conditions in the ThetaJoin that can not be handled by an EquiJoin.

  86. trait SimplifyProjection[F[_]] extends AnyRef

    Permalink

    This optional transformation changes the semantics of Read.

    This optional transformation changes the semantics of Read. The default semantics return a single value, whereas the transformed version has an implied LeftShift and therefore returns a set of values, which more closely matches the way many data stores behave.

  87. final case class Sort[T[_[_]], A](src: A, bucket: slamdata.Predef.List[FreeMap[T]], order: NonEmptyList[(FreeMap[T], SortDir)]) extends QScriptCore[T, A] with Product with Serializable

    Permalink

    Sorts values within a bucket.

    Sorts values within a bucket. This can be an _unstable_ sort, but the elements of order must be stably sorted.

  88. final case class SrcMerge[A, B](src: A, lval: B, rval: B) extends Product with Serializable

    Permalink
  89. final case class Subset[T[_[_]], A](src: A, from: FreeQS[T], op: SelectionOp, count: FreeQS[T]) extends QScriptCore[T, A] with Product with Serializable

    Permalink

    Chooses a subset of values from a dataset, given a count.

  90. trait TTypes[T[_[_]]] extends AnyRef

    Permalink

    Centralizes the knowledge of T[_[_]] as well as certain type classes required for many operations.

    Centralizes the knowledge of T[_[_]] as well as certain type classes required for many operations. This is for compilation performance.

  91. final case class Target[T[_[_]], F[_]](ann: Ann[T], value: T[F]) extends Product with Serializable

    Permalink
  92. sealed abstract class Ternary[T[_[_]], A] extends MapFuncCore[T, A]

    Permalink
  93. sealed abstract class TernaryDerived[T[_[_]], A] extends MapFuncDerived[T, A]

    Permalink
  94. final case class ThetaJoin[T[_[_]], A](src: A, lBranch: FreeQS[T], rBranch: FreeQS[T], on: JoinFunc[T], f: JoinType, combine: JoinFunc[T]) extends Product with Serializable

    Permalink

    Applies a function across two datasets, in the cases where the JoinFunc evaluates to true.

    Applies a function across two datasets, in the cases where the JoinFunc evaluates to true. The branches represent the divergent operations applied to some common src. Each branch references the src exactly once. (Since no constructor has more than one recursive component, it’s guaranteed that neither side references the src _more_ than once.)

    This case represents a full θJoin, but we could have an algebra that rewrites it as Filter(_, EquiJoin(...)) to simplify behavior for the backend.

  95. trait Trans[F[_], M[_]] extends AnyRef

    Permalink
  96. class Transform[T[_[_]], F[_]] extends TTypes[T]

    Permalink
  97. sealed abstract class Unary[T[_[_]], A] extends MapFuncCore[T, A]

    Permalink
  98. sealed abstract class UnaryDerived[T[_[_]], A] extends MapFuncDerived[T, A]

    Permalink
  99. sealed trait Unicoalesce[T[_[_]], C <: CoM] extends AnyRef

    Permalink
  100. sealed trait UnicoalesceEJ[T[_[_]], C <: CoM] extends Unicoalesce[T, C]

    Permalink
  101. sealed trait UnicoalesceQC[T[_[_]], C <: CoM] extends Unicoalesce[T, C]

    Permalink
  102. sealed trait UnicoalesceSR[T[_[_]], C <: CoM] extends Unicoalesce[T, C]

    Permalink
  103. sealed trait UnicoalesceTJ[T[_[_]], C <: CoM] extends Unicoalesce[T, C]

    Permalink
  104. final case class Union[T[_[_]], A](src: A, lBranch: FreeQS[T], rBranch: FreeQS[T]) extends QScriptCore[T, A] with Product with Serializable

    Permalink

    Creates a new dataset that contains the elements from the datasets created by each branch.

    Creates a new dataset that contains the elements from the datasets created by each branch. Duplicate values should be eliminated.

  105. sealed trait Unirewrite[T[_[_]], C <: CoM] extends AnyRef

    Permalink
  106. final case class Unreferenced[T[_[_]], A]() extends QScriptCore[T, A] with Product with Serializable

    Permalink

    A placeholder value that can appear in plans, but will never be referenced in the result.

    A placeholder value that can appear in plans, but will never be referenced in the result. We consider this a wart. It should be implemented as an arbitrary value (of cardinality 1) with minimal cost to generate (since it will simply be discarded).

Value Members

  1. def ::/::[T[_[_]], F[_], G[_]](implicit F: :<:[F, [β$99$]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$], β$99$]], G: :<:[G, [β$100$]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$], β$100$]]): Aux[[γ$101$]Coproduct[F, G, γ$101$], [β$102$]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$], β$102$]]

    Permalink
  2. object ::\::

    Permalink
  3. object Ann extends Serializable

    Permalink
  4. object Branches

    Permalink
  5. object BucketIndex extends Serializable

    Permalink
  6. object BucketKey extends Serializable

    Permalink
  7. object Center extends JoinSide3 with Product with Serializable

    Permalink
  8. object Coalesce extends CoalesceInstances

    Permalink
  9. object DeadEnd

    Permalink
  10. object DiscoverPath extends DiscoverPathInstances

    Permalink
  11. object Drop extends SelectionOp with Product with Serializable

    Permalink

    Drops the first count elements from a dataset.

  12. def EmptyAnn[T[_[_]]]: Ann[T]

    Permalink
  13. object EquiJoin extends Serializable

    Permalink
  14. object ExcludeId extends IdStatus with Product with Serializable

    Permalink
  15. object ExpandDirs extends ExpandDirsInstances

    Permalink
  16. object ExpandMapFunc extends ExpandMapFuncInstances with Serializable

    Permalink
  17. object ExtractFunc

    Permalink
  18. object ExtractPath extends ExtractPathInstances

    Permalink
  19. object Filter extends Serializable

    Permalink
  20. object Hole

    Permalink
  21. def HoleF[T[_[_]]]: FreeMap[T]

    Permalink
  22. def HoleQS[T[_[_]]]: FreeQS[T]

    Permalink
  23. object IdOnly extends IdStatus with Product with Serializable

    Permalink
  24. object IdStatus

    Permalink
  25. object IncludeId extends IdStatus with Product with Serializable

    Permalink
  26. object Injectable

    Permalink
  27. object JoinSide

    Permalink
  28. object JoinSide3

    Permalink
  29. object LeftShift extends Serializable

    Permalink
  30. object LeftSide extends JoinSide with Product with Serializable

    Permalink
  31. object LeftSide3 extends JoinSide3 with Product with Serializable

    Permalink
  32. def LeftSideF[T[_[_]]]: JoinFunc[T]

    Permalink
  33. object MFC

    Permalink
  34. object MFD

    Permalink
  35. object Map extends Serializable

    Permalink
  36. object MapFunc

    Permalink
  37. object MapFuncCore

    Permalink
  38. object MapFuncDerived

    Permalink
  39. object MapFuncsCore

    Permalink
  40. object MapFuncsDerived

    Permalink
  41. object Mergeable extends Serializable

    Permalink
  42. object Normalizable extends NormalizableInstances with Serializable

    Permalink
  43. object PATypes

    Permalink
  44. object PreferProjection extends PreferProjectionInstances

    Permalink
  45. object ProjectBucket

    Permalink
  46. object PruneArrays extends Serializable

    Permalink
  47. object QCE

    Permalink
  48. object QCT

    Permalink
  49. object QScriptCore extends Serializable

    Permalink
  50. object Read extends Serializable

    Permalink
  51. object Reduce extends Serializable

    Permalink
  52. object ReduceFunc

    Permalink
  53. object ReduceFuncs

    Permalink
  54. object ReduceIndex extends Serializable

    Permalink
  55. def ReduceIndexF[T[_[_]]](i: \/[slamdata.Predef.Int, slamdata.Predef.Int]): FreeMapA[T, ReduceIndex]

    Permalink
  56. object RenderQScriptDSL

    Permalink
    Annotations
    @SuppressWarnings()
  57. object ReplaceMapFunc extends ReplaceMapFuncInstances

    Permalink
  58. object RightSide extends JoinSide with Product with Serializable

    Permalink
  59. object RightSide3 extends JoinSide3 with Product with Serializable

    Permalink
  60. def RightSideF[T[_[_]]]: JoinFunc[T]

    Permalink
  61. object Root extends DeadEnd with Product with Serializable

    Permalink

    The top level of a filesystem.

    The top level of a filesystem. During compilation this represents /, but in the structure a backend sees, it represents the mount point.

  62. object Sample extends SelectionOp with Product with Serializable

    Permalink

    Similar to Take, but keeps a random sampling of elements.

  63. object SelectionOp

    Permalink
  64. object ShiftRead

    Permalink
  65. object ShiftReadDir extends ShiftReadDirInstances

    Permalink
  66. object ShiftedRead extends Serializable

    Permalink
  67. object SimplifyJoin

    Permalink
  68. object SimplifyProjection

    Permalink
  69. object Sort extends Serializable

    Permalink
  70. object SrcHole extends Hole with Product with Serializable

    Permalink
  71. object Subset extends Serializable

    Permalink
  72. object TTypes

    Permalink
  73. object Take extends SelectionOp with Product with Serializable

    Permalink

    Drops all elements after the first count elements from a dataset.

  74. object Target extends Serializable

    Permalink
  75. object ThetaJoin extends Serializable

    Permalink
  76. object Trans

    Permalink
  77. object Unicoalesce

    Permalink
  78. object UnicoalesceEJ extends UnicoalesceEJLowPriorityImplicits

    Permalink
  79. object UnicoalesceQC extends UnicoalesceQCLowPriorityImplicits

    Permalink
  80. object UnicoalesceSR extends UnicoalesceSRLowPriorityImplicits

    Permalink
  81. object UnicoalesceTJ extends UnicoalesceTJLowPriorityImplicits

    Permalink
  82. object Union extends Serializable

    Permalink
  83. object Unirewrite extends UnirewriteLowPriorityImplicits

    Permalink
  84. object Unreferenced extends Serializable

    Permalink
  85. package analysis

    Permalink
  86. def concat[T[_[_]], A](l: FreeMapA[T, A], r: FreeMapA[T, A])(implicit arg0: BirecursiveT[T], arg1: EqualT[T], arg2: ShowT[T], arg3: RenderTreeT[T], arg4: Equal[A], arg5: Show[A], arg6: RenderTree[A]): (FreeMapA[T, A], FreeMap[T], FreeMap[T])

    Permalink
  87. def concat3[T[_[_]], A](l: FreeMapA[T, A], c: FreeMapA[T, A], r: FreeMapA[T, A])(implicit arg0: BirecursiveT[T], arg1: EqualT[T], arg2: ShowT[T], arg3: RenderTreeT[T], arg4: Equal[A], arg5: Show[A], arg6: RenderTree[A]): (FreeMapA[T, A], FreeMap[T], FreeMap[T], FreeMap[T])

    Permalink
  88. def concat4[T[_[_]], A](l: FreeMapA[T, A], c: FreeMapA[T, A], r: FreeMapA[T, A], r2: FreeMapA[T, A])(implicit arg0: BirecursiveT[T], arg1: EqualT[T], arg2: ShowT[T], arg3: RenderTreeT[T], arg4: Equal[A], arg5: Show[A], arg6: RenderTree[A]): (FreeMapA[T, A], FreeMap[T], FreeMap[T], FreeMap[T], FreeMap[T])

    Permalink
  89. object construction

    Permalink
  90. def educatedToTotal[T[_[_]]]: Aux[[β$24$]Coproduct[[β$23$]QScriptCore[T, β$23$], [A]Coproduct[[β$20$]ThetaJoin[T, β$20$], [A]Coproduct[[β$21$]Const[Read[Path[Abs, Dir, Sandboxed]], β$21$], [β$22$]Const[Read[Path[Abs, File, Sandboxed]], β$22$], A], A], β$24$], [β$25$]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$], β$25$]]

    Permalink
  91. def injectRepeatedly[F[_], G[_], A](op: (F[A]) ⇒ slamdata.Predef.Option[G[A]])(implicit F: :<:[F, G]): (F[A]) ⇒ G[A]

    Permalink

    A variant of repeatedly that works with Inject instances.

    A variant of repeatedly that works with Inject instances.

    Annotations
    @SuppressWarnings()
  92. def liftAlgebra[T[_[_]], F[_], G[_]](alg: (QScriptCore[T, T[G]]) ⇒ F[T[G]], GtoF: PrismNT[G, F])(implicit arg0: BirecursiveT[T], arg1: Functor[G], QC: :<:[[β$110$]QScriptCore[T, β$110$], F]): (F[T[G]]) ⇒ G[T[G]]

    Permalink
  93. def liftCoEnv[T[_[_]], F[_]](alg: (QScriptCore[T, T[[γ$113$]CoEnv[Hole, F, γ$113$]]]) ⇒ F[T[[γ$114$]CoEnv[Hole, F, γ$114$]]])(implicit arg0: BirecursiveT[T], arg1: Functor[F], QC: :<:[[β$115$]QScriptCore[T, β$115$], F]): (CoEnvFree[F, Hole]) ⇒ CoEnvFree[F, Hole]

    Permalink
  94. def liftId[T[_[_]], F[_]](alg: (QScriptCore[T, T[F]]) ⇒ F[T[F]])(implicit arg0: BirecursiveT[T], arg1: Functor[F], QC: :<:[[β$112$]QScriptCore[T, β$112$], F]): (F[T[F]]) ⇒ F[T[F]]

    Permalink
  95. package provenance

    Permalink
  96. implicit def qScriptReadToQscriptTotal[T[_[_]]]: Aux[[β$46$]Coproduct[[β$45$]QScriptCore[T, β$45$], [A]Coproduct[[β$42$]ThetaJoin[T, β$42$], [A]Coproduct[[β$43$]Const[Read[Path[Abs, Dir, Sandboxed]], β$43$], [β$44$]Const[Read[Path[Abs, File, Sandboxed]], β$44$], A], A], β$46$], [β$47$]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$], β$47$]]

    Permalink
  97. implicit def qScriptShiftReadToQScriptTotal[T[_[_]]]: Aux[[β$56$]Coproduct[[β$55$]QScriptCore[T, β$55$], [A]Coproduct[[β$52$]ThetaJoin[T, β$52$], [A]Coproduct[[β$53$]Const[ShiftedRead[Path[Abs, Dir, Sandboxed]], β$53$], [β$54$]Const[ShiftedRead[Path[Abs, File, Sandboxed]], β$54$], A], A], β$56$], [β$57$]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$], β$57$]]

    Permalink
  98. implicit def qScriptToQscriptTotal[T[_[_]]]: Aux[[β$37$]Coproduct[[β$36$]QScriptCore[T, β$36$], [A]Coproduct[[β$34$]ThetaJoin[T, β$34$], [β$35$]Const[DeadEnd, β$35$], A], β$37$], [β$38$]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$], β$38$]]

    Permalink
  99. package qsu

    Permalink
  100. def rebase[M[_], A](in: M[A], key: M[A])(implicit arg0: Bind[M]): M[A]

    Permalink
  101. def rebaseBranch[T[_[_]]](br: FreeQS[T], fm: FreeMap[T])(implicit arg0: BirecursiveT[T], arg1: EqualT[T], arg2: ShowT[T], arg3: RenderTreeT[T]): FreeQS[T]

    Permalink
  102. def rebaseT[T[_[_]], F[_]](target: FreeQS[T])(src: T[F])(implicit arg0: BirecursiveT[T], arg1: Traverse[F], FI: Aux[F, [β$85$]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$], β$85$]]): slamdata.Predef.Option[T[F]]

    Permalink
  103. def rebaseTCo[T[_[_]], F[_]](target: FreeQS[T])(srcCo: T[[γ$87$]CoEnv[Hole, F, γ$87$]])(implicit arg0: BirecursiveT[T], arg1: Traverse[F], FI: Aux[F, [β$88$]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$], β$88$]]): slamdata.Predef.Option[T[[γ$89$]CoEnv[Hole, F, γ$89$]]]

    Permalink

Inherited from AnyRef

Inherited from Any

MRA

Ungrouped