pgsql: Forbid pg_get_multixact_stats() during recovery - Mailing list pgsql-committers

From Michael Paquier
Subject pgsql: Forbid pg_get_multixact_stats() during recovery
Date
Msg-id E1x9XRl-00000000zUK-2ERy@gemulon.postgresql.org
Whole thread
List 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@leadboat.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
------
REL_19_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/8fbbb338bed77c6fa8dc6fa309cbcca93c1c2d72

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


pgsql-committers by date:

Previous
From: Michael Paquier
Date:
Subject: pgsql: Allocate pgstats entry body before insert into shared hashtable
Next
From: Peter Eisentraut
Date:
Subject: pgsql: Use warning option -Wshadow=local