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

Zheng Shao commented on HIVE-65:
--------------------------------

Namit's experiment with Oracle shows Oracle outputs ambiguity if UDF has both 
evaluate(double, double) and evaluate(string,string), and users calls 
udf(double, string).

Let's stick with the following implicit conversion hierarchy and special-case 
comparison operators (they will prefer evaluate(double, double) to 
evaluate(string,string)):
byte -> short -> int -> long -> float -> double -> string, string -> double

In order to allow the special case, we can add a tag to the methods. If there 
are multiple methods with the same number of implicit conversions, then we 
choose the one with the maximum tag (if there are still many then we say 
ambiguity).

The reason that I think long -> float should be allowed is 
http://java.sun.com/docs/books/jls/third_edition/html/conversions.html#25214 
This of course also simplify the code since it's a single line instead of a DAG.


> Implict conversion from integer to long broken for Dynamic Serde tables
> -----------------------------------------------------------------------
>
>                 Key: HIVE-65
>                 URL: https://issues.apache.org/jira/browse/HIVE-65
>             Project: Hadoop Hive
>          Issue Type: Bug
>          Components: Query Processor
>            Reporter: Ashish Thusoo
>            Assignee: Zheng Shao
>
> For a dynamic serde table that has a bigint column, implict conversion from 
> int to bigint seems to be broken. I have not verified this for other tables.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to