Object

org.apache.spark.sql.catalyst.expressions

SubExprUtils

Related Doc: package expressions

Permalink

object SubExprUtils extends PredicateHelper

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

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. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def canEvaluate(expr: Expression, plan: LogicalPlan): Boolean

    Permalink

    Returns true if expr can be evaluated using only the output of plan.

    Returns true if expr can be evaluated using only the output of plan. This method can be used to determine when it is acceptable to move expression evaluation within a query plan.

    For example consider a join between two relations R(a, b) and S(c, d).

    - canEvaluate(EqualTo(a,b), R) returns true - canEvaluate(EqualTo(a,c), R) returns false - canEvaluate(Literal(1), R) returns true as literals CAN be evaluated on any plan

    Attributes
    protected
    Definition Classes
    PredicateHelper
  6. def canEvaluateWithinJoin(expr: Expression): Boolean

    Permalink

    Returns true iff expr could be evaluated as a condition within join.

    Returns true iff expr could be evaluated as a condition within join.

    Attributes
    protected
    Definition Classes
    PredicateHelper
  7. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. def containsOuter(e: Expression): Boolean

    Permalink

    Returns true when an expression contains correlated predicates i.e outer references and returns false otherwise.

  9. final def eq(arg0: AnyRef): Boolean

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

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  13. def getCorrelatedPredicates(plan: LogicalPlan): Seq[Expression]

    Permalink

    Returns the correlated predicates from a logical plan.

    Returns the correlated predicates from a logical plan. The OuterReference wrapper is removed before returning the predicate to the caller.

  14. def getOuterReferences(plan: LogicalPlan): Seq[Expression]

    Permalink

    Returns all the expressions that have outer references from a logical plan.

    Returns all the expressions that have outer references from a logical plan. Currently only Filter operator can host outer references.

  15. def getOuterReferences(conditions: Seq[Expression]): Seq[Expression]

    Permalink

    Given a list of expressions, returns the expressions which have outer references.

    Given a list of expressions, returns the expressions which have outer references. Aggregate expressions are treated in a special way. If the children of aggregate expression contains an outer reference, then the entire aggregate expression is marked as an outer reference. Example (SQL):

    SELECT a FROM l GROUP by 1 HAVING EXISTS (SELECT 1 FROM r WHERE d < min(b))

    In the above case, we want to mark the entire min(b) as an outer reference OuterReference(min(b)) instead of min(OuterReference(b)). TODO: Currently we don't allow deep correlation. Also, we don't allow mixing of outer references and local references under an aggregate expression. For example (SQL):

    SELECT .. FROM p1
    WHERE EXISTS (SELECT ...
                  FROM p2
                  WHERE EXISTS (SELECT ...
                                FROM sq
                                WHERE min(p1.a + p2.b) = sq.c))
    
    SELECT .. FROM p1
    WHERE EXISTS (SELECT ...
                  FROM p2
                  WHERE EXISTS (SELECT ...
                                FROM sq
                                WHERE min(p1.a) + max(p2.b) = sq.c))
    
    SELECT .. FROM p1
    WHERE EXISTS (SELECT ...
                  FROM p2
                  WHERE EXISTS (SELECT ...
                                FROM sq
                                WHERE min(p1.a + sq.c) > 1))

    The code below needs to change when we support the above cases.

  16. def hasNullAwarePredicateWithinNot(condition: Expression): Boolean

    Permalink

    Returns whether there are any null-aware predicate subqueries inside Not.

    Returns whether there are any null-aware predicate subqueries inside Not. If not, we could turn the null-aware predicate into not-null-aware predicate.

  17. def hasOuterReferences(plan: LogicalPlan): Boolean

    Permalink

    Given a logical plan, returns TRUE if it has an outer reference and false otherwise.

  18. def hashCode(): Int

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

    Permalink
    Definition Classes
    Any
  20. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  23. def replaceAlias(condition: Expression, aliases: AttributeMap[Expression]): Expression

    Permalink
    Attributes
    protected
    Definition Classes
    PredicateHelper
  24. def splitConjunctivePredicates(condition: Expression): Seq[Expression]

    Permalink
    Attributes
    protected
    Definition Classes
    PredicateHelper
  25. def splitDisjunctivePredicates(condition: Expression): Seq[Expression]

    Permalink
    Attributes
    protected
    Definition Classes
    PredicateHelper
  26. def stripOuterReference(e: Expression): Expression

    Permalink

    Returns an expression after removing the OuterReference shell.

  27. def stripOuterReferences(p: LogicalPlan): LogicalPlan

    Permalink

    Returns the logical plan after removing the OuterReference shell from all the expressions of the input logical plan.

  28. def stripOuterReferences(e: Seq[Expression]): Seq[Expression]

    Permalink

    Returns the list of expressions after removing the OuterReference shell from each of the expression.

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

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

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

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

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

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

Inherited from PredicateHelper

Inherited from AnyRef

Inherited from Any

Ungrouped