Skip to content

Commit 057ee91

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 e54a42a commit 057ee91

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
@@ -5567,9 +5567,13 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
55675567
joining the matching partitions. Partitionwise join currently applies
55685568
only when the join conditions include all the partition keys, which
55695569
must be of the same data type and have one-to-one matching sets of
5570-
child partitions. Because partitionwise join planning can use
5571-
significantly more CPU time and memory during planning, the default is
5572-
<literal>off</literal>.
5570+
child partitions. With this setting enabled, the number of nodes
5571+
whose memory usage is restricted by <varname>work_mem</varname>
5572+
appearing in the final plan can increase linearly according to the
5573+
number of partitions being scanned. This can result in a large
5574+
increase in overall memory consumption during the execution of the
5575+
query. Query planning also becomes significantly more expensive in
5576+
terms of memory and CPU. The default value is <literal>off</literal>.
55735577
</para>
55745578
</listitem>
55755579
</varlistentry>
@@ -5587,9 +5591,13 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
55875591
tables to be performed separately for each partition. If the
55885592
<literal>GROUP BY</literal> clause does not include the partition
55895593
keys, only partial aggregation can be performed on a per-partition
5590-
basis, and finalization must be performed later. Because
5591-
partitionwise grouping or aggregation can use significantly more CPU
5592-
time and memory during planning, the default is
5594+
basis, and finalization must be performed later. With this setting
5595+
enabled, the number of nodes whose memory usage is restricted by
5596+
<varname>work_mem</varname> appearing in the final plan can increase
5597+
linearly according to the number of partitions being scanned. This
5598+
can result in a large increase in overall memory consumption during
5599+
the execution of the query. Query planning also becomes significantly
5600+
more expensive in terms of memory and CPU. The default value is
55935601
<literal>off</literal>.
55945602
</para>
55955603
</listitem>

0 commit comments

Comments
 (0)