You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Simhadri G (Jira)" <ji...@apache.org> on 2022/07/22 19:54:00 UTC

[jira] [Created] (HIVE-26424) When decimal type has overflowed the specified precision it must throw an error/warning instead of succeeding with NULL entries

Simhadri G created HIVE-26424:
---------------------------------

             Summary: 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


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)