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

Simhadri G reassigned HIVE-26424:
---------------------------------

    Assignee: Simhadri G

> When decimal type has overflowed the specified precision it must throw an 
> error/warning instead of succeeding with NULL entries
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-26424
>                 URL: https://issues.apache.org/jira/browse/HIVE-26424
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Simhadri G
>            Assignee: Simhadri G
>            Priority: Major
>
> When the decimal type has overflowed the specified precision, it results in 
> null entries as seen below:
> {code:java}
> 0: jdbc:hive2://localhost:10001/> select cast(48932.19 AS DECIMAL(6,6));
> +-------+
> |  _c0  |
> +-------+
> | NULL  |
> +-------+
> 1 row selected (0.178 seconds){code}
>  
> This can be a significant issue when inserting a large amount of data from 
> one table to another. This can result in entire columns having NULL entries, 
> as seen below
>  
> {code:java}
> 0: jdbc:hive2://localhost:10001/> select * from t2;
> +-------------------+
> |      t2.num       |
> +-------------------+
> | 28367.8100000000  |
> | 49632.1900000000  |
> | NULL              |
> | 28367.8100000000  |
> | 49632.1900000000  |
> | NULL              |
> +-------------------+
> 6 rows selected (0.202 seconds) 
> 0: jdbc:hive2://localhost:10001/> create table t3(num decimal(20,10));
> 0: jdbc:hive2://localhost:10001/> insert into t3 select cast(t2.num as 
> decimal(5,2)) from t2;
> 12 rows affected (40.97 seconds)
> 0: jdbc:hive2://localhost:10001/> select * from t3;
> +---------+
> | t3.num  |
> +---------+
> | NULL    |
> | NULL    |
> | NULL    |
> | NULL    |
> | NULL    |
> | NULL    |
> +---------+
> 6 rows selected (0.205 seconds){code}
> I think it would be better to throw an error as below instead of succeeding. 
> Similar to Mysql.
> {code:java}
> ERROR : Out of range value for column 'cast(num as decimal(5,2))' {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to