blob: 3442e8246b2cdb449b26c102284f60f30083c613 [file] [log] [blame]
--! qt:dataset:src
set hive.stats.dbclass=fs;
-- SORT_QUERY_RESULTS
create table src_10_n0 as select * from src limit 10;
create table src_lv1 (key string, value string);
create table src_lv2 (key string, value string);
create table src_lv3 (key string, value string);
-- 2LV
-- TS[0]-LVF[1]-SEL[2]-LVJ[5]-SEL[11]-FS[12]
-- -SEL[3]-UDTF[4]-LVJ[5]
-- -LVF[6]-SEL[7]-LVJ[10]-SEL[13]-FS[14]
-- -SEL[8]-UDTF[9]-LVJ[10]
explain
from src_10_n0
insert overwrite table src_lv1 select key, C lateral view explode(array(key+1, key+2)) A as C
insert overwrite table src_lv2 select key, C lateral view explode(array(key+3, key+4)) A as C;
from src_10_n0
insert overwrite table src_lv1 select key, C lateral view explode(array(key+1, key+2)) A as C
insert overwrite table src_lv2 select key, C lateral view explode(array(key+3, key+4)) A as C;
select * from src_lv1;
select * from src_lv2;
-- 2(LV+GBY)
-- TS[0]-LVF[1]-SEL[2]-LVJ[5]-SEL[11]-GBY[12]-RS[13]-GBY[14]-SEL[15]-FS[16]
-- -SEL[3]-UDTF[4]-LVJ[5]
-- -LVF[6]-SEL[7]-LVJ[10]-SEL[17]-GBY[18]-RS[19]-GBY[20]-SEL[21]-FS[22]
-- -SEL[8]-UDTF[9]-LVJ[10]
explain
from src_10_n0
insert overwrite table src_lv1 select key, sum(C) lateral view explode(array(key+1, key+2)) A as C group by key
insert overwrite table src_lv2 select key, sum(C) lateral view explode(array(key+3, key+4)) A as C group by key;
from src_10_n0
insert overwrite table src_lv1 select key, sum(C) lateral view explode(array(key+1, key+2)) A as C group by key
insert overwrite table src_lv2 select key, sum(C) lateral view explode(array(key+3, key+4)) A as C group by key;
select * from src_lv1;
select * from src_lv2;
-- (LV+GBY) + RS:2GBY
-- TS[0]-LVF[1]-SEL[2]-LVJ[5]-SEL[6]-GBY[7]-RS[8]-GBY[9]-SEL[10]-FS[11]
-- -SEL[3]-UDTF[4]-LVJ[5]
-- -FIL[12]-SEL[13]-RS[14]-FOR[15]-FIL[16]-GBY[17]-SEL[18]-FS[19]
-- -FIL[20]-GBY[21]-SEL[22]-FS[23]
explain
from src_10_n0
insert overwrite table src_lv1 select key, sum(C) lateral view explode(array(key+1, key+2)) A as C group by key
insert overwrite table src_lv2 select key, count(value) where key > 200 group by key
insert overwrite table src_lv3 select key, count(value) where key < 200 group by key;
from src_10_n0
insert overwrite table src_lv1 select key, sum(C) lateral view explode(array(key+1, key+2)) A as C group by key
insert overwrite table src_lv2 select key, count(value) where key > 200 group by key
insert overwrite table src_lv3 select key, count(value) where key < 200 group by key;
select * from src_lv1;
select * from src_lv2;
select * from src_lv3;
-- todo: shared distinct columns (should work with hive.optimize.multigroupby.common.distincts)
-- 2(LV+GBY) + RS:2GBY
-- TS[0]-LVF[1]-SEL[2]-LVJ[5]-SEL[11]-GBY[12]-RS[13]-GBY[14]-SEL[15]-FS[16]
-- -SEL[3]-UDTF[4]-LVJ[5]
-- -LVF[6]-SEL[7]-LVJ[10]-SEL[17]-GBY[18]-RS[19]-GBY[20]-SEL[21]-FS[22]
-- -SEL[8]-UDTF[9]-LVJ[10]
-- -SEL[23]-GBY[24]-RS[25]-GBY[26]-SEL[27]-FS[28]
explain
from src_10_n0
insert overwrite table src_lv1 select C, sum(distinct key) lateral view explode(array(key+1, key+2)) A as C group by C
insert overwrite table src_lv2 select C, sum(distinct key) lateral view explode(array(key+3, key+4)) A as C group by C
insert overwrite table src_lv3 select value, sum(distinct key) group by value;
from src_10_n0
insert overwrite table src_lv1 select C, sum(distinct key) lateral view explode(array(key+1, key+2)) A as C group by C
insert overwrite table src_lv2 select C, sum(distinct key) lateral view explode(array(key+3, key+4)) A as C group by C
insert overwrite table src_lv3 select value, sum(distinct key) group by value;
select * from src_lv1;
select * from src_lv2;
select * from src_lv3;
create table src_lv4 (key string, value string);
-- Common distincts optimization works across non-lateral view queries, but not across lateral view multi inserts
explain
from src_10_n0
insert overwrite table src_lv1 select key, sum(distinct C) lateral view explode(array(key+1, key+2)) A as C group by key
insert overwrite table src_lv2 select key, sum(distinct C) lateral view explode(array(key+3, key+4)) A as C group by key
insert overwrite table src_lv3 select value, sum(distinct key) where key > 200 group by value
insert overwrite table src_lv4 select value, sum(distinct key) where key < 200 group by value;
from src_10_n0
insert overwrite table src_lv1 select key, sum(distinct C) lateral view explode(array(key+1, key+2)) A as C group by key
insert overwrite table src_lv2 select key, sum(distinct C) lateral view explode(array(key+3, key+4)) A as C group by key
insert overwrite table src_lv3 select value, sum(distinct key) where key > 200 group by value
insert overwrite table src_lv4 select value, sum(distinct key) where key < 200 group by value;
select * from src_lv1;
select * from src_lv2;
select * from src_lv3;
select * from src_lv4;