Convert errors based on implicit type conversion in multi value arrays to parse exception in MSQ#13366
Conversation
3e80717 to
d9cfe98
Compare
adarshsanjeev
left a comment
There was a problem hiding this comment.
Thanks for the PR. LGTM!
| partitionBoostVirtualColumn.setValue(partitionBoostVirtualColumn.getValue() + 1); | ||
| } | ||
| } | ||
| catch (Exception e) { |
There was a problem hiding this comment.
Woudn't FrameRowTooLargeException be caught here?
There was a problem hiding this comment.
Thanks for catching this. I have reduced the surface of the try..catch block so as to not obstruct any other exceptions
|
|
||
| while (!cursor.isDone()) { | ||
| if (!frameWriter.addSelection()) { | ||
| boolean addedSelection; |
There was a problem hiding this comment.
We should also make this change in all the leaf processors.
So it can be the scan processor and the GroupByPreShuffleFrameProcessor. So this change might be required there as well.
Or you can send the common code to the superclass BaseLeafFrameProcessor.
There was a problem hiding this comment.
Updated the test case and made the change. Instead of the individual processors, I have added the handling in the individual frame writers so that we won't have to add a block in every processor.
cryptoe
left a comment
There was a problem hiding this comment.
LGTM!!
Thanks for the contribution @LakshSingla.
…s to parse exception in MSQ (apache#13366) * initial commit * fix test * push the json changes * reduce the area of the try..catch * Trigger Build * review
Description
Ingesting a multi-value column which was originally expecting a string array but received an object array throws a cryptic error message due to a failed type conversion that happens in the FrameWriters. This PR aims to convert those catch those error messages and throw them as ParseExceptions.
This PR has: