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: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to