[
https://issues.apache.org/jira/browse/HIVE-11880?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
WangMeng updated HIVE-11880:
----------------------------
Description:
For Hive UNION ALL , when an union column is constant(column a such as '0L')
and it has incompatible type with the corresponding column A(INT Type).
Query with filter condition on type incompatible column a on this UNION ALL
will cause IndexOutOfBoundsException.
Such as TPC-H table "orders", we create View by :
CREATE VIEW `view_orders` AS
SELECT `oo`.`o_orderkey` ,
`oo`.`o_custkey`
FROM (
SELECT `orders`.`o_orderkey` ,
`rcfileorders`.`o_custkey`
FROM `rcfileorders`
UNION ALL
SELECT `orcfileorders`.`o_orderkey` ,
0L AS `o_custkey`
FROM `textfileorders`) `oo`.
In view_orders , type of 'o_custkey' is INT normally, while the type of
corresponding column constant "0" is BIGINT.
When hive.ppd.remove.duplicatefilters=true, the fllowing query (with filter "
incompatible column 'o_custkey' ") will fail with
java.lang.IndexOutOfBoundsException:
'select count(1) from view_orders where o_custkey<100000 '.
was:
For Hive UNION ALL , when an union column is constant(column a such as '0L')
and it has incompatible type with the corresponding column A.
Query with filter condition on type incompatible column a on this UNION ALL
will cause IndexOutOfBoundsException.
Such as TPC-H table "orders", we create View by :
CREATE VIEW `view_orders` AS
SELECT `oo`.`o_orderkey` ,
`oo`.`o_custkey`
FROM (
SELECT `orders`.`o_orderkey` ,
`rcfileorders`.`o_custkey`
FROM `rcfileorders`
UNION ALL
SELECT `orcfileorders`.`o_orderkey` ,
0L AS `o_custkey`
FROM `textfileorders`) `oo`.
In view_orders , type of 'o_custkey' is INT normally, while the type of
corresponding column constant "0" is BIGINT.
Then the fllowing query(with filter " incompatible column 'o_custkey' ")
will fail with java.lang.IndexOutOfBoundsException:
'select count(1) from view_orders where o_custkey<100000 '.
> IndexOutOfBoundsException when query with filter condition on type
> incompatible column of UNION ALL when hive.ppd.remove.duplicatefilters=true
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: HIVE-11880
> URL: https://issues.apache.org/jira/browse/HIVE-11880
> Project: Hive
> Issue Type: Bug
> Components: Query Processor
> Affects Versions: 1.2.1
> Reporter: WangMeng
> Assignee: WangMeng
> Attachments: HIVE-11880.01.patch
>
>
> For Hive UNION ALL , when an union column is constant(column a such as
> '0L') and it has incompatible type with the corresponding column A(INT
> Type).
> Query with filter condition on type incompatible column a on this UNION ALL
> will cause IndexOutOfBoundsException.
> Such as TPC-H table "orders", we create View by :
> CREATE VIEW `view_orders` AS
> SELECT `oo`.`o_orderkey` ,
> `oo`.`o_custkey`
> FROM (
> SELECT `orders`.`o_orderkey` ,
> `rcfileorders`.`o_custkey`
> FROM `rcfileorders`
> UNION ALL
> SELECT `orcfileorders`.`o_orderkey` ,
> 0L AS `o_custkey`
> FROM `textfileorders`) `oo`.
> In view_orders , type of 'o_custkey' is INT normally, while the type of
> corresponding column constant "0" is BIGINT.
> When hive.ppd.remove.duplicatefilters=true, the fllowing query (with filter
> " incompatible column 'o_custkey' ") will fail with
> java.lang.IndexOutOfBoundsException:
> 'select count(1) from view_orders where o_custkey<100000 '.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)