You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Gopal V (JIRA)" <ji...@apache.org> on 2013/06/19 18:09:20 UTC

[jira] [Updated] (HIVE-4757) LazyTimestamp goes into irretrievable NULL mode once inited with NULL once

     [ https://issues.apache.org/jira/browse/HIVE-4757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gopal V updated HIVE-4757:
--------------------------

          Component/s: Serializers/Deserializers
    Affects Version/s: 0.12.0
             Assignee: Gopal V
    
> LazyTimestamp goes into irretrievable NULL mode once inited with NULL once
> --------------------------------------------------------------------------
>
>                 Key: HIVE-4757
>                 URL: https://issues.apache.org/jira/browse/HIVE-4757
>             Project: Hive
>          Issue Type: Bug
>          Components: Serializers/Deserializers
>    Affects Versions: 0.12.0
>            Reporter: Gopal V
>            Assignee: Gopal V
>
> The LazyTimestamp.init() code turns into a NULL generator after parsing the very first NULL value (or format error). 
> The code is as follows 
> {code}
>     Timestamp t = null;
>     if (s.compareTo("NULL") == 0) {
>       isNull = true;
>       logExceptionMessage(bytes, start, length, "TIMESTAMP");
>     } else {
>       try {
>         t = Timestamp.valueOf(s);
>       } catch (IllegalArgumentException e) {
>         isNull = true;
>         logExceptionMessage(bytes, start, length, "TIMESTAMP");
>       }
>     }
> {code}
> As might be obvious from the code above, the class does not reset the isNull to false when a parse is successful.
> So if by any reason, it is initialized with a NULL value, the LazyTimestamp.getObject() will always return NULL for all further rows.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira