mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-07 19:47:50 +08:00
Ensure backwards compatibility for GetStableLatestTransactionId()
This commit is contained in:
parent
afe86a9e73
commit
867540b49c
@ -390,11 +390,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
|
||||
@ -403,13 +402,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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user