-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/38805/
-----------------------------------------------------------
Review request for hive.
Bugs: HIVE-11880
https://issues.apache.org/jira/browse/HIVE-11880
Repository: hive-git
Description
-------
For UNION ALL , when an union operator is constant column (such as '0L', BIGINT
Type) and its corresponding column has incompatible type (such as INT type).
Query with filter condition on type incompatible column on this UNION ALL will
cause IndexOutOfBoundsException.
Such as TPC-H table "orders",in the following query:
Type of 'orders'.'o_custkey' is INT normally, while the type of corresponding
constant column "0" is BIGINT( `0L AS `o_custkey` ).
This query (with filter "type incompatible column 'o_custkey' ") will fail with
java.lang.IndexOutOfBoundsException :
//
SELECT Count(1)
FROM (
SELECT `o_orderkey` ,
`o_custkey`
FROM `orders`
UNION ALL
SELECT `o_orderkey`,
0L AS `o_custkey`
FROM `orders`) `oo`
WHERE o_custkey<100000 limit 4 ;
//
when set hive.ppd.remove.duplicatefilters=true.
Diffs
-----
ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java c5f39d3
ql/src/java/org/apache/hadoop/hive/ql/ppd/OpProcFactory.java dbd021b
Diff: https://reviews.apache.org/r/38805/diff/
Testing
-------
Thanks,
meng wang