[ https://issues.apache.org/jira/browse/HIVE-11544?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gopal V updated HIVE-11544: --------------------------- Attachment: HIVE-11544.3.patch Handle NaN, NULL and null > LazyInteger should avoid throwing NumberFormatException > ------------------------------------------------------- > > Key: HIVE-11544 > URL: https://issues.apache.org/jira/browse/HIVE-11544 > Project: Hive > Issue Type: Improvement > Components: Serializers/Deserializers > Affects Versions: 0.14.0, 1.2.0, 1.3.0, 2.0.0 > Reporter: William Slacum > Assignee: Gopal V > Priority: Minor > Labels: Performance > Attachments: HIVE-11544.1.patch, HIVE-11544.2.patch, > HIVE-11544.3.patch > > > {{LazyInteger#parseInt}} will throw a {{NumberFormatException}} under these > conditions: > # bytes are null > # radix is invalid > # length is 0 > # the string is '+' or '-' > # {{LazyInteger#parse}} throws a {{NumberFormatException}} > Most of the time, such as in {{LazyInteger#init}} and {{LazyByte#init}}, the > exception is caught, swallowed, and {{isNull}} is set to {{true}}. > This is generally a bad workflow, as exception creation is a performance > bottleneck, and potentially repeating for many rows in a query can have a > drastic performance consequence. > It would be better if this method returned an {{Optional<Integer>}}, which > would provide similar functionality with a higher throughput rate. > I've tested against 0.14.0, and saw that the logic is unchanged in 1.2.0, so > I've marked those as affected. Any version in between would also suffer from > this. -- This message was sent by Atlassian JIRA (v6.3.4#6332)