Sourabh Badhya created HIVE-26582:
-------------------------------------
Summary: Cartesian join fails if the query has an empty table when
cartesian product edge is used
Key: HIVE-26582
URL: https://issues.apache.org/jira/browse/HIVE-26582
Project: Hive
Issue Type: Bug
Reporter: Sourabh Badhya
The following example fails when "hive.tez.cartesian-product.enabled" is
enabled -
Test command -
{code:java}
mvn test -Dtest=TestMiniLlapCliDriver -Dqfile=file.q
-Dtest.output.overwrite=true {code}
Query - file.q
{code:java}
set hive.tez.cartesian-product.enabled=true;
create table c (a1 int) stored as orc;
create table tmp1 (a int) stored as orc;
create table tmp2 (a int) stored as orc;
insert into table c values (3);
insert into table tmp1 values (3);
with
first as (
select a1 from c where a1 = 3
),
second as (
select a from tmp1
union all
select a from tmp2
)
select a from second cross join first; {code}
The following stack trace is seen -
{code:java}
Caused by: java.lang.IllegalArgumentException: Number of items is 0. Should be
positive
at
org.apache.tez.common.Preconditions.checkArgument(Preconditions.java:38)
at org.apache.tez.runtime.library.utils.Grouper.init(Grouper.java:41)
at
org.apache.tez.runtime.library.cartesianproduct.FairCartesianProductEdgeManager.initialize(FairCartesianProductEdgeManager.java:66)
at
org.apache.tez.runtime.library.cartesianproduct.CartesianProductEdgeManager.initialize(CartesianProductEdgeManager.java:51)
at org.apache.tez.dag.app.dag.impl.Edge.initialize(Edge.java:213)
... 22 more{code}
The following error is seen because one of the tables (tmp2 in this case) has 0
rows in it.
The query works fine when the config hive.tez.cartesian-product.enabled is set
to false.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)