[
https://issues.apache.org/jira/browse/HIVE-8448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14173744#comment-14173744
]
Yongzhi Chen commented on HIVE-8448:
------------------------------------
[~szehon] and [~jdere], I checked the failure tests. 2 of them are new ones,
but it related to login so it should not be caused by the change.
The rest of the failures are aged more than 2 days, and do not have union
operations in the queries. So I think the all the test failures
are not related to the change.
Thanks.
> Union All might not work due to the type conversion issue
> ---------------------------------------------------------
>
> Key: HIVE-8448
> URL: https://issues.apache.org/jira/browse/HIVE-8448
> Project: Hive
> Issue Type: Bug
> Affects Versions: 0.13.1
> Reporter: Chaoyu Tang
> Assignee: Yongzhi Chen
> Priority: Minor
> Attachments: HIVE-8448.4.patch
>
>
> create table t1 (val date);
> insert overwrite table t1 select '2014-10-10' from src limit 1;
> create table t2 (val varchar(10));
> insert overwrite table t2 select '2014-10-10' from src limit 1;
> ==
> Query:
> select t.val from
> (select val from t1
> union all
> select val from t1
> union all
> select val from t2
> union all
> select val from t1) t;
> ==
> Will throw exception:
> {code}
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Incompatible
> types for union operator
> at
> org.apache.hadoop.hive.ql.exec.UnionOperator.initializeOp(UnionOperator.java:86)
> at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:380)
> at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:464)
> at
> org.apache.hadoop.hive.ql.exec.Operator.initializeChildren(Operator.java:420)
> at
> org.apache.hadoop.hive.ql.exec.SelectOperator.initializeOp(SelectOperator.java:65)
> at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:380)
> at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:464)
> at
> org.apache.hadoop.hive.ql.exec.Operator.initializeChildren(Operator.java:420)
> at
> org.apache.hadoop.hive.ql.exec.TableScanOperator.initializeOp(TableScanOperator.java:193)
> at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:380)
> at
> org.apache.hadoop.hive.ql.exec.MapOperator.initializeOp(MapOperator.java:443)
> at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:380)
> at
> org.apache.hadoop.hive.ql.exec.mr.ExecMapper.configure(ExecMapper.java:133)
> ... 22 more
> {code}
> It was because at this query parse step, getCommonClassForUnionAll is used,
> but at execution getCommonClass is used. They are not used consistently in
> union. The later one does not support the implicit conversion from date to
> string, which is the problem cause.
> The change might be simple to fix this particular union issue but I noticed
> that there are three versions of getCommonClass: getCommonClass,
> getCommonClassForComparison, getCommonClassForUnionAll, and wonder if they
> need to be cleaned and refactored.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)