blob: 54cd1d2d557159ea9df78e1a6fa8fbd19beb2f15 [file] [log] [blame]
--
-- Test workfile limits
--
-- Ensure the queries below need to spill to disk.
set statement_mem='1 MB';
-- SRF materializes the result in a tuplestore. Check that
-- gp_workfile_limit_per_query is enforced.
select count(distinct g) from generate_series(1, 1000000) g;
set gp_workfile_limit_per_query='5 MB';
select count(distinct g) from generate_series(1, 1000000) g;
reset gp_workfile_limit_per_query;
-- Also test limit on number of files (gp_workfile_limit_files_per_query)
set gp_workfile_limit_files_per_query='4';
select count(g) from generate_series(1, 500000) g
union
select count(g) from generate_series(1, 500000) g
union
select count(g) from generate_series(1, 500000) g
order by 1;
set gp_workfile_limit_files_per_query='2';
select count(g) from generate_series(1, 500000) g
union
select count(g) from generate_series(1, 500000) g
union
select count(g) from generate_series(1, 500000) g
order by 1;
-- We cannot test the per-segment limit, because changing it requires
-- a postmaster restart. It's enforced in the same way as the per-query
-- limit, though, and it's simpler, so if the per-query limit works,
-- the per-segment limit probably works too.