summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2012-05-31 15:12:26 +0000
committerTom Lane2012-05-31 15:12:26 +0000
commit3dfaea4727fb3d98e28f4cb9d707c33e2bdbfa7d (patch)
treef9bc7bc89c6d76037db0bd54f8a327db03ca175f
parent56901beb806bde7af419ad67f49086aaca4fc8df (diff)
Revert back-branch changes in behavior of age(xid).
Per discussion, it does not seem like a good idea to change the behavior of age(xid) in a minor release, even though the old definition causes the function to fail on hot standby slaves. Therefore, revert commit 5829387381d2e4edf84652bb5a712f6185860670 and follow-on commits in the back branches only.
-rw-r--r--src/backend/access/transam/xact.c24
-rw-r--r--src/backend/utils/adt/xid.c4
-rw-r--r--src/include/access/xact.h1
3 files changed, 2 insertions, 27 deletions
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index 184fe28f5c5..a38fed18fb6 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -392,30 +392,6 @@ GetCurrentTransactionIdIfAny(void)
return CurrentTransactionState->transactionId;
}
-/*
- * GetStableLatestTransactionId
- *
- * Get the XID once and then return same value for rest of transaction.
- * Acts as a useful reference point for maintenance tasks.
- */
-TransactionId
-GetStableLatestTransactionId(void)
-{
- static LocalTransactionId lxid = InvalidLocalTransactionId;
- static TransactionId stablexid = InvalidTransactionId;
-
- if (lxid != MyProc->lxid)
- {
- lxid = MyProc->lxid;
- stablexid = GetTopTransactionIdIfAny();
- if (!TransactionIdIsValid(stablexid))
- stablexid = ReadNewTransactionId();
- }
-
- Assert(TransactionIdIsValid(stablexid));
-
- return stablexid;
-}
/*
* AssignTransactionId
diff --git a/src/backend/utils/adt/xid.c b/src/backend/utils/adt/xid.c
index 0613bd09286..76d29ff2a37 100644
--- a/src/backend/utils/adt/xid.c
+++ b/src/backend/utils/adt/xid.c
@@ -87,13 +87,13 @@ xideq(PG_FUNCTION_ARGS)
}
/*
- * xid_age - compute age of an XID (relative to latest stable xid)
+ * xid_age - compute age of an XID (relative to current xact)
*/
Datum
xid_age(PG_FUNCTION_ARGS)
{
TransactionId xid = PG_GETARG_TRANSACTIONID(0);
- TransactionId now = GetStableLatestTransactionId();
+ TransactionId now = GetTopTransactionId();
/* Permanent XIDs are always infinitely old */
if (!TransactionIdIsNormal(xid))
diff --git a/src/include/access/xact.h b/src/include/access/xact.h
index 29ef4a1bce3..cb440d41f14 100644
--- a/src/include/access/xact.h
+++ b/src/include/access/xact.h
@@ -198,7 +198,6 @@ extern TransactionId GetTopTransactionId(void);
extern TransactionId GetTopTransactionIdIfAny(void);
extern TransactionId GetCurrentTransactionId(void);
extern TransactionId GetCurrentTransactionIdIfAny(void);
-extern TransactionId GetStableLatestTransactionId(void);
extern SubTransactionId GetCurrentSubTransactionId(void);
extern CommandId GetCurrentCommandId(bool used);
extern TimestampTz GetCurrentTransactionStartTimestamp(void);