pgsql: Add option PROCESS_TOAST to VACUUM - Mailing list pgsql-committers

From Michael Paquier
Subject pgsql: Add option PROCESS_TOAST to VACUUM
Date
Msg-id E1l9LPR-0005JP-RJ@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Add option PROCESS_TOAST to VACUUM

This option controls if toast tables associated with a relation are
vacuumed or not when running a manual VACUUM.  It was already possible
to trigger a manual VACUUM on a toast relation without processing its
main relation, but a manual vacuum on a main relation always forced a
vacuum on its toast table.  This is useful in scenarios where the level
of bloat or transaction age of the main and toast relations differs a
lot.

This option is an extension of the existing VACOPT_SKIPTOAST that was
used by autovacuum to control if toast relations should be skipped or
not.  This internal flag is renamed to VACOPT_PROCESS_TOAST for
consistency with the new option.

A new option switch, called --no-process-toast, is added to vacuumdb.

Author: Nathan Bossart
Reviewed-by: Kirk Jamison, Michael Paquier, Justin Pryzby
Discussion: https://postgr.es/m/BA8951E9-1524-48C5-94AF-73B1F0D7857F@amazon.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/7cb3048f38e26b39dd5fd412ed8a4981b6809b35

Modified Files
--------------
doc/src/sgml/ref/vacuum.sgml         | 15 +++++++++++++++
doc/src/sgml/ref/vacuumdb.sgml       | 15 +++++++++++++++
src/backend/commands/vacuum.c        | 17 ++++++++++++++---
src/backend/postmaster/autovacuum.c  |  5 +++--
src/bin/psql/tab-complete.c          |  5 +++--
src/bin/scripts/t/100_vacuumdb.pl    | 19 +++++++++++++------
src/bin/scripts/vacuumdb.c           | 28 ++++++++++++++++++++++++++++
src/include/commands/vacuum.h        |  2 +-
src/test/regress/expected/vacuum.out |  6 ++++++
src/test/regress/sql/vacuum.sql      |  6 ++++++
10 files changed, 104 insertions(+), 14 deletions(-)


pgsql-committers by date:

Previous
From: Peter Geoghegan
Date:
Subject: pgsql: Correct pgstattuple B-Tree page comments.
Next
From: Fujii Masao
Date:
Subject: pgsql: Display the time when the process started waiting for the lock,