Rajesh Balamohan created HIVE-22039:
---------------------------------------

             Summary: Query with CBO crashes HS2 in corner cases 
                 Key: HIVE-22039
                 URL: https://issues.apache.org/jira/browse/HIVE-22039
             Project: Hive
          Issue Type: Bug
          Components: CBO
    Affects Versions: 2.3.4, 3.1.1
            Reporter: Rajesh Balamohan


Here is a very simple repro for this case.

This along with CBO would crash HS2. It runs into a infinite loop creating too 
many number of RexCalls and finally OOMs.

This is observed in 2.x, 3.x.

With 4.x (master branch), it does not happen. Master has 
{{calcite-core-1.19.0.jar}}, where as 3.x has {{calcite-core-1.16.0.jar}}. 

{noformat}

drop table if exists tableA;
drop table if exists tableB;

create table if not exists tableA(id int, reporting_date string) stored as orc;
create table if not exists tableB(id int, reporting_date string) partitioned by 
(datestr string) stored as orc;



explain with tableA_cte as (
    select
        id,
        reporting_date
    from tableA
  ),

tableA_cte_2 as (
    select
        0 as id,
        reporting_date
    from tableA
  ),

tableA_cte_5 as (
  select * from tableA_cte
  union 
  select * from tableA_cte_2  
),

tableB_cte_0 as (
    select
        id,
        reporting_date
    from tableB   
    where reporting_date  = '2018-10-29'    
  ),

tableB_cte_1 as (
    select
        0 as id,
        reporting_date
    from tableB  
    where datestr = '2018-10-29'  
  ),


tableB_cte_4 as (
    select * from tableB_cte_0
    union 
    select * from tableB_cte_1    
  )

select
  a.id as id,
  b.reporting_date
from tableA_cte_5 a
join tableB_cte_4 b on (a.id = b.id and a.reporting_date = b.reporting_date);

{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to