[ https://issues.apache.org/jira/browse/HIVE-3820?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13607393#comment-13607393 ]
Gunther Hagleitner commented on HIVE-3820: ------------------------------------------ In the integer world we have literals for all int types except integer itself (which is the default int type). Double/float could follow the same model: Double is the default, little need to have a special literal, but for float it makes sense to me. Decimal is a special case - since numeric values default to double a literal is necessary to separate from that type. Glad you pointed HIVE-2586 out, it does validate Ashutosh' thinking and makes another case for BD instead of D. > Consider creating a literal like "D" or "BD" for representing Decimal type > constants > ------------------------------------------------------------------------------------ > > Key: HIVE-3820 > URL: https://issues.apache.org/jira/browse/HIVE-3820 > Project: Hive > Issue Type: Bug > Reporter: Mark Grover > Assignee: Gunther Hagleitner > Attachments: HIVE-3820.1.patch, HIVE-3820.2.patch, > HIVE-3820.D8823.1.patch > > > When the HIVE-2693 gets committed, users are going to see this behavior: > {code} > hive> select cast(3.14 as decimal) from decimal_3 limit 1; > 3.140000000000000124344978758017532527446746826171875 > {code} > That's intuitively incorrect but is the case because 3.14 (double) is being > converted to BigDecimal because of which there is a precision mismatch. > We should consider creating a new literal for expressing constants of Decimal > type as Gunther suggested in HIVE-2693. -- 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