aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorJeff Davis <jdavis@postgresql.org>2020-06-11 11:58:16 -0700
committerJeff Davis <jdavis@postgresql.org>2020-06-11 12:57:43 -0700
commit92c58fd94801dd5c81ee20e26c5bb71ad64552a8 (patch)
tree9bcddd92b5d49527ff0cbf4af561e2ca9a0cd7c3 /doc/src
parent5940ffb221316ab73e6fdc780dfe9a07d4221ebb (diff)
downloadpostgresql-92c58fd94801dd5c81ee20e26c5bb71ad64552a8.tar.gz
postgresql-92c58fd94801dd5c81ee20e26c5bb71ad64552a8.zip
Rework HashAgg GUCs.
Eliminate enable_groupingsets_hash_disk, which was primarily useful for testing grouping sets that use HashAgg and spill. Instead, hack the table stats to convince the planner to choose hashed aggregation for grouping sets that will spill to disk. Suggested by Melanie Plageman. Rename enable_hashagg_disk to hashagg_avoid_disk_plan, and invert the meaning of on/off. The new name indicates more strongly that it only affects the planner. Also, the word "avoid" is less definite, which should avoid surprises when HashAgg still needs to use the disk. Change suggested by Justin Pryzby, though I chose a different GUC name. Discussion: https://postgr.es/m/CAAKRu_aisiENMsPM2gC4oUY1hHG3yrCwY-fXUg22C6_MJUwQdA%40mail.gmail.com Discussion: https://postgr.es/m/20200610021544.GA14879@telsasoft.com Backpatch-through: 13
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/config.sgml31
1 files changed, 8 insertions, 23 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 29088215603..783bf7a12ba 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -4546,23 +4546,6 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
</listitem>
</varlistentry>
- <varlistentry id="guc-enable-groupingsets-hash-disk" xreflabel="enable_groupingsets_hash_disk">
- <term><varname>enable_groupingsets_hash_disk</varname> (<type>boolean</type>)
- <indexterm>
- <primary><varname>enable_groupingsets_hash_disk</varname> configuration parameter</primary>
- </indexterm>
- </term>
- <listitem>
- <para>
- Enables or disables the query planner's use of hashed aggregation plan
- types for grouping sets when the total size of the hash tables is
- expected to exceed <varname>work_mem</varname>. See <xref
- linkend="queries-grouping-sets"/>. The default is
- <literal>off</literal>.
- </para>
- </listitem>
- </varlistentry>
-
<varlistentry id="guc-enable-hashagg" xreflabel="enable_hashagg">
<term><varname>enable_hashagg</varname> (<type>boolean</type>)
<indexterm>
@@ -4577,17 +4560,19 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
</listitem>
</varlistentry>
- <varlistentry id="guc-enable-hashagg-disk" xreflabel="enable_hashagg_disk">
- <term><varname>enable_hashagg_disk</varname> (<type>boolean</type>)
+ <varlistentry id="guc-hashagg-avoid-disk-plan" xreflabel="hashagg_avoid_disk_plan">
+ <term><varname>hashagg_avoid_disk_plan</varname> (<type>boolean</type>)
<indexterm>
- <primary><varname>enable_hashagg_disk</varname> configuration parameter</primary>
+ <primary><varname>hashagg_avoid_disk_plan</varname> configuration parameter</primary>
</indexterm>
</term>
<listitem>
<para>
- Enables or disables the query planner's use of hashed aggregation plan
- types when the memory usage is expected to exceed
- <varname>work_mem</varname>. The default is <literal>on</literal>.
+ If set to <literal>on</literal>, causes the planner to avoid choosing
+ hashed aggregation plans that are expected to use the disk. If hashed
+ aggregation is chosen, it may still require the use of disk at
+ execution time, even if this parameter is enabled. The default is
+ <literal>off</literal>.
</para>
</listitem>
</varlistentry>