pgsql: Forbid pg_get_multixact_stats() during recovery

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Forbid pg_get_multixact_stats() during recovery
Date: 2026-09-24 00:36:21
Message-ID: E1x9XRl-00000000zUI-26ja@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Forbid pg_get_multixact_stats() during recovery

MultiXactState->oldestOffset is not maintained during recovery, so
calling pg_get_multixact_stats() in this context would report misleading
information. We could try to work this out by adding this field to the
control file, for example, but such a change would be too invasive at
this stage of the v19 development cycle.

The information of pg_get_multixact_stats() is usually useful to control
the need of some VACUUM or some freezing, operations that cannot happen
on a standby, so the argument to make the function work while recovery
is in progress gets thinner with this point in the balance.

The function is updated to return an ERROR when called under
RecoveryInProgress().

Per discussion with Heikki Linnakangas and Naga Appani.

Reported-by: Noah Misch <noah(at)leadboat(dot)com>
Discussion: https://postgr.es/m/CA+QeY+DcnsZRL4GZD8JyJu5HD-d6p8_9M5kT4jgF3gq3Rh8n4w@mail.gmail.com
Discussion: https://postgr.es/m/20260827231757.78.noahmisch@microsoft.com
Backpatch-through: 19

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4545cee303c257e58195e3d033c05bf38e2cd4d6

Modified Files
--------------
src/backend/utils/adt/multixactfuncs.c | 8 ++++++++
1 file changed, 8 insertions(+)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Eisentraut 2026-09-24 09:23:16 pgsql: Use warning option -Wshadow=local
Previous Message Michael Paquier 2026-09-23 23:51:11 pgsql: Allocate pgstats entry body before insert into shared hashtable