Github user viirya commented on a diff in the pull request:

    https://github.com/apache/spark/pull/19813#discussion_r155538158
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/CodeGenerator.scala
 ---
    @@ -55,8 +55,23 @@ import org.apache.spark.util.{ParentClassLoader, Utils}
      *                 to null.
      * @param value A term for a (possibly primitive) value of the result of 
the evaluation. Not
      *              valid if `isNull` is set to `true`.
    + * @param inputRow A term that holds the input row name when generating 
this code.
    + * @param inputVars A list of [[ExprInputVar]] that holds input variables 
when generating this code.
      */
    -case class ExprCode(var code: String, var isNull: String, var value: 
String)
    +case class ExprCode(
    +    var code: String,
    +    var isNull: String,
    +    var value: String,
    +    var inputRow: String = null,
    +    var inputVars: Seq[ExprInputVar] = Seq.empty)
    +
    +/**
    + * Represents an input variable [[ExprCode]] to an evaluation of an 
[[Expression]].
    + *
    + * @param expr The expression that is evaluated to the input variable.
    + * @param exprCode The [[ExprCode]] that represents the evaluation result 
for the input variable.
    + */
    +case class ExprInputVar(expr: Expression, exprCode: ExprCode)
    --- End diff --
    
    Yea, I also think about this before. Just thinking taking an expression is 
simpler. I will change it.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to