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

Xuefu Zhang commented on HIVE-3976:
-----------------------------------

[~jdere] Thank you very much for your early feedback. 

Re: #1. I can see HiveDecimalUtils.java in patch #1.
    #2. Thanks for noticing that. I was consolidating this logic but still 
forgot this class. It should be synched with other parts of the code.
    #3. A type decimal(5,3) signifies that at most two digits are allowed for 
integer part because 3 is allocated for decimal part. With this, the biggest 
value it can take is 99.999. Thus, a value greater than 99.999 shouldn't be 
allowed for this type. Here is what mysql does in default mode:

{code}
mysql> CREATE TABLE t3 (d  DECIMAL(5,3));
Query OK, 0 rows affected (0.12 sec)

mysql> insert into t3 values (123.45);
Query OK, 1 row affected, 1 warning (0.04 sec)

mysql> select * from t3;
+--------+
| d      |
+--------+
| 99.999 |
+--------+
1 row in set (0.00 sec)

{code}

I believe that under strict mode, the value will be rejected. Since Hive 
currently only has a strict mode, we choose null in this case.  With other 
modes in the future, we may have different behaviour. Regardless, I don't think 
decimal(5,3) should hold more than 2 integer digits.

    #4. I will check what's the difference between BidDecimal.scale() and 
decimal.scale(). In the meantime, could you be specific about what you know of 
the difference.
                
> Support specifying scale and precision with Hive decimal type
> -------------------------------------------------------------
>
>                 Key: HIVE-3976
>                 URL: https://issues.apache.org/jira/browse/HIVE-3976
>             Project: Hive
>          Issue Type: New Feature
>          Components: Query Processor, Types
>            Reporter: Mark Grover
>            Assignee: Xuefu Zhang
>         Attachments: HIVE-3976.1.patch, HIVE-3976.patch, 
> remove_prec_scale.diff
>
>
> HIVE-2693 introduced support for Decimal datatype in Hive. However, the 
> current implementation has unlimited precision and provides no way to specify 
> precision and scale when creating the table.
> For example, MySQL allows users to specify scale and precision of the decimal 
> datatype when creating the table:
> {code}
> CREATE TABLE numbers (a DECIMAL(20,2));
> {code}
> Hive should support something similar too.

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

Reply via email to