blob: 876d83e487fd58b941c2c9fd2ab560c39148a95f [file] [log] [blame]
--! qt:transactional
set hive.fetch.task.conversion=none;
set hive.strict.checks.type.safety=false;
create table sketch_input (id int, category char(1))
STORED AS ORC
TBLPROPERTIES ('transactional'='true');
insert into table sketch_input values
(1,'a'),(1, 'a'), (2, 'a'), (3, 'a'), (4, 'a'), (5, 'a'), (6, 'a'), (7, 'a'), (8, 'a'), (9, 'a'), (10, 'a'),
(6,'b'),(6, 'b'), (7, 'b'), (8, 'b'), (9, 'b'), (10, 'b'), (11, 'b'), (12, 'b'), (13, 'b'), (14, 'b'), (15, 'b')
;
-- create an mv for the intermediate results
create materialized view mv_1 as
select category,ds_kll_sketch(cast(id as float)) from sketch_input group by category;
-- bi mode on
set hive.optimize.bi.enabled=true;
explain
select 'rewrite; mv matching', id, rank() over (order by id) from sketch_input order by id;
select 'rewrite; mv matching', id, rank() over (order by id) from sketch_input order by id;
set hive.optimize.bi.enabled=false;
explain
select 'no rewrite; no mv matching', id, rank() over (order by id) from sketch_input order by id;
select 'no rewrite; no mv matching', id, rank() over (order by id) from sketch_input order by id;
set hive.optimize.bi.enabled=true;
insert into table sketch_input values
(1,'a'),(1, 'a'), (2, 'a'), (3, 'a'), (4, 'a'), (5, 'a'), (6, 'a'), (7, 'a'), (8, 'a'), (9, 'a'), (10, 'a'),
(6,'b'),(6, 'b'), (7, 'b'), (8, 'b'), (9, 'b'), (10, 'b'), (11, 'b'), (12, 'b'), (13, 'b'), (14, 'b'), (15, 'b')
;
explain
select 'rewrite; no mv matching', id, rank() over (order by id) from sketch_input order by id;
select 'rewrite; no mv matching', id, rank() over (order by id) from sketch_input order by id;
explain
alter materialized view mv_1 rebuild;
alter materialized view mv_1 rebuild;
explain
select 'rewrite; mv matching', id, rank() over (order by id) from sketch_input order by id;
select 'rewrite; mv matching', id, rank() over (order by id) from sketch_input order by id;
-- rewrite+mv matching with rollup
explain
select 'rewrite; mv matching', category, id, rank() over (partition by category order by id) from sketch_input order by category,id;
select 'rewrite; mv matching', category, id, rank() over (partition by category order by id) from sketch_input order by category,id;
drop materialized view mv_1;