Class

org.apache.spark.sql.catalyst.expressions

ParamLiteral

Related Doc: package expressions

Permalink

case class ParamLiteral(value: Any, dataType: DataType, pos: Int, execId: Int, tokenized: Boolean = false, positionIndependent: Boolean = false, valueEquals: Boolean = false) extends LeafExpression with TokenizedLiteral with KryoSerializable with Product with Serializable

In addition to TokenLiteral, this class can also be used in plan caching so allows for internal value to be updated in subsequent runs when the plan is re-used with different constants. For that reason this does not extend Literal (to avoid Analyzer/Optimizer etc doing constant propagation for example) and its hash/equals ignores the value matching and only the position of the literal in the plan is used with the data type.

Where ever ParamLiteral case matching is required, it must match for DynamicReplacableConstant and use .eval(..) for code generation. see SNAP-1597 for more details. For cases of common-subexpression elimination that depend on constant values being equal in different parts of the tree, a new RefParamLiteral has been added that points to a ParamLiteral and is always equal to it, see SNAP-2462 for more details.

Linear Supertypes
Serializable, Serializable, KryoSerializable, TokenizedLiteral, DynamicReplacableConstant, LeafExpression, Expression, TreeNode[Expression], Product, Equals, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ParamLiteral
  2. Serializable
  3. Serializable
  4. KryoSerializable
  5. TokenizedLiteral
  6. DynamicReplacableConstant
  7. LeafExpression
  8. Expression
  9. TreeNode
  10. Product
  11. Equals
  12. AnyRef
  13. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ParamLiteral(value: Any, dataType: DataType, pos: Int, execId: Int, tokenized: Boolean = false, positionIndependent: Boolean = false, valueEquals: Boolean = false)

    Permalink

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 var _foldable: Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    TokenizedLiteral
  5. def apply(number: Int): TreeNode[_]

    Permalink
    Definition Classes
    TreeNode
  6. def argString: String

    Permalink
    Definition Classes
    TreeNode
  7. def asCode: String

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

    Permalink
    Definition Classes
    Any
  9. def asLiteral: TokenLiteral

    Permalink
  10. lazy val canonicalized: Expression

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

    Permalink
    Definition Classes
    Expression
  12. final def children: Seq[Expression]

    Permalink
    Definition Classes
    LeafExpression → TreeNode
  13. def childrenResolved: Boolean

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

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

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

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

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

    Permalink
    Definition Classes
    TreeNode
  19. var dataType: DataType

    Permalink
    Definition Classes
    ParamLiteral → Expression
  20. final def deterministic: Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  23. def equals(obj: Any): Boolean

    Permalink
    Definition Classes
    ParamLiteral → Equals → AnyRef → Any
  24. def eval(input: InternalRow): Any

    Permalink
    Definition Classes
    ParamLiteral → Expression
  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. final def foldable: Boolean

    Permalink
    Definition Classes
    TokenizedLiteral → 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
    ParamLiteral → 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[org.apache.spark.sql]
    Definition Classes
    ParamLiteral → TreeNode
  40. final def makeCopy(newArgs: Array[AnyRef]): Expression

    Permalink
    Definition Classes
    TokenizedLiteral → 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 markFoldable(b: Boolean): TokenizedLiteral

    Permalink
    Definition Classes
    TokenizedLiteral
  45. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  46. def nodeName: String

    Permalink
    Definition Classes
    ParamLiteral → TreeNode
  47. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  49. def nullable: Boolean

    Permalink
    Definition Classes
    ParamLiteral → Expression
  50. def numberedTreeString: String

    Permalink
    Definition Classes
    TreeNode
  51. val origin: Origin

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

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

    Permalink
    Definition Classes
    TreeNode
  54. var pos: Int

    Permalink
  55. def prettyJson: String

    Permalink
    Definition Classes
    TreeNode
  56. def prettyName: String

    Permalink
    Definition Classes
    ParamLiteral → Expression
  57. def read(kryo: Kryo, input: Input): Unit

    Permalink
    Definition Classes
    ParamLiteral → KryoSerializable
  58. def references: AttributeSet

    Permalink
    Definition Classes
    Expression
  59. lazy val resolved: Boolean

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

    Permalink
    Definition Classes
    ParamLiteral → Expression
  61. def semanticHash(): Int

    Permalink
    Definition Classes
    Expression
  62. def simpleString: String

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

    Permalink
    Definition Classes
    ParamLiteral → Expression
  64. def stringArgs: Iterator[Any]

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

    Permalink
    Definition Classes
    AnyRef
  66. def toJSON: String

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

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

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

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

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

    Permalink
    Definition Classes
    TreeNode
  72. def treeString: String

    Permalink
    Definition Classes
    TreeNode
  73. var value: Any

    Permalink
  74. def valueString: String

    Permalink
    Definition Classes
    ParamLiteralTokenizedLiteral
  75. final def verboseString: String

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

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

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

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

    Permalink
    Definition Classes
    TokenizedLiteral → TreeNode
  80. def write(kryo: Kryo, output: Output): Unit

    Permalink
    Definition Classes
    ParamLiteral → KryoSerializable

Inherited from Serializable

Inherited from Serializable

Inherited from KryoSerializable

Inherited from TokenizedLiteral

Inherited from DynamicReplacableConstant

Inherited from LeafExpression

Inherited from Expression

Inherited from TreeNode[Expression]

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped