From 057ea3471f2e66da5e9d2c017a5484b885c44adf Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 15 Aug 2004 17:03:36 +0000 Subject: [PATCH] Xmin calculations should consider only top transaction IDs, and therefore starting with GetCurrentTransactionId is wrong. Fixes miscomputation of RecentGlobalXmin leading to bizarre behavior reported by Gavin Sherry. --- src/backend/storage/ipc/sinval.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/storage/ipc/sinval.c b/src/backend/storage/ipc/sinval.c index 57e39da4a4..af046a3f1e 100644 --- a/src/backend/storage/ipc/sinval.c +++ b/src/backend/storage/ipc/sinval.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/ipc/sinval.c,v 1.67 2004/08/01 17:32:16 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/storage/ipc/sinval.c,v 1.68 2004/08/15 17:03:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -673,7 +673,7 @@ GetOldestXmin(bool allDbs) TransactionId result; int index; - result = GetCurrentTransactionId(); + result = GetTopTransactionId(); LWLockAcquire(SInvalLock, LW_SHARED); @@ -763,7 +763,7 @@ GetSnapshotData(Snapshot snapshot, bool serializable) errmsg("out of memory"))); } - globalxmin = xmin = GetCurrentTransactionId(); + globalxmin = xmin = GetTopTransactionId(); /* * If we are going to set MyProc->xmin then we'd better get exclusive