Skip to content

Global settings (GUC)

Dmitry Ivanov edited this page Oct 11, 2017 · 5 revisions

There are several global settings (GUC variables) that can affect pg_pathman's behavior:

Option Value Description
pg_pathman.enable on / off disable (or enable) pg_pathman completely
pg_pathman.enable_runtimeappend on / off toggle RuntimeAppend custom node
pg_pathman.enable_runtimemergeappend on / off toggle RuntimeMergeAppend custom node
pg_pathman.enable_partitionfilter on / off toggle PartitionFilter custom node [1]
pg_pathman.enable_auto_partition on / off toggle automatic partition creation
pg_pathman.enable_bounds_cache on / off toggle bounds cache [2]
pg_pathman.insert_into_fdw enum allow INSERTs into various FDWs (disabled / postgres / any_fdw)
pg_pathman.override_copy on / off toggle COPY statement hooking (useful for pg_dump)

[1] Disables tuple routing (which means that all INSERTed tuples will end up in parent table).
[2] Speeds up pg_pathman's cache updates after append_range_partition() etc.


The most useful ones are:

pg_pathman.enable

This GUC is used heavily for debug purposes. Whenever we want to compare pg_pathman's behavior to the default one, we execute pg_pathman.enable = off and then do whatever we wanted to. It may not be as useful to the end users, though.

pg_pathman.enable_runtimeappend

This GUC is your best friend when runtime partition pruning doesn't work as expected. Simply execute

psql -c "alter system set pg_pathman.enable_runtimeappend = off"
pg_ctl reload

This will fix all broken queries (e.g. issue #91) that involve RuntimeAppend custom node.

pg_pathman.override_copy

If you've run run into troubles with pg_dump, try disabling this GUC:

psql -c "alter system set pg_pathman.override_copy = off"
pg_ctl reload # or select pg_reload_conf();