Re: age(xid) on hot standby
Peter Eisentraut <peter_e@gmx.net>
From: Peter Eisentraut <peter_e@gmx.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@commandprompt.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2012-01-15T13:00:03Z
Lists: pgsql-hackers
On ons, 2011-12-28 at 14:35 -0500, Tom Lane wrote: > Alvaro Herrera <alvherre@commandprompt.com> writes: > > Excerpts from Peter Eisentraut's message of mié dic 28 15:04:09 -0300 2011: > >> On a hot standby, this fails with: > >> ERROR: cannot assign TransactionIds during recovery > > > I think we could just have the xid_age call > > GetCurrentTransactionIdIfAny, and if that returns InvalidXid, use > > ReadNewTransactionId instead. That xid_age assigns a transaction seems > > more of an accident than really intended. > > The trouble with using ReadNewTransactionId is that it makes the results > volatile, not stable as the function is declared to be. Could we alleviate that problem with some caching within the function?