blob: 4608d41e85a513fb03ee2634af3538c504564d50 [file] [log] [blame]
--
-- Direct Dispatch Test when optimizer is on
--
-- start_ignore
set optimizer_log=on;
set optimizer_force_multistage_agg=on;
-- end_ignore
set test_print_direct_dispatch_info=on;
set gp_autostats_mode = 'None';
-- composite keys
create table dd_multicol_1(a int, b int);
create table dd_multicol_2(a int, b int);
insert into dd_multicol_1 select g, g%2 from generate_series(1, 100) g;
insert into dd_multicol_1 values(null, null);
insert into dd_multicol_1 values(1, null);
insert into dd_multicol_1 values(null, 1);
analyze dd_multicol_1;
insert into dd_multicol_2 select g, g%2 from generate_series(1, 100) g;
insert into dd_multicol_2 values(null, null);
insert into dd_multicol_2 values(1, null);
insert into dd_multicol_2 values(null, 1);
-- composite distr key
select * from dd_multicol_1 where a in (1,3) and b in (1,2);
select * from dd_multicol_1 where a = 1 and b in (1,2);
select * from dd_multicol_1 where (a=1 and b=1) or (a=2 and b=2);
select * from dd_multicol_1 where (a=1 or a=3) and (b=1 or b=2);
select * from dd_multicol_1 where a is null or a=1;
select * from dd_multicol_1 where (a is null or a=1) and b=2;
select * from dd_multicol_1 where (a,b) in ((1,2),(3,4));
-- composite distr key: projections
select b from dd_multicol_1 where (a=1 or a=3) and (b=1 or b=2);
select count(*) from dd_multicol_1;
select count(*) from dd_multicol_2;
-- simple predicates
select * from dd_multicol_1 where a=1 and b=1;
select * from dd_multicol_1 where a=1 and b=2;
select * from dd_multicol_1 where b=1 and a=2;
select * from dd_multicol_1 where a is null and b=1;
select * from dd_multicol_1 where a is null and b is null;
select * from dd_multicol_2 where a=1 and b=1;
select * from dd_multicol_2 where a=1 and b=2;
select * from dd_multicol_2 where b=1 and a=2;
select * from dd_multicol_2 where a is null and b=1;
select * from dd_multicol_2 where a is null and b is null;
-- projections
select b from dd_multicol_1 where a=1 and b=1;
select a+b from dd_multicol_1 where a=1 and b=1;
select 'one' from dd_multicol_1 where a=1 and b=1;
select a, 'one' from dd_multicol_1 where a=1 and b=1;
-- group by and sort
select a, count(*) from dd_multicol_1 where a=1 and b=1 group by a,b;
select a, count(*) from dd_multicol_1 where a=1 and b=1 group by a,b order by a,b;
-- incomplete specification
select * from dd_multicol_1 where a=1;
select * from dd_multicol_1 where a>80 and b=1;
select * from dd_multicol_1 where a<=5 and b>0;
reset optimizer_force_multistage_agg;