Skip to content

Global settings (GUC)

Dmitry Ivanov edited this pageOct 11, 2017· 5 revisions

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

OptionValueDescription
pg_pathman.enableon / offdisable (or enable) pg_pathman completely
pg_pathman.enable_runtimeappendon / offtoggle RuntimeAppend custom node
pg_pathman.enable_runtimemergeappendon / offtoggle RuntimeMergeAppend custom node
pg_pathman.enable_partitionfilteron / offtoggle PartitionFilter custom node [1]
pg_pathman.enable_auto_partitionon / offtoggle automatic partition creation
pg_pathman.enable_bounds_cacheon / offtoggle bounds cache [2]
pg_pathman.insert_into_fdwenumallow INSERTs into various FDWs (disabled / postgres / any_fdw)
pg_pathman.override_copyon / offtoggle 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();