Github user viirya commented on a diff in the pull request:
https://github.com/apache/spark/pull/19728#discussion_r150441323
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/stringExpressions.scala
---
@@ -126,18 +137,34 @@ case class ConcatWs(children: Seq[Expression])
// All children are strings. In that case we can construct a fixed
size array.
val evals = children.map(_.genCode(ctx))
- val inputs = evals.map { eval =>
- s"${eval.isNull} ? (UTF8String) null : ${eval.value}"
- }.mkString(", ")
+ val argNums = evals.length
+ val args = ctx.freshName("argLen")
+ ctx.addMutableState("UTF8String[]", args, "")
- ev.copy(evals.map(_.code).mkString("\n") + s"""
- UTF8String ${ev.value} = UTF8String.concatWs($inputs);
+ val inputs = evals.tail.zipWithIndex.map { case (eval, index) =>
+ if (eval.isNull != "true") {
--- End diff --
Same issue as https://github.com/apache/spark/pull/19728/files#r150441287.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]