@ -367,12 +367,13 @@ SetTransactionIdLimit(TransactionId oldest_datfrozenxid, Oid oldest_datoid)
* We ' ll refuse to continue assigning XIDs in interactive mode once we get
* within 3 M transactions of data loss . This leaves lots of room for the
* DBA to fool around fixing things in a standalone backend , while not
* being significant compared to total XID space . ( Note that since
* vacuuming requires one transaction per table cleaned , we had better be
* sure there ' s lots of XIDs left . . . ) Also , at default BLCKSZ , this
* leaves two completely - idle segments . In the event of edge - case bugs
* involving page or segment arithmetic , idle segments render the bugs
* unreachable outside of single - user mode .
* being significant compared to total XID space . ( VACUUM requires an XID
* if it truncates at wal_level ! = minimal . " VACUUM (ANALYZE) " , which a DBA
* might do by reflex , assigns an XID . Hence , we had better be sure
* there ' s lots of XIDs left . . . ) Also , at default BLCKSZ , this leaves two
* completely - idle segments . In the event of edge - case bugs involving
* page or segment arithmetic , idle segments render the bugs unreachable
* outside of single - user mode .
*/
xidStopLimit = xidWrapLimit - 3000000 ;
if ( xidStopLimit < FirstNormalTransactionId )