Github user cloud-fan commented on a diff in the pull request:
https://github.com/apache/spark/pull/19598#discussion_r148931334
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypeExtractors.scala
---
@@ -186,6 +186,7 @@ case class GetArrayStructFields(
val values = ctx.freshName("values")
val j = ctx.freshName("j")
val row = ctx.freshName("row")
+ val nullCheckElement = if (!field.nullable) "false" else
s"$row.isNullAt($ordinal)"
--- End diff --
how about
```
val nullSafeEval = if (field.nullable) {
s"""
if ($row.isNullAt($ordinal)) {
$values[$j] = null;
} else
"""
} else ""
...
...
$nullSafeEval {
$values[$j] = ${ctx.getValue(row, field.dataType, ordinal.toString)};
}
```
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]