Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Arrow Serializer does not properly handle Decimal primitive values when selected array is used.
In more detail, decimalValueSetter should be setting the value at arrowIndex[i] as the value at hiveIndex[j], however currently its using the same index!
https://github.com/apache/hive/blob/eac25e711ea750bc52f41da7ed3c32bfe36d4f67/ql/src/java/org/apache/hadoop/hive/ql/io/arrow/Serializer.java#L926
This works fine for cases where i == j (selected is not used) but returns wrong decimal row values when i != j.
This ticket fixes this inconsistency and adds tests with selected indexes for all supported types
Attachments
Attachments
Issue Links
- links to