Github user cloud-fan commented on a diff in the pull request:

    https://github.com/apache/spark/pull/22745#discussion_r226149644
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/unresolved.scala
 ---
    @@ -509,3 +509,24 @@ case class UnresolvedOrdinal(ordinal: Int)
       override def nullable: Boolean = throw new UnresolvedException(this, 
"nullable")
       override lazy val resolved = false
     }
    +
    +/**
    + * When constructing `Invoke`, the data type must be given, which may be 
not possible to define
    + * before analysis. This class acts like a placeholder for `Invoke`, and 
will be replaced by
    + * `Invoke` during analysis after the input data is resolved. Data type 
passed to `Invoke``
    + * will be defined by applying `dataTypeFunction` to the data type of the 
input data.
    + */
    +case class UnresolvedInvoke(
    --- End diff --
    
    I feel this is too general. Maybe we should just create a new expression 
`GetArrayFromMap` and resolve it to `Invoke` later.


---

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

Reply via email to