Now that pg_upgrade will rewrite multixid members, starting from oldestMulti, it's important that oldestMulti is valid. Add a sanity check that oldestMulti is not newer than the oldest datminmxid value in pg_database. One case where this could happen is if the cluster was previously upgraded to version 9.3 with a buggy pg_upgrade version that didn't have commita61daa14d5. This new pg_upgrade check is similar to the defence that was added in commit78db307bb2to VACUUM to avoid truncating away multixids if oldestMulti is too new. This pg_upgrade check differs in that we don't try to soldier on with the upgrade if the oldestMultiXID is inconsistent, but rather just abort the upgrade. Reported-by: Noah Misch <noah@leadboat.com> Discussion: https://www.postgresql.org/message-id/20260827231757.78.noahmisch@microsoft.com Backpatch-through: 19
PostgreSQL Database Management System
This directory contains the source code distribution of the PostgreSQL database management system.
PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions. This distribution also contains C language bindings.
Copyright and license information can be found in the file COPYRIGHT.
General documentation about this version of PostgreSQL can be found at https://www.postgresql.org/docs/19/. In particular, information about building PostgreSQL from the source code can be found at https://www.postgresql.org/docs/19/installation.html.
The latest version of this software, and related software, may be obtained at https://www.postgresql.org/download/. For more information look at our web site located at https://www.postgresql.org/.