You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Vineet Garg (JIRA)" <ji...@apache.org> on 2019/03/05 02:14:00 UTC

[jira] [Assigned] (HIVE-21387) Wrong result for UNION query with GROUP BY consisting of PK columns

     [ https://issues.apache.org/jira/browse/HIVE-21387?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vineet Garg reassigned HIVE-21387:
----------------------------------


> Wrong result for UNION query with GROUP BY consisting of PK columns
> -------------------------------------------------------------------
>
>                 Key: HIVE-21387
>                 URL: https://issues.apache.org/jira/browse/HIVE-21387
>             Project: Hive
>          Issue Type: Bug
>          Components: Query Planning
>    Affects Versions: 4.0.0
>            Reporter: Vineet Garg
>            Assignee: Vineet Garg
>            Priority: Major
>
> *Reproducer*
> {code:sql}
> create table t1(i int primary key disable rely, j int);
> insert into t1 values(1,100),(2,200);
> create table t2(i int primary key disable rely, j int);
> insert into t2 values(2,1000),(4,500);
> select i from (select i, j from t1 union all select i,j from t2) subq group by i,j;
> {code}
> *Expected Result*
> {noformat}
> 2
> 2
> 4
> 1
> {noformat}
> *Actual Result*
> {noformat}
> 1
> 2
> 4
> {noformat}
> *CBO Plan*
> {code:sql}
> HiveAggregate(group=[{0}])
>   HiveProject(i=[$0], j=[$1])
>     HiveUnion(all=[true])
>       HiveProject(i=[$0], j=[$1])
>         HiveTableScan(table=[[default, t1]], table:alias=[t1])
>       HiveProject(i=[$0], j=[$1])
>         HiveTableScan(table=[[default, t2]], table:alias=[t2])
> {code}
> This is due to Group by reduction logic reducing keys when it shouldn't. Because of UNION relative cardinality of the group by keys are changed (they are not PK/UNIQUE anymore). Therefore we shouldn't be trying to reduce group by keys at all.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)