On 2014-05-25 11:40:09 -0400, Heikki Linnakangas wrote: > So, vac_truncate_clog() tries to get a new transaction ID, which fails > because we've already reached the stop-limit. vac_truncate_clog() doesn't > really need a new XID to be assigned, though, it only uses it to compare > against datfrozenxid to see if wrap-around has already happened, so it could > use ReadNewTransactionId() instead.
Right. But IIRC we need one in the vicinity anyway to write new pg_database et al rows?
pg_database and pg_class are updated with heap_inplace_update in these cases.
The page gets a new LSN, but the tuples do not get a new transaction ID.