pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Nathan Bossart <nathan@postgresql.org>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Fix pg_stat_autovacuum_scores for TOAST tables.
Date: Fri, 28 Aug 2026 20:13:15 +0000
Message-ID: <E1x02ws-00000002XWv-2Oap@gemulon.postgresql.org> (raw)

Fix pg_stat_autovacuum_scores for TOAST tables.

In v19, pg_stat_autovacuum_scores computes a TOAST table's scores
from its own storage parameters alone.  On the other hand,
autovacuum falls back to the main table's parameters when the TOAST
table has none.  This means that the view may report scores that
don't match what autovacuum would calculate.  This contradicts the
documented promise that the view generates its results the same way
autovacuum workers do.  To fix, teach the view to do the same
fallback.  As in do_autovacuum(), we must make a preliminary pass
over pg_class to collect the main tables' parameters, since the
pg_class scan may see TOAST tables before their main tables.

Commit fad70a09ff for v20 improved autovacuum's handling of TOAST
storage parameters and adjusted the view to match, but it was
deemed too intrusive to back-patch.  This fix is for v19 only.

Oversight in commit 87f61f0c82.

Reported-by: Masahiko Sawada <sawada.mshk@gmail.com>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Discussion: https://postgr.es/m/CAD21AoB1CJRVfCDh8qYuD3eueiygXxk7F3nybgjN0RZXSD-QUw%40mail.gmail.com
Backpatch-through: 19 only

Branch
------
REL_19_STABLE

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

Modified Files
--------------
src/backend/postmaster/autovacuum.c | 73 ++++++++++++++++++++++++++++++++++++-
1 file changed, 71 insertions(+), 2 deletions(-)



Message-ID: <E1x02ws-00000002XWv-2Oap@gemulon.postgresql.org>
Permalink:  ../E1x02ws-00000002XWv-2Oap@gemulon.postgresql.org/
Also on:    postgresql.org/message-id/E1x02ws-00000002XWv-2Oap@gemulon.postgresql.org

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-committers@postgresql.org
  Cc: nathan@postgresql.org, pgsql-committers@lists.postgresql.org
  Subject: Re: pgsql: Fix pg_stat_autovacuum_scores for TOAST tables.
  In-Reply-To: <E1x02ws-00000002XWv-2Oap@gemulon.postgresql.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox