hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William Slacum (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HIVE-11544) LazyInteger should avoid throwing NumberFormatException
Date Thu, 13 Aug 2015 03:10:45 GMT
William Slacum created HIVE-11544:
-------------------------------------

             Summary: 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: 1.2.0, 0.14.0
            Reporter: William Slacum
            Priority: Minor


{{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)

Mime
View raw message