Rework HashAgg GUCs.
authorJeff Davis
Thu, 11 Jun 2020 18:58:16 +0000 (11:58 -0700)
committerJeff Davis
Thu, 11 Jun 2020 20:05:37 +0000 (13:05 -0700)
commit13e0fa7ae50cd0e91158877dba37098492b234e8
tree5f0b7f40a63aab5ce3a658bb967b568b0afba5a1
parent6df7105e5d50460623421d00f24aaa46b66fa570
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[email protected]
Backpatch-through: 13
doc/src/sgml/config.sgml
src/backend/optimizer/path/costsize.c
src/backend/optimizer/plan/planner.c
src/backend/utils/misc/guc.c
src/include/optimizer/cost.h
src/test/regress/expected/aggregates.out
src/test/regress/expected/groupingsets.out
src/test/regress/expected/sysviews.out
src/test/regress/sql/aggregates.sql
src/test/regress/sql/groupingsets.sql