summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas2010-03-11 09:26:59 +0000
committerHeikki Linnakangas2010-03-11 09:26:59 +0000
commite0f9e2b648c8e6f237549c353b7b3179654451d1 (patch)
treeea8dc8e51ec1ba35c5b603b58d16dee0789f019c
parentdaaeac88aaf60823e1328fa950d324818638c934 (diff)
Fix bug in KnownAssignedXidsMany(). I saw this when looking at the
assertion failure reported by Erik Rijkers, but this alone doesn't explain the failure.
-rw-r--r--src/backend/storage/ipc/procarray.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c
index baa2e43f50d..e9277592589 100644
--- a/src/backend/storage/ipc/procarray.c
+++ b/src/backend/storage/ipc/procarray.c
@@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/ipc/procarray.c,v 1.60 2010/02/26 02:01:00 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/ipc/procarray.c,v 1.61 2010/03/11 09:26:59 heikki Exp $
*
*-------------------------------------------------------------------------
*/
@@ -448,6 +448,7 @@ ProcArrayApplyRecoveryInfo(RunningTransactions running)
/*
* Remove stale transactions, if any.
*/
+ Assert(TransactionIdIsValid(running->oldestRunningXid));
ExpireOldKnownAssignedTransactionIds(running->oldestRunningXid);
StandbyReleaseOldLocks(running->oldestRunningXid);
@@ -2518,7 +2519,7 @@ KnownAssignedXidsRemoveMany(TransactionId xid, bool keepPreparedXacts)
if (!TransactionIdIsValid(xid) || TransactionIdPrecedes(removeXid, xid))
{
- if (keepPreparedXacts && StandbyTransactionIdIsPrepared(xid))
+ if (keepPreparedXacts && StandbyTransactionIdIsPrepared(removeXid))
continue;
else
{