summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorSimon Riggs <simon@2ndQuadrant.com>2011-11-02 08:52:59 +0000
committerSimon Riggs <simon@2ndQuadrant.com>2011-11-02 08:52:59 +0000
commit656bba95af3950b26e9e97d86d29787d89e2b423 (patch)
treee24596755701b1765ac8f7089109cfa0392b8e46 /src/include
parentff8451aa14c8513e429cbef09ddc72e79da366a5 (diff)
Derive oldestActiveXid at correct time for Hot Standby.
There was a timing window between when oldestActiveXid was derived and when it should have been derived that only shows itself under heavy load. Move code around to ensure correct timing of derivation. No change to StartupSUBTRANS() code, which is where this failed. Bug report by Chris Redekop
Diffstat (limited to 'src/include')
-rw-r--r--src/include/storage/procarray.h1
-rw-r--r--src/include/storage/standby.h2
2 files changed, 2 insertions, 1 deletions
diff --git a/src/include/storage/procarray.h b/src/include/storage/procarray.h
index 55ca71c1085..40734935b39 100644
--- a/src/include/storage/procarray.h
+++ b/src/include/storage/procarray.h
@@ -46,6 +46,7 @@ extern Snapshot GetSnapshotData(Snapshot snapshot);
extern bool TransactionIdIsInProgress(TransactionId xid);
extern bool TransactionIdIsActive(TransactionId xid);
extern TransactionId GetOldestXmin(bool allDbs, bool ignoreVacuum);
+extern TransactionId GetOldestActiveTransactionId(void);
extern int GetTransactionsInCommit(TransactionId **xids_p);
extern bool HaveTransactionsInCommit(TransactionId *xids, int nxids);
diff --git a/src/include/storage/standby.h b/src/include/storage/standby.h
index 2df838f40fc..7b56847a26a 100644
--- a/src/include/storage/standby.h
+++ b/src/include/storage/standby.h
@@ -111,6 +111,6 @@ typedef RunningTransactionsData *RunningTransactions;
extern void LogAccessExclusiveLock(Oid dbOid, Oid relOid);
extern void LogAccessExclusiveLockPrepare(void);
-extern void LogStandbySnapshot(TransactionId *oldestActiveXid, TransactionId *nextXid);
+extern void LogStandbySnapshot(TransactionId *nextXid);
#endif /* STANDBY_H */