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 doesn't converts 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. def canEqual(that: Any): Boolean

    Permalink
    Definition Classes
    DynamicFoldableExpression → Equals
  9. lazy val canonicalized: Expression

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

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    TreeNode
  18. def convertedLiteral: Any

    Permalink
  19. def dataType: DataType

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

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

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

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

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

    Permalink

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

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

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

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

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

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

    Permalink
    Definition Classes
    TreeNode
  30. def foldable: Boolean

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
  45. def nodeName: String

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

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

    Permalink
    Definition Classes
    AnyRef
  48. def nullable: Boolean

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

    Permalink
    Definition Classes
    TreeNode
  50. val origin: Origin

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

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

    Permalink
    Definition Classes
    TreeNode
  53. def prettyJson: String

    Permalink
    Definition Classes
    TreeNode
  54. def prettyName: String

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

    Permalink
    Definition Classes
    Expression
  56. lazy val resolved: Boolean

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

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

    Permalink
    Definition Classes
    Expression
  59. def simpleString: String

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

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

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

    Permalink
    Definition Classes
    AnyRef
  63. def toJSON: String

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

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

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

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

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

    Permalink
    Definition Classes
    TreeNode
  69. def treeString: String

    Permalink
    Definition Classes
    TreeNode
  70. final def verboseString: String

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

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  74. 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