You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Raghotham Murthy (JIRA)" <ji...@apache.org> on 2009/03/11 09:40:50 UTC
[jira] Commented: (HIVE-285) UNION ALL does not allow different
types in the same column
[ https://issues.apache.org/jira/browse/HIVE-285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12680803#action_12680803 ]
Raghotham Murthy commented on HIVE-285:
---------------------------------------
type conversion in UNION will lead to confusing behavior.
for a query like the following on two tables R(a int) and S(a string)
select a from R
union all
select a from S
What will the schema of the result of the join be? int or string?
> UNION ALL does not allow different types in the same column
> -----------------------------------------------------------
>
> Key: HIVE-285
> URL: https://issues.apache.org/jira/browse/HIVE-285
> Project: Hadoop Hive
> Issue Type: Bug
> Components: Query Processor
> Affects Versions: 0.2.0, 0.3.0
> Reporter: Zheng Shao
> Assignee: Raghotham Murthy
> Fix For: 0.3.0
>
> Attachments: hive-285.1.patch
>
>
> {code}
> explain INSERT OVERWRITE TABLE t
> SELECT s.r, s.c, sum(s.v) FROM
> (
> SELECT a.r AS r, a.c AS c, a.v AS v FROM t1 a
> UNION ALL
> SELECT b.r AS r, b.c AS c, 0 + b.v AS v FROM t2 b
> ) s
> GROUP BY s.r, s.c;
> {code}
> Both a and b have 3 string columns: r, c, and v.
> It compiled successfully but failed during runtime.
> "Explain" shows that the plan for the 2 union-all operands have different output types that are converged to STRING, but there is no UDFToString inserted for "0 + b.v AS v" and as a result, SerDe was failing because it expects a String but is passed a Double.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.