On 9 May 2012 00:55, Simon Riggs <simon@2ndquadrant.com> wrote:
> On 8 May 2012 20:01, Peter Eisentraut <peter_e@gmx.net> wrote:
>> On ons, 2012-01-18 at 14:55 -0500, Tom Lane wrote:
>>> BTW, it strikes me that maybe the coding should work about like this:
>>>
>>> if (!TransactionIdIsValid(age_reference_xid))
>>> {
>>> age_reference_xid = GetTopTransactionIdIfAny();
>>> if (!TransactionIdIsValid(age_reference_xid))
>>> age_reference_xid = ReadNewTransactionId();
>>> }
>>> ... use age_reference_xid to compute result ...
>>>
>>> and of course code somewhere to reset age_reference_xid at end of xact.
>>
>> How about this patch?
>
> I think we should fix this, but not with this exact patch.
>
> We should just use MyPgXact->xid
> rather than add more to the transaction path
>
> I'll simplify the patch and commit.
Committed, but forgot to give appropriate credit. Sorry about that.
--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services