You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Adam Kramer (JIRA)" <ji...@apache.org> on 2011/03/03 08:52:37 UTC

[jira] Commented: (HIVE-1490) More implicit type conversion: UNION ALL and COALESCE

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

Adam Kramer commented on HIVE-1490:
-----------------------------------

Also present in CASE statements:

FAILED: Error in semantic analysis: line 37:57 Argument Type Mismatch '$.foo': The expressions after THEN should have the same type: "int" is expected but "string" is found


> More implicit type conversion: UNION ALL and COALESCE
> -----------------------------------------------------
>
>                 Key: HIVE-1490
>                 URL: https://issues.apache.org/jira/browse/HIVE-1490
>             Project: Hive
>          Issue Type: Bug
>          Components: Query Processor, Server Infrastructure
>            Reporter: Adam Kramer
>
> This is a usecase that frequently annoys me:
> SELECT TRANSFORM(stuff)
> USING 'script'
> AS thing1, thing2
> FROM some_table
> UNION ALL
> SELECT a.thing1, a.thing2
> FROM some_other_table a
> ...this fails when a.thing1 and a.thing2 are anything but STRING, because all output of TRANSFORM is STRING.
> In this case, a.thing1 and a.thing2 should be implicitly converted to string.
> COALESCE(a.thing1, a.thing2, a.thing3) should similarly do implicit type conversion among the arguments. If two are INT and one is BIGINT, upgrade the INTs, etc.
> At the very least, it would be nice to have syntax like
> SELECT TRANSFORM(stuff)
> USING 'script'
> AS thing1 INT, thing2 INT
> ...which would effectively cast the output column to the specified type. But really, type conversion should work.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira