blob: dbc5fe275bff3edc85ba6433dfb4dd64b86eea7e [file] [log] [blame]
drop extension if exists gp_debug_numsegments;
create extension gp_debug_numsegments;
--
-- GOOD: valid text values: random, full, minimal
--
select gp_debug_get_create_table_default_numsegments();
create table t_default_first (c1 int, c2 int) distributed by (c1);
select gp_debug_set_create_table_default_numsegments('random');
select gp_debug_get_create_table_default_numsegments();
create table t_default_random (c1 int, c2 int) distributed by (c1);
select localoid::regclass, policytype
from gp_distribution_policy
where localoid='t_default_random'::regclass
and numsegments between 1 and 3;
drop table t_default_random;
select gp_debug_set_create_table_default_numsegments('full');
select gp_debug_get_create_table_default_numsegments();
create table t_default_full (c1 int, c2 int) distributed by (c1);
select gp_debug_set_create_table_default_numsegments('minimal');
select gp_debug_get_create_table_default_numsegments();
create table t_default_minimal (c1 int, c2 int) distributed by (c1);
select gp_debug_set_create_table_default_numsegments('FULL');
create table "t_default_FULL" (c1 int, c2 int) distributed by (c1);
select gp_debug_set_create_table_default_numsegments('Full');
create table "t_default_Full" (c1 int, c2 int) distributed by (c1);
select gp_debug_set_create_table_default_numsegments('fulL');
create table "t_default_fulL" (c1 int, c2 int) distributed by (c1);
--
-- GOOD: valid integer values between [1, gp_num_contents_in_cluster]
--
select gp_debug_set_create_table_default_numsegments(1);
select gp_debug_get_create_table_default_numsegments();
create table t_default_1 (c1 int, c2 int) distributed by (c1);
select gp_debug_set_create_table_default_numsegments(2);
select gp_debug_get_create_table_default_numsegments();
create table t_default_2 (c1 int, c2 int) distributed by (c1);
select gp_debug_set_create_table_default_numsegments(3);
select gp_debug_get_create_table_default_numsegments();
create table t_default_3 (c1 int, c2 int) distributed by (c1);
select c.relname, d.policytype, d.numsegments
from gp_distribution_policy d
join pg_class c
on d.localoid=c.oid
and c.relname like 't_default_%';
--
-- BAD: syntax error
--
select gp_debug_set_create_table_default_numsegments('reset');
select gp_debug_set_create_table_default_numsegments('unknown');
select gp_debug_set_create_table_default_numsegments(' full');
select gp_debug_set_create_table_default_numsegments('full ');
select gp_debug_set_create_table_default_numsegments('1');
select gp_debug_set_create_table_default_numsegments('');
--
-- BAD: out of range
--
select gp_debug_set_create_table_default_numsegments(0);
select gp_debug_set_create_table_default_numsegments(-1);
select gp_debug_set_create_table_default_numsegments(4);
select gp_debug_set_create_table_default_numsegments(999);
--
-- BAD: cannot execute on segments
--
select gp_debug_set_create_table_default_numsegments(1)
from gp_dist_random('gp_id');
select gp_debug_get_create_table_default_numsegments()
from gp_dist_random('gp_id');