[ 
https://issues.apache.org/jira/browse/SPARK-57335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18087525#comment-18087525
 ] 

Eric Yang commented on SPARK-57335:
-----------------------------------

I'm working on a PR

> element_at fails with internal error on Int.MinValue index
> ----------------------------------------------------------
>
>                 Key: SPARK-57335
>                 URL: https://issues.apache.org/jira/browse/SPARK-57335
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 5.0.0
>            Reporter: Eric Yang
>            Priority: Major
>
> {*}Issue{*}:
> element_at(arr, Int.MinValue) leaks an internal IndexOutOfBoundsException 
> instead of returning NULL (non-ANSI) or raising 
> INVALID_ARRAY_INDEX_IN_ELEMENT_AT (ANSI). try_element_at also throws, 
> violating its no-throw contract.
> The exception:
> {code:java}
> java.lang.IndexOutOfBoundsException: -2147483645
>   at scala.collection.LinearSeqOps.apply(LinearSeq.scala:129)
>   at scala.collection.LinearSeqOps.apply$(LinearSeq.scala:128)
>   at scala.collection.immutable.List.apply(List.scala:79)
>   at 
> org.apache.spark.sql.catalyst.expressions.ElementAt.nullability(collectionOperations.scala:2703)
>   at 
> org.apache.spark.sql.catalyst.expressions.ElementAt.$anonfun$nullable$4(collectionOperations.scala:2712)
>   at 
> org.apache.spark.sql.catalyst.expressions.ElementAt.$anonfun$nullable$4$adapted(collectionOperations.scala:2712)
>   at 
> org.apache.spark.sql.catalyst.expressions.GetArrayItemUtil.computeNullabilityFromArray(complexTypeExtractors.scala:447)
>   at 
> org.apache.spark.sql.catalyst.expressions.GetArrayItemUtil.computeNullabilityFromArray$(complexTypeExtractors.scala:437)
>   at 
> org.apache.spark.sql.catalyst.expressions.ElementAt.computeNullabilityFromArray(collectionOperations.scala:2624)
>   at 
> org.apache.spark.sql.catalyst.expressions.ElementAt.nullable(collectionOperations.scala:2712)
>   at 
> org.apache.spark.sql.catalyst.expressions.Alias.toAttribute(namedExpressions.scala:206)
> ... {code}
> *Repro:*
> {code:sql}
>   SELECT element_at(array(1,2,3), -2147483648);     -- expected NULL, throws
>   SELECT try_element_at(array(1,2,3), -2147483648);  -- must never throw, 
> throws
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to