blob: 1e9a9b99cf9010cddd31bff738864711480b037e [file] [log] [blame]
-- SORT_QUERY_RESULTS
set hive.support.concurrency=true;
set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
set hive.strict.checks.cartesian.product=false;
set hive.stats.fetch.column.stats=true;
set hive.materializedview.rewriting=true;
create table emps_n2 (
empid int,
deptno int,
name varchar(256),
salary float,
commission int)
stored as orc TBLPROPERTIES ('transactional'='true');
insert into emps_n2 values (100, 10, 'Bill', 10000, 1000), (200, 20, 'Eric', 8000, 500),
(150, 10, 'Sebastian', 7000, null), (110, 10, 'Theodore', 10000, 250), (120, 10, 'Bill', 10000, 250);
create table depts_n1 (
deptno int,
name varchar(256),
locationid int)
stored as orc TBLPROPERTIES ('transactional'='true');
insert into depts_n1 values (10, 'Sales', 10), (30, 'Marketing', null), (20, 'HR', 20);
create table dependents_n1 (
empid int,
name varchar(256))
stored as orc TBLPROPERTIES ('transactional'='true');
insert into dependents_n1 values (10, 'Michael'), (20, 'Jane');
create table locations_n1 (
locationid int,
name varchar(256))
stored as orc TBLPROPERTIES ('transactional'='true');
insert into locations_n1 values (10, 'San Francisco'), (20, 'San Diego');
alter table emps_n2 add constraint pk1 primary key (empid) disable novalidate rely;
alter table depts_n1 add constraint pk2 primary key (deptno) disable novalidate rely;
alter table dependents_n1 add constraint pk3 primary key (empid) disable novalidate rely;
alter table locations_n1 add constraint pk4 primary key (locationid) disable novalidate rely;
alter table emps_n2 add constraint fk1 foreign key (deptno) references depts_n1(deptno) disable novalidate rely;
alter table depts_n1 add constraint fk2 foreign key (locationid) references locations_n1(locationid) disable novalidate rely;
alter table emps_n2 change column deptno deptno int constraint nn1 not null disable novalidate rely;
alter table depts_n1 change column locationid locationid int constraint nn2 not null disable novalidate rely;
-- EXAMPLE 8
create materialized view mv1_n1 as
select name, deptno, salary from emps_n2 where deptno > 15 group by name, deptno, salary;
explain
select name from emps_n2 where deptno >= 20 group by name;
select name from emps_n2 where deptno >= 20 group by name;
drop materialized view mv1_n1;
-- EXAMPLE 12
create materialized view mv1_n1 as
select name, deptno, salary, count(*) as c, sum(empid) as s
from emps_n2 where deptno >= 15 group by name, deptno, salary;
explain
select name, sum(empid) as s
from emps_n2 where deptno > 15 group by name;
select name, sum(empid) as s
from emps_n2 where deptno > 15 group by name;
drop materialized view mv1_n1;
-- EXAMPLE 22
create materialized view mv1_n1 as
select depts_n1.deptno, dependents_n1.empid
from depts_n1
join dependents_n1 on (depts_n1.name = dependents_n1.name)
join locations_n1 on (locations_n1.name = dependents_n1.name)
join emps_n2 on (emps_n2.deptno = depts_n1.deptno)
where depts_n1.deptno > 10 and depts_n1.deptno < 20
group by depts_n1.deptno, dependents_n1.empid;
explain
select dependents_n1.empid
from depts_n1
join dependents_n1 on (depts_n1.name = dependents_n1.name)
join locations_n1 on (locations_n1.name = dependents_n1.name)
join emps_n2 on (emps_n2.deptno = depts_n1.deptno)
where depts_n1.deptno > 11 and depts_n1.deptno < 19
group by dependents_n1.empid;
select dependents_n1.empid
from depts_n1
join dependents_n1 on (depts_n1.name = dependents_n1.name)
join locations_n1 on (locations_n1.name = dependents_n1.name)
join emps_n2 on (emps_n2.deptno = depts_n1.deptno)
where depts_n1.deptno > 11 and depts_n1.deptno < 19
group by dependents_n1.empid;
drop materialized view mv1_n1;
-- EXAMPLE 24
create materialized view mv1_n1 as
select empid, depts_n1.deptno, count(*) as c, sum(empid) as s
from emps_n2 join depts_n1 using (deptno)
group by empid, depts_n1.deptno;
explain
select deptno from emps_n2 group by deptno;
select deptno from emps_n2 group by deptno;
drop materialized view mv1_n1;
-- EXAMPLE 26
create materialized view mv1_n1 as
select empid, depts_n1.deptno, count(*) as c, sum(empid) as s
from emps_n2 join depts_n1 using (deptno)
group by empid, depts_n1.deptno;
explain
select deptno, empid, sum(empid) as s, count(*) as c
from emps_n2 group by empid, deptno;
select deptno, empid, sum(empid) as s, count(*) as c
from emps_n2 group by empid, deptno;
drop materialized view mv1_n1;
-- EXAMPLE 30
create materialized view mv1_n1 as
select dependents_n1.empid, emps_n2.deptno, sum(salary) as s
from emps_n2
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
group by dependents_n1.empid, emps_n2.deptno;
explain
select dependents_n1.empid, sum(salary) as s
from emps_n2
join depts_n1 on (emps_n2.deptno = depts_n1.deptno)
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
group by dependents_n1.empid;
select dependents_n1.empid, sum(salary) as s
from emps_n2
join depts_n1 on (emps_n2.deptno = depts_n1.deptno)
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
group by dependents_n1.empid;
drop materialized view mv1_n1;
-- EXAMPLE 31
create materialized view mv1_n1 as
select dependents_n1.empid, emps_n2.deptno, sum(salary) as s
from emps_n2
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
group by dependents_n1.empid, emps_n2.deptno;
explain
select depts_n1.name, sum(salary) as s
from emps_n2
join depts_n1 on (emps_n2.deptno = depts_n1.deptno)
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
group by depts_n1.name;
select depts_n1.name, sum(salary) as s
from emps_n2
join depts_n1 on (emps_n2.deptno = depts_n1.deptno)
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
group by depts_n1.name;
drop materialized view mv1_n1;
-- EXAMPLE 41
create materialized view mv1_n1 as
select a.empid deptno from
(select * from emps_n2 where empid = 1) a
join depts_n1 on (a.deptno = depts_n1.deptno)
join dependents_n1 on (a.empid = dependents_n1.empid);
explain
select a.empid from
(select * from emps_n2 where empid = 1) a
join dependents_n1 on (a.empid = dependents_n1.empid);
select a.empid from
(select * from emps_n2 where empid = 1) a
join dependents_n1 on (a.empid = dependents_n1.empid);
drop materialized view mv1_n1;
-- EXAMPLE 42
create materialized view mv1_n1 as
select a.empid, a.deptno from
(select * from emps_n2 where empid = 1) a
join depts_n1 on (a.deptno = depts_n1.deptno)
join dependents_n1 on (a.empid = dependents_n1.empid);
explain
select a.empid from
(select * from emps_n2 where empid = 1) a
join dependents_n1 on (a.empid = dependents_n1.empid);
select a.empid from
(select * from emps_n2 where empid = 1) a
join dependents_n1 on (a.empid = dependents_n1.empid);
drop materialized view mv1_n1;
-- EXAMPLE 43
create materialized view mv1_n1 as
select empid deptno from
(select * from emps_n2 where empid = 1) a
join depts_n1 on (a.deptno = depts_n1.deptno);
explain
select empid from emps_n2 where empid = 1;
select empid from emps_n2 where empid = 1;
drop materialized view mv1_n1;
-- EXAMPLE 44
create materialized view mv1_n1 as
select emps_n2.empid, emps_n2.deptno from emps_n2
join depts_n1 on (emps_n2.deptno = depts_n1.deptno)
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
where emps_n2.empid = 1;
explain
select emps_n2.empid from emps_n2
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
where emps_n2.empid = 1;
select emps_n2.empid from emps_n2
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
where emps_n2.empid = 1;
drop materialized view mv1_n1;
-- EXAMPLE 45a
create materialized view mv1_n1 as
select emps_n2.empid, emps_n2.deptno from emps_n2
join depts_n1 a on (emps_n2.deptno=a.deptno)
join depts_n1 b on (emps_n2.deptno=b.deptno)
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
where emps_n2.empid = 1;
explain
select emps_n2.empid from emps_n2
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
where emps_n2.empid = 1;
select emps_n2.empid from emps_n2
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
where emps_n2.empid = 1;
drop materialized view mv1_n1;
-- EXAMPLE 45b
create materialized view mv1_n1 as
select emps_n2.empid, emps_n2.deptno from emps_n2
join depts_n1 a on (emps_n2.deptno=a.deptno)
join depts_n1 b on (emps_n2.deptno=b.deptno)
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
where emps_n2.name = 'Sebastian';
explain
select emps_n2.empid from emps_n2
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
where emps_n2.name = 'Sebastian';
select emps_n2.empid from emps_n2
join dependents_n1 on (emps_n2.empid = dependents_n1.empid)
where emps_n2.name = 'Sebastian';
drop materialized view mv1_n1;