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 <[email protected]> Discussion: https://postgr.es/m/ca+qey+dcnszrl4gzd8jyju5hd-d6p8_9m5kt4jgf3gq3rh8...@mail.gmail.com Discussion: https://postgr.es/m/[email protected] 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(+)
