[FLINK-38913][table-planner] ArrayIndexOutOfBoundsException unparsing CAST. #27431
+65
−1
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 is the purpose of the change
The table planner gets an ArrayIndexOutOfBoundsException while unparsing a CAST. The error occurs here
due to an empty comments list being passed here) )
Normally this code would have null elements for each field as per the grammarshows).
The change is to bounds check to ensure that there is a comments element before addressing it.
The rejected alternative is to fill the list with nulls in the caller for the failing case.
Brief change log
Verifying this change
Please make sure both new and modified tests in this PR follow the conventions for tests defined in our code quality guide.
This change added tests and can be verified as follows:
added a unit test, this had to be in the table planner, as the parser unit tests added the commnets as per the grammar, so were not testing the fix.
can be verified in the SQL client by issuing
"CREATE TABLE orders (
) WITH (
'connector' = 'filesystem',
'path' = 'file:///Users/davidradley/bashscripts/sqlscripts/json/test_avro.json',
'format' = 'avro'
);"
Prior to the fix this get the ArrayIndexOutOfBoundsException
Does this pull request potentially affect one of the following parts:
@Public(Evolving): (no)Documentation