Packages

class ExpressionSet extends Iterable[Expression]

A Set where membership is determined based on determinacy and a canonical representation of an Expression (i.e. one that attempts to ignore cosmetic differences). See Canonicalize for more details.

Internally this set uses the canonical representation, but keeps also track of the original expressions to ease debugging. Since different expressions can share the same canonical representation, this means that operations that extract expressions from this set are only guaranteed to see at least one such expression. For example:

val set = ExpressionSet(a + 1, 1 + a)

set.iterator => Iterator(a + 1)
set.contains(a + 1) => true
set.contains(1 + a) => true
set.contains(a + 2) => false

For non-deterministic expressions, they are always considered as not contained in the Set. On adding a non-deterministic expression, simply append it to the original expressions. This is consistent with how we define semanticEquals between two expressions.

Linear Supertypes
Iterable[Expression], IterableLike[Expression, Iterable[Expression]], Equals, GenIterable[Expression], GenIterableLike[Expression, Iterable[Expression]], Traversable[Expression], GenTraversable[Expression], GenericTraversableTemplate[Expression, Iterable], TraversableLike[Expression, Iterable[Expression]], GenTraversableLike[Expression, Iterable[Expression]], Parallelizable[Expression, ParIterable[Expression]], TraversableOnce[Expression], GenTraversableOnce[Expression], FilterMonadic[Expression, Iterable[Expression]], HasNewBuilder[Expression, Iterable[org.apache.spark.sql.catalyst.expressions.Expression] @scala.annotation.unchecked.uncheckedVariance], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ExpressionSet
  2. Iterable
  3. IterableLike
  4. Equals
  5. GenIterable
  6. GenIterableLike
  7. Traversable
  8. GenTraversable
  9. GenericTraversableTemplate
  10. TraversableLike
  11. GenTraversableLike
  12. Parallelizable
  13. TraversableOnce
  14. GenTraversableOnce
  15. FilterMonadic
  16. HasNewBuilder
  17. AnyRef
  18. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ExpressionSet(baseSet: Set[Expression] = new mutable.HashSet, originals: Buffer[Expression] = new ArrayBuffer)
    Attributes
    protected

