You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Jesus Camacho Rodriguez (JIRA)" <ji...@apache.org> on 2015/11/04 13:39:27 UTC

[jira] [Created] (HIVE-12335) CBO (Calcite Return Path): Support for unique join

Jesus Camacho Rodriguez created HIVE-12335:
----------------------------------------------

             Summary: CBO (Calcite Return Path): Support for unique join
                 Key: HIVE-12335
                 URL: https://issues.apache.org/jira/browse/HIVE-12335
             Project: Hive
          Issue Type: Sub-task
          Components: CBO
            Reporter: Jesus Camacho Rodriguez
            Assignee: Jesus Camacho Rodriguez


As of Calcite 1.5, Calcite might identify some join operators as unique joins. HiveOpConverter should support the translation into Hive unique joins.

Currently the translation is not working properly, as the unique join fails at runtime (probably due to some aux data structures not being filled up correctly).

The following query in cbo_rp_gby.q, run with the latest Calcite 1.5 snapshot, produces this error at runtime:

{noformat}
select cbo_t3.c_int, c, count(*) from (select key as a, c_int+1 as b, sum(c_int) as c from cbo_t1 where (cbo_t1.c_int + 1 >= 0) and (cbo_t1.c_int > 0 or cbo_t1.c_float >= 0)  group by c_float, cbo_t1.c_int, key having cbo_t1.c_float > 0 and (c_int >=1 or c_float >= 1) and (c_int + c_float) >= 0) cbo_t1 join (select key as p, c_int+1 as q, sum(c_int) as r from cbo_t2 where (cbo_t2.c_int + 1 >= 0) and (cbo_t2.c_int > 0 or cbo_t2.c_float >= 0)  group by c_float, cbo_t2.c_int, key having cbo_t2.c_float > 0 and (c_int >=1 or c_float >= 1) and (c_int + c_float) >= 0) cbo_t2 on cbo_t1.a=p join cbo_t3 on cbo_t1.a=key where (b + cbo_t2.q >= 0) and (b > 0 or c_int >= 0) group by cbo_t3.c_int, c;
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)