Skip to content

Commit 5eea78a

Browse files
committed
Doc: mention executor memory usage for enable_partitionwise* GUCs
Prior to this commit, the docs for enable_partitionwise_aggregate and enable_partitionwise_join mentioned the additional overheads enabling these causes for the query planner, but they mentioned nothing about the possible surge in work_mem-consuming executor nodes that could end up in the final plan. Dimitrios reported the OOM killer intervened on his query as a result of using enable_partitionwise_aggregate=on. Here we adjust the docs to mention the possible increase in the number of work_mem-consuming executor nodes that can appear in the final plan as a result of enabling these GUCs. Reported-by: Dimitrios Apostolou Reviewed-by: Ashutosh Bapat Discussion: https://postgr.es/m/3603c380-d094-136e-e333-610914fb3e80%40gmx.net Discussion: https://postgr.es/m/CAApHDvoZ0_yqwPFEpb6h261L76BUpmh5GxBQq0LeRzQ5Jh3zzg@mail.gmail.com Backpatch-through: 12, oldest supported version
1 parent da5d7a7 commit 5eea78a

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

doc/src/sgml/config.sgml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4925,9 +4925,13 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
49254925
joining the matching partitions. Partitionwise join currently applies
49264926
only when the join conditions include all the partition keys, which
49274927
must be of the same data type and have one-to-one matching sets of
4928-
child partitions. Because partitionwise join planning can use
4929-
significantly more CPU time and memory during planning, the default is
4930-
<literal>off</literal>.
4928+
child partitions. With this setting enabled, the number of nodes
4929+
whose memory usage is restricted by <varname>work_mem</varname>
4930+
appearing in the final plan can increase linearly according to the
4931+
number of partitions being scanned. This can result in a large
4932+
increase in overall memory consumption during the execution of the
4933+
query. Query planning also becomes significantly more expensive in
4934+
terms of memory and CPU. The default value is <literal>off</literal>.
49314935
</para>
49324936
</listitem>
49334937
</varlistentry>
@@ -4945,9 +4949,13 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
49454949
tables to be performed separately for each partition. If the
49464950
<literal>GROUP BY</literal> clause does not include the partition
49474951
keys, only partial aggregation can be performed on a per-partition
4948-
basis, and finalization must be performed later. Because
4949-
partitionwise grouping or aggregation can use significantly more CPU
4950-
time and memory during planning, the default is
4952+
basis, and finalization must be performed later. With this setting
4953+
enabled, the number of nodes whose memory usage is restricted by
4954+
<varname>work_mem</varname> appearing in the final plan can increase
4955+
linearly according to the number of partitions being scanned. This
4956+
can result in a large increase in overall memory consumption during
4957+
the execution of the query. Query planning also becomes significantly
4958+
more expensive in terms of memory and CPU. The default value is
49514959
<literal>off</literal>.
49524960
</para>
49534961
</listitem>

0 commit comments

Comments
 (0)