aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/xid.c
diff options
context:
space:
mode:
authorSimon Riggs <simon@2ndQuadrant.com>2012-05-09 13:56:24 +0100
committerSimon Riggs <simon@2ndQuadrant.com>2012-05-09 13:56:24 +0100
commit5829387381d2e4edf84652bb5a712f6185860670 (patch)
treeba3174b5d564df2ac915dc0874584b91b4d373df /src/backend/utils/adt/xid.c
parent773b5e0efa409d06113c3654f53da511de673a51 (diff)
downloadpostgresql-5829387381d2e4edf84652bb5a712f6185860670.tar.gz
postgresql-5829387381d2e4edf84652bb5a712f6185860670.zip
Avoid xid error from age() function when run on Hot Standby
Diffstat (limited to 'src/backend/utils/adt/xid.c')
-rw-r--r--src/backend/utils/adt/xid.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/utils/adt/xid.c b/src/backend/utils/adt/xid.c
index 1829b8242d2..eeda081ad18 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))