[SPARK-38734][SQL] Remove the error class INDEX_OUT_OF_BOUNDS
#37857
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
In the PR, I propose to remove the error class
INDEX_OUT_OF_BOUNDSfromerror-classes.jsonand the exceptionSparkIndexOutOfBoundsException. And replace the last one by a SparkException w/ the error classINTERNAL_ERRORbecause the exception should not be raised in regular cases.ArrayDataIndexedSeqthrows the exception fromapply(), andArrayDataIndexedSeqcan be created fromArrayData.toSeqonly. The last one is invoked from 2 places:Sliceexpression ( orslicefunction):spark/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/collectionOperations.scala
Lines 1600 to 1601 in 443eea9
where any access to the produced array is guarded:
see
spark/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypeExtractors.scala
Lines 268 to 271 in a9bb924
MapObjects.convertToSeq:spark/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/objects/objects.scala
Line 886 in 5b96e82
where any access to the produced IndexedSeq is guarded via map-way access in
spark/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/objects/objects.scala
Lines 864 to 867 in 5b96e82
Why are the changes needed?
To improve code maintenance.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
By running the affected test suite: