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