blob: 651b26344d5ad5a4883062655fdacab77eb1fe7e [file] [log] [blame]
drop schema if exists misc_jiras;
create schema misc_jiras;
--
-- Test backward scanning of tuplestore spill files.
--
-- When tuplestore cannot store all the data in memory it will spill some of
-- the data to temporary files. In gpdb we used to disable the backward
-- scanning from these spill files because we could not determine the tuple
-- type, memtup or heaptup, correctly. The issue is fixed, the backward
-- scanning should be supported now.
--
create table misc_jiras.t1 (c1 int, c2 text, c3 smallint) distributed by (c1);
insert into misc_jiras.t1 select i % 13, md5(i::text), i % 3
from generate_series(1, 60000) i;
-- tuplestore in windowagg uses statement_mem to control the in-memory data size,
-- set a small value to trigger the spilling.
set statement_mem to '1024kB';
set extra_float_digits=0; -- the last decimal digits are somewhat random
-- Inject fault at 'winagg_after_spool_tuples' to show that the tuplestore spills
-- to disk.
SELECT gp_inject_fault('winagg_after_spool_tuples', 'skip', dbid)
FROM gp_segment_configuration WHERE role='p' AND content>=0;
select sum(cc) from (
select c1
, c2
, case when count(c3) = 0 then -1.0
else cume_dist() over (partition by c1,
case when count(c3) > 0 then 1 else 0 end
order by count(c3), c2)
end as cc
from misc_jiras.t1
group by 1, 2
) tt;
SELECT gp_inject_fault('winagg_after_spool_tuples', 'reset', dbid)
FROM gp_segment_configuration WHERE role='p' AND content>=0;
reset statement_mem;
-- non-ASCII multibyte character should show up correctly in error messages.
select '溋' || (B'1');
-- Github Issue 17271
-- test create zero-column table will throw warning only on QD
-- test policy on each segment (including coordinator)
create table t_17271();
-- coordinator policy
select localoid::regclass::text, policytype,numsegments,distkey,distclass
from gp_distribution_policy where localoid = 't_17271'::regclass::oid;
-- segment policy
select localoid::regclass::text, policytype,numsegments,distkey,distclass
from gp_dist_random('gp_distribution_policy') where localoid = 't_17271'::regclass::oid;
create table t1_17271(a int , b int);
create table t2_17271 as select from t1_17271 group by a;
-- coordinator policy
select localoid::regclass::text, policytype,numsegments,distkey,distclass
from gp_distribution_policy where localoid = 't2_17271'::regclass::oid;
-- segment policy
select localoid::regclass::text, policytype,numsegments,distkey,distclass
from gp_dist_random('gp_distribution_policy') where localoid = 't2_17271'::regclass::oid;
drop table t_17271;
drop table t1_17271;
drop table t2_17271;