Github user viirya commented on a diff in the pull request:
https://github.com/apache/spark/pull/19720#discussion_r150764838
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullExpressions.scala
---
@@ -379,7 +380,26 @@ case class AtLeastNNonNulls(n: Int, children:
Seq[Expression]) extends Predicate
}
"""
}
- }.mkString("\n")
+ }
+
+ val code = if (ctx.INPUT_ROW == null || ctx.currentVars != null) {
+ evals.mkString("\n")
+ } else {
+ ctx.splitExpressions(evals, "atLeastNNonNull",
+ ("InternalRow", ctx.INPUT_ROW) :: ("int", nonnull) :: Nil,
+ returnType = "int",
+ makeSplitFunction = { body =>
+ s"""
+ $body
+ return $nonnull;
+ """
+ },
+ foldFunctions = { funcCalls =>
+ funcCalls.map { funcCall => s"$nonnull = $funcCall;"
}.mkString("\n")
--- End diff --
```scala
funcCalls.map(funcCall => s"$nonnull = $funcCall;").mkString("\n")
```
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]