blob: c11bcc8b6e70e8112e2c594115e837a5de43fa37 [file] [view]
By default all tables are created on all the segments, with this extension we
could check or change the default behavior.
How does it work? Each table has a property numsegments to record how many
segments its data is distributed one, the value is decided on `CREATE TABLE`
according to an internal variable `gp_create_table_default_numsegments`, its
value can be an integer number between 1 (the minimal segment count) and
`getgpsegmentCount()` (all the primary segments in the cluster), or one of
below magic numbsers (policies):
- `GP_DEFAULT_NUMSEGMENTS_FULL`: all the segments;
- `GP_DEFAULT_NUMSEGMENTS_MINIMAL`: the minimal set of segments;
- `GP_DEFAULT_NUMSEGMENTS_RANDOM`: pick a random set of segments each time;
This extension provides functions to get, set and reset this internal
variable:
- `gp_debug_set_create_table_default_numsegments(integer)`:
set the default numsegments to an integer number between 1 and
`gp_num_contents_in_cluster`;
- `gp_debug_set_create_table_default_numsegments(text)`:
set the default numsegments to one of the policies: `FULL`, `MINIMAL` and
`RANDOM`;
- `gp_debug_reset_create_table_default_numsegments(integer)` and
`gp_debug_reset_create_table_default_numsegments(text)`:
reset the default numsegments to the specified number or policy, the value
can be reused later;
- `gp_debug_reset_create_table_default_numsegments()`:
reset the default numsegments to the last value passed in above two forms,
if there is no previous call to it the value is `FULL`;
- `gp_debug_get_create_table_default_numsegments()`:
get the current number or policy of the default numsegments;
The changes are effective within the session.
As the name suggests, this extension should only be used for debugging
purpose.