Type Members

  1. type Self = Iterable[Expression]
    Attributes
    protected[this]
    Definition Classes
    TraversableLike
  2. class WithFilter extends FilterMonadic[A, Repr]
    Definition Classes
    TraversableLike

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def +(elem: Expression): ExpressionSet
  4. def ++(elems: GenTraversableOnce[Expression]): ExpressionSet
  5. def ++[B >: Expression, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Iterable[Expression], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike
  6. def ++:[B >: Expression, That](that: Traversable[B])(implicit bf: CanBuildFrom[Iterable[Expression], B, That]): That
    Definition Classes
    TraversableLike
  7. def ++:[B >: Expression, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Iterable[Expression], B, That]): That
    Definition Classes
    TraversableLike
  8. def -(elem: Expression): ExpressionSet
  9. def --(elems: GenTraversableOnce[Expression]): ExpressionSet
  10. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. def add(e: Expression): Unit
    Attributes
    protected
  12. def addString(b: StringBuilder): StringBuilder
    Definition Classes
    TraversableOnce
  13. def addString(b: StringBuilder, sep: String): StringBuilder
    Definition Classes
    TraversableOnce
  14. def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder
    Definition Classes
    TraversableOnce
  15. def aggregate[B](z: ⇒ B)(seqop: (B, Expression) ⇒ B, combop: (B, B) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  16. def apply(elem: Expression): Boolean
  17. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  18. def canEqual(that: Any): Boolean
    Definition Classes
    IterableLike → Equals
  19. def clone(): ExpressionSet
    Definition Classes
    ExpressionSet → AnyRef
  20. def collect[B, That](pf: PartialFunction[Expression, B])(implicit bf: CanBuildFrom[Iterable[Expression], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike
  21. def collectFirst[B](pf: PartialFunction[Expression, B]): Option[B]
    Definition Classes
    TraversableOnce
  22. def companion: GenericCompanion[Iterable]
    Definition Classes
    Iterable → GenIterable → Traversable → GenTraversable → GenericTraversableTemplate
  23. def contains(elem: Expression): Boolean
  24. def copyToArray[B >: Expression](xs: Array[B], start: Int, len: Int): Unit
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  25. def copyToArray[B >: Expression](xs: Array[B]): Unit
    Definition Classes
    TraversableOnce → GenTraversableOnce
  26. def copyToArray[B >: Expression](xs: Array[B], start: Int): Unit
    Definition Classes
    TraversableOnce → GenTraversableOnce
  27. def copyToBuffer[B >: Expression](dest: Buffer[B]): Unit
    Definition Classes
    TraversableOnce
  28. def count(p: (Expression) ⇒ Boolean): Int
    Definition Classes
    TraversableOnce → GenTraversableOnce
  29. def diff(that: ExpressionSet): ExpressionSet
  30. def drop(n: Int): Iterable[Expression]
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike
  31. def dropRight(n: Int): Iterable[Expression]
    Definition Classes
    IterableLike
  32. def dropWhile(p: (Expression) ⇒ Boolean): Iterable[Expression]
    Definition Classes
    TraversableLike → GenTraversableLike
  33. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  34. def equals(obj: Any): Boolean
    Definition Classes
    ExpressionSet → Equals → AnyRef → Any
  35. def exists(p: (Expression) ⇒ Boolean): Boolean
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  36. def filter(p: (Expression) ⇒ Boolean): ExpressionSet
    Definition Classes
    ExpressionSet → TraversableLike → GenTraversableLike
  37. def filterNot(p: (Expression) ⇒ Boolean): ExpressionSet
    Definition Classes
    ExpressionSet → TraversableLike → GenTraversableLike
  38. def find(p: (Expression) ⇒ Boolean): Option[Expression]
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  39. def flatMap(f: (Expression) ⇒ Iterable[Expression]): ExpressionSet
  40. def flatMap[B, That](f: (Expression) ⇒ GenTraversableOnce[B])(implicit bf: CanBuildFrom[Iterable[Expression], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike → FilterMonadic
  41. def flatten[B](implicit asTraversable: (Expression) ⇒ GenTraversableOnce[B]): Iterable[B]
    Definition Classes
    GenericTraversableTemplate
  42. def fold[A1 >: Expression](z: A1)(op: (A1, A1) ⇒ A1): A1
    Definition Classes
    TraversableOnce → GenTraversableOnce
  43. def foldLeft[B](z: B)(op: (B, Expression) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  44. def foldRight[B](z: B)(op: (Expression, B) ⇒ B): B
    Definition Classes
    IterableLike → TraversableOnce → GenTraversableOnce
  45. def forall(p: (Expression) ⇒ Boolean): Boolean
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  46. def foreach[U](f: (Expression) ⇒ U): Unit
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike → TraversableOnce → GenTraversableOnce → FilterMonadic
  47. def genericBuilder[B]: Builder[B, Iterable[B]]
    Definition Classes
    GenericTraversableTemplate
  48. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  49. def groupBy[K](f: (Expression) ⇒ K): Map[K, Iterable[Expression]]
    Definition Classes
    TraversableLike → GenTraversableLike
  50. def grouped(size: Int): Iterator[Iterable[Expression]]
    Definition Classes
    IterableLike
  51. def hasDefiniteSize: Boolean
    Definition Classes
    TraversableLike → TraversableOnce → GenTraversableOnce
  52. def hashCode(): Int
    Definition Classes
    ExpressionSet → AnyRef → Any
  53. def head: Expression
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike
  54. def headOption: Option[Expression]
    Definition Classes
    TraversableLike → GenTraversableLike
  55. def init: Iterable[Expression]
    Definition Classes
    TraversableLike → GenTraversableLike
  56. def inits: Iterator[Iterable[Expression]]
    Definition Classes
    TraversableLike
  57. def intersect(that: ExpressionSet): ExpressionSet
  58. def isEmpty: Boolean
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  59. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  60. final def isTraversableAgain: Boolean
    Definition Classes
    TraversableLike → GenTraversableLike → GenTraversableOnce
  61. def iterator: Iterator[Expression]
    Definition Classes
    ExpressionSet → IterableLike → GenIterableLike
  62. def last: Expression
    Definition Classes
    TraversableLike → GenTraversableLike
  63. def lastOption: Option[Expression]
    Definition Classes
    TraversableLike → GenTraversableLike
  64. def map(f: (Expression) ⇒ Expression): ExpressionSet
  65. def map[B, That](f: (Expression) ⇒ B)(implicit bf: CanBuildFrom[Iterable[Expression], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike → FilterMonadic
  66. def max[B >: Expression](implicit cmp: Ordering[B]): Expression
    Definition Classes
    TraversableOnce → GenTraversableOnce
  67. def maxBy[B](f: (Expression) ⇒ B)(implicit cmp: Ordering[B]): Expression
    Definition Classes
    TraversableOnce → GenTraversableOnce
  68. def min[B >: Expression](implicit cmp: Ordering[B]): Expression
    Definition Classes
    TraversableOnce → GenTraversableOnce
  69. def minBy[B](f: (Expression) ⇒ B)(implicit cmp: Ordering[B]): Expression
    Definition Classes
    TraversableOnce → GenTraversableOnce
  70. def mkString: String
    Definition Classes
    TraversableOnce → GenTraversableOnce
  71. def mkString(sep: String): String
    Definition Classes
    TraversableOnce → GenTraversableOnce
  72. def mkString(start: String, sep: String, end: String): String
    Definition Classes
    TraversableOnce → GenTraversableOnce
  73. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  74. def newBuilder: Builder[Expression, Iterable[Expression]]
    Attributes
    protected[this]
    Definition Classes
    GenericTraversableTemplate → HasNewBuilder
  75. def nonEmpty: Boolean
    Definition Classes
    TraversableOnce → GenTraversableOnce
  76. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  77. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  78. def par: ParIterable[Expression]
    Definition Classes
    Parallelizable
  79. def parCombiner: Combiner[Expression, ParIterable[Expression]]
    Attributes
    protected[this]
    Definition Classes
    TraversableLike → Parallelizable
  80. def partition(p: (Expression) ⇒ Boolean): (Iterable[Expression], Iterable[Expression])
    Definition Classes
    TraversableLike → GenTraversableLike
  81. def product[B >: Expression](implicit num: Numeric[B]): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  82. def reduce[A1 >: Expression](op: (A1, A1) ⇒ A1): A1
    Definition Classes
    TraversableOnce → GenTraversableOnce
  83. def reduceLeft[B >: Expression](op: (B, Expression) ⇒ B): B
    Definition Classes
    TraversableOnce
  84. def reduceLeftOption[B >: Expression](op: (B, Expression) ⇒ B): Option[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  85. def reduceOption[A1 >: Expression](op: (A1, A1) ⇒ A1): Option[A1]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  86. def reduceRight[B >: Expression](op: (Expression, B) ⇒ B): B
    Definition Classes
    IterableLike → TraversableOnce → GenTraversableOnce
  87. def reduceRightOption[B >: Expression](op: (Expression, B) ⇒ B): Option[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  88. def remove(e: Expression): Unit
    Attributes
    protected
  89. def repr: Iterable[Expression]
    Definition Classes
    TraversableLike → GenTraversableLike
  90. def reversed: List[Expression]
    Attributes
    protected[this]
    Definition Classes
    TraversableOnce
  91. def sameElements[B >: Expression](that: GenIterable[B]): Boolean
    Definition Classes
    IterableLike → GenIterableLike
  92. def scan[B >: Expression, That](z: B)(op: (B, B) ⇒ B)(implicit cbf: CanBuildFrom[Iterable[Expression], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike
  93. def scanLeft[B, That](z: B)(op: (B, Expression) ⇒ B)(implicit bf: CanBuildFrom[Iterable[Expression], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike
  94. def scanRight[B, That](z: B)(op: (Expression, B) ⇒ B)(implicit bf: CanBuildFrom[Iterable[Expression], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike
    Annotations
    @migration
    Migration

    (Changed in version 2.9.0) The behavior of scanRight has changed. The previous behavior can be reproduced with scanRight.reverse.

  95. def seq: Iterable[Expression]
    Definition Classes
    Iterable → GenIterable → Traversable → GenTraversable → Parallelizable → TraversableOnce → GenTraversableOnce
  96. def size: Int
    Definition Classes
    TraversableOnce → GenTraversableOnce
  97. def sizeHintIfCheap: Int
    Attributes
    protected[collection]
    Definition Classes
    GenTraversableOnce
  98. def slice(from: Int, until: Int): Iterable[Expression]
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike
  99. def sliding(size: Int, step: Int): Iterator[Iterable[Expression]]
    Definition Classes
    IterableLike
  100. def sliding(size: Int): Iterator[Iterable[Expression]]
    Definition Classes
    IterableLike
  101. def span(p: (Expression) ⇒ Boolean): (Iterable[Expression], Iterable[Expression])
    Definition Classes
    TraversableLike → GenTraversableLike
  102. def splitAt(n: Int): (Iterable[Expression], Iterable[Expression])
    Definition Classes
    TraversableLike → GenTraversableLike
  103. def stringPrefix: String
    Definition Classes
    TraversableLike → GenTraversableLike
  104. def subsetOf(that: ExpressionSet): Boolean
  105. def sum[B >: Expression](implicit num: Numeric[B]): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  106. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  107. def tail: Iterable[Expression]
    Definition Classes
    TraversableLike → GenTraversableLike
  108. def tails: Iterator[Iterable[Expression]]
    Definition Classes
    TraversableLike
  109. def take(n: Int): Iterable[Expression]
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike
  110. def takeRight(n: Int): Iterable[Expression]
    Definition Classes
    IterableLike
  111. def takeWhile(p: (Expression) ⇒ Boolean): Iterable[Expression]
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike
  112. def thisCollection: Iterable[Expression]
    Attributes
    protected[this]
    Definition Classes
    IterableLike → TraversableLike
  113. def to[Col[_]](implicit cbf: CanBuildFrom[Nothing, Expression, Col[Expression]]): Col[Expression]
    Definition Classes
    TraversableLike → TraversableOnce → GenTraversableOnce
  114. def toArray[B >: Expression](implicit arg0: ClassTag[B]): Array[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  115. def toBuffer[B >: Expression]: Buffer[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  116. def toCollection(repr: Iterable[Expression]): Iterable[Expression]
    Attributes
    protected[this]
    Definition Classes
    IterableLike → TraversableLike
  117. def toDebugString: String

    Returns a string containing both the post Canonicalize expressions and the original expressions in this set.

  118. def toIndexedSeq: IndexedSeq[Expression]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  119. def toIterable: Iterable[Expression]
    Definition Classes
    IterableLike → TraversableOnce → GenTraversableOnce
  120. def toIterator: Iterator[Expression]
    Definition Classes
    IterableLike → TraversableLike → GenTraversableOnce
    Annotations
    @deprecatedOverriding( ... , "2.11.0" )
  121. def toList: List[Expression]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  122. def toMap[T, U](implicit ev: <:<[Expression, (T, U)]): Map[T, U]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  123. def toSeq: Seq[Expression]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  124. def toSet[B >: Expression]: Set[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  125. def toStream: Stream[Expression]
    Definition Classes
    IterableLike → TraversableLike → GenTraversableOnce
  126. def toString(): String
    Definition Classes
    TraversableLike → Any
  127. def toTraversable: Traversable[Expression]
    Definition Classes
    TraversableLike → TraversableOnce → GenTraversableOnce
    Annotations
    @deprecatedOverriding( ... , "2.11.0" )
  128. def toVector: Vector[Expression]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  129. def transpose[B](implicit asTraversable: (Expression) ⇒ GenTraversableOnce[B]): Iterable[Iterable[B]]
    Definition Classes
    GenericTraversableTemplate
    Annotations
    @migration
    Migration

    (Changed in version 2.9.0) transpose throws an IllegalArgumentException if collections are not uniformly sized.

  130. def union(that: ExpressionSet): ExpressionSet
  131. def unzip[A1, A2](implicit asPair: (Expression) ⇒ (A1, A2)): (Iterable[A1], Iterable[A2])
    Definition Classes
    GenericTraversableTemplate
  132. def unzip3[A1, A2, A3](implicit asTriple: (Expression) ⇒ (A1, A2, A3)): (Iterable[A1], Iterable[A2], Iterable[A3])
    Definition Classes
    GenericTraversableTemplate
  133. def view(from: Int, until: Int): IterableView[Expression, Iterable[Expression]]
    Definition Classes
    IterableLike → TraversableLike
  134. def view: IterableView[Expression, Iterable[Expression]]
    Definition Classes
    IterableLike → TraversableLike
  135. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  136. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  137. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  138. def withFilter(p: (Expression) ⇒ Boolean): FilterMonadic[Expression, Iterable[Expression]]
    Definition Classes
    TraversableLike → FilterMonadic
  139. def zip[A1 >: Expression, B, That](that: GenIterable[B])(implicit bf: CanBuildFrom[Iterable[Expression], (A1, B), That]): That
    Definition Classes
    IterableLike → GenIterableLike
  140. def zipAll[B, A1 >: Expression, That](that: GenIterable[B], thisElem: A1, thatElem: B)(implicit bf: CanBuildFrom[Iterable[Expression], (A1, B), That]): That
    Definition Classes
    IterableLike → GenIterableLike
  141. def zipWithIndex[A1 >: Expression, That](implicit bf: CanBuildFrom[Iterable[Expression], (A1, Int), That]): That
    Definition Classes
    IterableLike → GenIterableLike

Deprecated Value Members

  1. def /:[B](z: B)(op: (B, Expression) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
    Annotations
    @deprecated
    Deprecated

    (Since version 2.12.10) Use foldLeft instead of /:

  2. def :\[B](z: B)(op: (Expression, B) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
    Annotations
    @deprecated
    Deprecated

    (Since version 2.12.10) Use foldRight instead of :\

  3. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from Iterable[Expression]

Inherited from IterableLike[Expression, Iterable[Expression]]

Inherited from Equals

Inherited from GenIterable[Expression]

Inherited from GenIterableLike[Expression, Iterable[Expression]]

Inherited from Traversable[Expression]

Inherited from GenTraversable[Expression]

Inherited from GenericTraversableTemplate[Expression, Iterable]

Inherited from TraversableLike[Expression, Iterable[Expression]]

Inherited from GenTraversableLike[Expression, Iterable[Expression]]

Inherited from Parallelizable[Expression, ParIterable[Expression]]

Inherited from TraversableOnce[Expression]

Inherited from GenTraversableOnce[Expression]

Inherited from FilterMonadic[Expression, Iterable[Expression]]

Inherited from HasNewBuilder[Expression, Iterable[org.apache.spark.sql.catalyst.expressions.Expression] @scala.annotation.unchecked.uncheckedVariance]

Inherited from AnyRef

Inherited from Any

Ungrouped