Skip to content

Global settings (GUC)

Dmitry Ivanov edited this page Aug 9, 2017 · 5 revisions

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

  • pg_pathman.enable --- disable (or enable) pg_pathman completely
  • pg_pathman.enable_runtimeappend --- toggle RuntimeAppend custom node on\off
  • pg_pathman.enable_runtimemergeappend --- toggle RuntimeMergeAppend custom node on\off
  • pg_pathman.enable_partitionfilter --- toggle PartitionFilter custom node on\off
  • pg_pathman.enable_auto_partition --- toggle automatic partition creation on\off (per session)
  • pg_pathman.enable_bounds_cache --- toggle bounds cache on\off (faster updates of partitioning scheme)
  • pg_pathman.insert_into_fdw --- allow INSERTs into various FDWs (disabled | postgres | any_fdw)
  • pg_pathman.override_copy --- toggle COPY statement hooking on\off

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
Clone this wiki locally