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

Vikram Dixit K commented on HIVE-2693:
--------------------------------------

Hi Josh, I found the issue. The getMethodInternal api within the 
FunctionRegistry class iterates over all the apis within a class say UDFRound 
and finds the api with the lowest conversion cost to use for the subsequent 
operations. Since the addition of the big decimal evaluate api in the UDFRound 
class, there is now a collision between the Double and Big decimal evaluate 
apis since both have the same conversion cost. One way I think we can fix this 
is to add an enum of conversion precedence in the functionregistry class. The 
precedence order can be:

BigDecimal > Double > Float > Long > Int > boolean. If we see a collision, we 
can resolve it in favor of the broadest (most accepting) object which in this 
case is BigDecimal. Let me know what you think and also if you have time to 
work on it.
                
> Add DECIMAL data type
> ---------------------
>
>                 Key: HIVE-2693
>                 URL: https://issues.apache.org/jira/browse/HIVE-2693
>             Project: Hive
>          Issue Type: New Feature
>          Components: Query Processor, Types
>            Reporter: Carl Steinbach
>            Assignee: Prasad Mujumdar
>         Attachments: HIVE-2693-all.patch, HIVE-2693-fix.patch, 
> HIVE-2693.patch, HIVE-2693-take3.patch, HIVE-2693-take4.patch
>
>
> Add support for the DECIMAL data type. HIVE-2272 (TIMESTAMP) provides a nice 
> template for how to do this.

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