On Sun, May 25, 2014 at 8:53 AM, Andres Freund <and...@2ndquadrant.com> wrote:
> 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. Cheers, Jeff