hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xuefu Zhang (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (HIVE-11835) Type decimal(1,1) reads 0.0, 0.00, etc from text file as NULL
Date Wed, 16 Sep 2015 18:42:46 GMT

    [ https://issues.apache.org/jira/browse/HIVE-11835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14790853#comment-14790853
] 

Xuefu Zhang edited comment on HIVE-11835 at 9/16/15 6:42 PM:
-------------------------------------------------------------

The problem is caused by the fact that Hive trims zeros. In most of cases this is harmless.
However, if the value is 0.0, 0.00, 0.000, etc, trimming zeros changes the value to 0, which
has a type decimal(1,0). Since type decimal(1, 1) allows on integer digits, 0 becomes NULL
when being converted to decimal(1, 1).

It seems that trimming trailing zeros doesn't do any good. It not only changes the data type,
creating the problem like the one here, but also completely changes the semantic meaning of
the number. The right fix is to keep trailing zeros only if it goes beyond the datatype allows,
which happens when scale is enforced. This will also keeps the right number of decimal points
on query result, which is desirable and common practice in other DBs.

Initial patch to have a test run. Expect some test results need to be updated. Will also add
new tests.


was (Author: xuefuz):
Initial patch to have a test run. Expect some test results need to be updated. Will also add
new tests.

> Type decimal(1,1) reads 0.0, 0.00, etc from text file as NULL
> -------------------------------------------------------------
>
>                 Key: HIVE-11835
>                 URL: https://issues.apache.org/jira/browse/HIVE-11835
>             Project: Hive
>          Issue Type: Bug
>          Components: Types
>    Affects Versions: 1.2.0, 1.1.0, 2.0.0
>            Reporter: Xuefu Zhang
>            Assignee: Xuefu Zhang
>         Attachments: HIVE-11835.patch
>
>
> Steps to reproduce:
> 1. create a text file with values like 0.0, 0.00, etc.
> 2. create table in hive with type decimal(1,1).
> 3. run "load data local inpath ..." to load data into the table.
> 4. run select * on the table.
> You will see that NULL is displayed for 0.0, 0.00, .0, etc. Instead, these should be
read as 0.0.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message