add PROCESS_MAIN to VACUUM

From: Nathan Bossart <nathandbossart(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: add PROCESS_MAIN to VACUUM
Date: 2022-12-30 00:00:28
Message-ID: 20221230000028.GA435655@nathanxps13
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi hackers,

I originally suggested $ЅUBJECT as part of the thread that ultimately led
to the addition of PROCESS_TOAST [0], but we decided not to proceed with
it. Recently, this idea came up again [1], so I thought I'd give it
another try.

The motivation for adding this option is to make it easier to VACUUM only a
relation's TOAST table. At the moment, you need to find the TOAST table by
examining a relation's reltoastrelid, and you need USAGE on the pg_toast
schema. This option could also help make it possible to call only
vac_update_datfrozenxid() without processing any relations, as discussed
elsewhere [2].

The demand for all these niche VACUUM options is likely limited, but it
does seem like there are some useful applications. If a new option is out
of the question, perhaps this functionality could be added to the existing
PROCESS_TOAST option.

[0] https://postgr.es/m/BA8951E9-1524-48C5-94AF-73B1F0D7857F%40amazon.com
[1] https://postgr.es/m/20221215191246.GA252861%40nathanxps13
[2] https://postgr.es/m/20221229213719.GA301584%40nathanxps13

--
Nathan Bossart
Amazon Web Services: https://aws.amazon.com

Attachment Content-Type Size
v1-0001-add-PROCESS_MAIN-to-VACUUM.patch text/x-diff 13.2 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2022-12-30 00:18:36 Re: Missing update of all_hasnulls in BRIN opclasses
Previous Message Peter Geoghegan 2022-12-29 23:10:54 Re: Avoiding unnecessary clog lookups while freezing