Jason Dere created HIVE-5825:
--------------------------------
Summary: Case statement type checking too restrictive for parameterized types
Key: HIVE-5825
URL: https://issues.apache.org/jira/browse/HIVE-5825
Project: Hive
Issue Type: Bug
Components: UDF
Reporter: Jason Dere
Assignee: Jason Dere
explain select
case when (key = '0') then 123.456BD else 0.0BD end
from src limit 2
FAILED: SemanticException [Error 10016]: Line 3:44 Argument type mismatch '0.0BD': The expression
after ELSE should have the same type as those after THEN: "decimal(6,3)" is expected but "decimal(1,0)"
is found
The return type checking is too strict and won't allow different decimal types to be returned
if they are not the exact same type (precision/scale). There are similar issues with char/varchar
length, but even in the general case it seems odd that you wouldn't be able to specify 1 and
0.0 in the same case statement.
I would propose setting returnOIResolver so that it is able to convert the return values to
common type.
--
This message was sent by Atlassian JIRA
(v6.1#6144)