Github user kiszk commented on a diff in the pull request:
https://github.com/apache/spark/pull/23135#discussion_r236103936
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala
---
@@ -43,9 +43,24 @@ import org.apache.spark.sql.types._
* There are a few important traits:
*
* - [[Nondeterministic]]: an expression that is not deterministic.
+ * - [[Stateful]]: an expression that contains mutable state. For example,
MonotonicallyIncreasingID
+ * and Rand. A stateful expression is always
non-deterministic.
* - [[Unevaluable]]: an expression that is not supposed to be evaluated.
* - [[CodegenFallback]]: an expression that does not have code gen
implemented and falls back to
* interpreted mode.
+ * - [[NullIntolerant]]: an expression that is null intolerant (i.e. any
null input will result in
+ * null output).
+ * - [[NonSQLExpression]]: a common base trait for the expressions that
doesn't have SQL
+ * expressions like representation. For example,
`ScalaUDF`, `ScalaUDAF`,
+ * and object `MapObjects` and `Invoke`.
+ * - [[UserDefinedExpression]]: a common base trait for user-defined
functions, including
+ * UDF/UDAF/UDTF.
+ * - [[HigherOrderFunction]]: a common base trait for higher order
functions that take one or more
+ * (lambda) functions and applies these to some
objects. The function
+ * produces a number of variables which can be
consumed by some lambda
+ * function.
--- End diff --
nit: `function` -> `functions` ?
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]