Class

org.apache.spark.sql.catalyst.expressions

DynamicFoldableExpression

Related Doc: package expressions

Permalink

case class DynamicFoldableExpression(expr: Expression) extends Expression with DynamicReplacableConstant with Product with Serializable

Wrap any ParamLiteral expression with this so that we can generate literal initialization code within the .init() method of the generated class.

We try to locate first foldable expression in a query tree such that all its child is foldable but parent isn't. That way we locate the exact point where an expression is safe to evalute once instead of evaluating every row.

Expressions like select c from tab where case col2 when 1 then col3 else 'y' end = 22 like queries don't convert literal evaluation into init method.

expr

minimal expression tree that can be evaluated only once and turn into a constant.

Linear Supertypes
Serializable, Serializable, DynamicReplacableConstant, Expression, TreeNode[Expression], Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DynamicFoldableExpression
  2. Serializable
  3. Serializable
  4. DynamicReplacableConstant
  5. Expression
  6. TreeNode
  7. Product
  8. Equals
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new DynamicFoldableExpression(expr: Expression)

    Permalink

    expr

    minimal expression tree that can be evaluated only once and turn into a constant.

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 apply(number: Int): TreeNode[_]

    Permalink
    Definition Classes
    TreeNode
  5. def argString: String

    Permalink
    Definition Classes
    TreeNode
  6. def asCode: String

    Permalink
    Definition Classes
    TreeNode
  7. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  8. lazy val canonicalized: Expression

    Permalink
    Definition Classes
    Expression
  9. def checkInputDataTypes(): TypeCheckResult

    Permalink
    Definition Classes
    Expression
  10. def children: Seq[Expression]

    Permalink
    Definition Classes
    DynamicFoldableExpression → TreeNode
  11. def childrenResolved: Boolean

    Permalink
    Definition Classes
    Expression
  12. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  13. def collect[B](pf: PartialFunction[Expression, B]): Seq[B]

    Permalink
    Definition Classes
    TreeNode
  14. def collectFirst[B](pf: PartialFunction[Expression, B]): Option[B]

    Permalink
    Definition Classes
    TreeNode
  15. def collectLeaves(): Seq[Expression]

    Permalink
    Definition Classes
    TreeNode
  16. lazy val containsChild: Set[TreeNode[_]]

    Permalink
    Definition Classes
    TreeNode
  17. def convertedLiteral: Any

    Permalink
  18. def dataType: DataType

    Permalink
    Definition Classes
    DynamicFoldableExpression → Expression
  19. def deterministic: Boolean

    Permalink
    Definition Classes
    Expression
  20. def doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode

    Permalink
    Attributes
    protected
    Definition Classes
    DynamicFoldableExpression → Expression
  21. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  22. def eval(input: InternalRow): Any

    Permalink
    Definition Classes
    DynamicFoldableExpressionDynamicReplacableConstant → Expression
  23. val expr: Expression

    Permalink

    minimal expression tree that can be evaluated only once and turn into a constant.

  24. def fastEquals(other: TreeNode[_]): Boolean

    Permalink
    Definition Classes
    TreeNode
  25. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  26. def find(f: (Expression) ⇒ Boolean): Option[Expression]

    Permalink
    Definition Classes
    TreeNode
  27. def flatArguments: Iterator[Any]

    Permalink
    Attributes
    protected
    Definition Classes
    Expression
  28. def flatMap[A](f: (Expression) ⇒ TraversableOnce[A]): Seq[A]

    Permalink
    Definition Classes
    TreeNode
  29. def foldable: Boolean

    Permalink
    Definition Classes
    Expression
  30. def foreach(f: (Expression) ⇒ Unit): Unit

    Permalink
    Definition Classes
    TreeNode
  31. def foreachUp(f: (Expression) ⇒ Unit): Unit

    Permalink
    Definition Classes
    TreeNode
  32. def genCode(ctx: CodegenContext): ExprCode

    Permalink
    Definition Classes
    Expression
  33. def generateTreeString(depth: Int, lastChildren: Seq[Boolean], builder: StringBuilder, verbose: Boolean, prefix: String): StringBuilder

    Permalink
    Definition Classes
    TreeNode
  34. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  35. def hashCode(): Int

    Permalink
    Definition Classes
    TreeNode → AnyRef → Any
  36. def innerChildren: Seq[TreeNode[_]]

    Permalink
    Attributes
    protected
    Definition Classes
    TreeNode
  37. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  38. def jsonFields: List[JField]

    Permalink
    Attributes
    protected
    Definition Classes
    TreeNode
  39. def makeCopy(newArgs: Array[AnyRef]): Expression

    Permalink
    Definition Classes
    TreeNode
  40. def map[A](f: (Expression) ⇒ A): Seq[A]

    Permalink
    Definition Classes
    TreeNode
  41. def mapChildren(f: (Expression) ⇒ Expression): Expression

    Permalink
    Definition Classes
    TreeNode
  42. def mapProductIterator[B](f: (Any) ⇒ B)(implicit arg0: ClassTag[B]): Array[B]

    Permalink
    Attributes
    protected
    Definition Classes
    TreeNode
  43. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  44. def nodeName: String

    Permalink
    Definition Classes
    DynamicFoldableExpression → TreeNode
  45. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  47. def nullable: Boolean

    Permalink
    Definition Classes
    DynamicFoldableExpression → Expression
  48. def numberedTreeString: String

    Permalink
    Definition Classes
    TreeNode
  49. val origin: Origin

    Permalink
    Definition Classes
    TreeNode
  50. def otherCopyArgs: Seq[AnyRef]

    Permalink
    Attributes
    protected
    Definition Classes
    TreeNode
  51. def p(number: Int): Expression

    Permalink
    Definition Classes
    TreeNode
  52. def prettyJson: String

    Permalink
    Definition Classes
    TreeNode
  53. def prettyName: String

    Permalink
    Definition Classes
    DynamicFoldableExpression → Expression
  54. def references: AttributeSet

    Permalink
    Definition Classes
    Expression
  55. lazy val resolved: Boolean

    Permalink
    Definition Classes
    Expression
  56. def semanticEquals(other: Expression): Boolean

    Permalink
    Definition Classes
    Expression
  57. def semanticHash(): Int

    Permalink
    Definition Classes
    Expression
  58. def simpleString: String

    Permalink
    Definition Classes
    Expression → TreeNode
  59. def sql: String

    Permalink
    Definition Classes
    Expression
  60. def stringArgs: Iterator[Any]

    Permalink
    Attributes
    protected
    Definition Classes
    TreeNode
  61. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  62. def toJSON: String

    Permalink
    Definition Classes
    TreeNode
  63. def toString(): String

    Permalink
    Definition Classes
    Expression → TreeNode → AnyRef → Any
  64. def transform(rule: PartialFunction[Expression, Expression]): Expression

    Permalink
    Definition Classes
    TreeNode
  65. def transformDown(rule: PartialFunction[Expression, Expression]): Expression

    Permalink
    Definition Classes
    TreeNode
  66. def transformUp(rule: PartialFunction[Expression, Expression]): Expression

    Permalink
    Definition Classes
    TreeNode
  67. def treeString(verbose: Boolean): String

    Permalink
    Definition Classes
    TreeNode
  68. def treeString: String

    Permalink
    Definition Classes
    TreeNode
  69. final def verboseString: String

    Permalink
    Definition Classes
    Expression → TreeNode
  70. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  73. def withNewChildren(newChildren: Seq[Expression]): Expression

    Permalink
    Definition Classes
    TreeNode

Inherited from Serializable

Inherited from Serializable

Inherited from DynamicReplacableConstant

Inherited from Expression

Inherited from TreeNode[Expression]

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped