1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-11 20:28:21 +03:00

Ensure backwards compatibility for GetStableLatestTransactionId()

This commit is contained in:
Simon Riggs
2012-05-12 13:25:34 +01:00
parent 2c1382d96c
commit 436af241c8

View File

@ -392,11 +392,10 @@ GetCurrentTransactionIdIfAny(void)
return CurrentTransactionState->transactionId;
}
/*
* GetStableLatestTransactionIdIfAny
* GetStableLatestTransactionId
*
* Get the latest XID once and then return same value for rest of transaction.
* Get the XID once and then return same value for rest of transaction.
* Acts as a useful reference point for maintenance tasks.
*/
TransactionId
@ -405,13 +404,16 @@ GetStableLatestTransactionId(void)
static LocalTransactionId lxid = InvalidLocalTransactionId;
static TransactionId stablexid = InvalidTransactionId;
if (lxid != MyProc->lxid ||
!TransactionIdIsValid(stablexid))
if (lxid != MyProc->lxid)
{
lxid = MyProc->lxid;
stablexid = ReadNewTransactionId();
stablexid = GetTopTransactionIdIfAny();
if (!TransactionIdIsValid(stablexid))
stablexid = ReadNewTransactionId();
}
Assert(TransactionIdIsValid(stablexid));
return stablexid;
}