postgres.git / summary / log / commit / refs
commit e7c43ddc266172f409f5d5bb3e571cafe7d14fa2
Author: Simon Riggs <simon@2ndQuadrant.com>
Date: Wed May 09 12:59:30 2012 +0000
First released in: 9.2.0, REL9_0_STABLE (reverted before release), REL9_1_STABLE (reverted before release)
Reverted by: d9e1ea4de8c9 (in 9.0.8), 3dfaea4727fb (in 9.1.4)
Avoid xid error from age() function when run on Hot Standby
src/backend/utils/adt/xid.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/backend/utils/adt/xid.c b/src/backend/utils/adt/xid.c
index 76d29ff2a37..229e8e43e69 100644
--- a/src/backend/utils/adt/xid.c
+++ b/src/backend/utils/adt/xid.c
@@ -93,7 +93,10 @@ Datum
xid_age(PG_FUNCTION_ARGS)
{
TransactionId xid = PG_GETARG_TRANSACTIONID(0);
- TransactionId now = GetTopTransactionId();
+ TransactionId now = GetTopTransactionIdIfAny();
+
+ if (!TransactionIdIsValid(now))
+ now = ReadNewTransactionId();
/* Permanent XIDs are always infinitely old */
if (!TransactionIdIsNormal(xid))
[parent: 1c0e678678a6]