Github user srowen commented on a diff in the pull request:
https://github.com/apache/spark/pull/23178#discussion_r237522078
--- Diff:
sql/core/src/main/scala/org/apache/spark/sql/expressions/UserDefinedFunction.scala
---
@@ -38,114 +38,108 @@ import org.apache.spark.sql.types.DataType
* @since 1.3.0
*/
@Stable
-case class UserDefinedFunction protected[sql] (
- f: AnyRef,
- dataType: DataType,
- inputTypes: Option[Seq[DataType]]) {
-
- private var _nameOption: Option[String] = None
- private var _nullable: Boolean = true
- private var _deterministic: Boolean = true
-
- // This is a `var` instead of in the constructor for backward
compatibility of this case class.
- // TODO: revisit this case class in Spark 3.0, and narrow down the
public surface.
- private[sql] var nullableTypes: Option[Seq[Boolean]] = None
+trait UserDefinedFunction {
--- End diff --
Should we make this `sealed`? I'm not sure. Would any user ever extend this
meaningfully? I kind of worry someone will start doing so; maybe they already
subclass it in some cases though. Elsewhere it might help the compiler
understand in `match` statements that there is only ever one type of UDF class
to match on.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]