[ 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