aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/transam/xlog.c
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2010-06-10 07:00:27 +0000
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2010-06-10 07:00:27 +0000
commit346d7cd7fa5723d45b52b1e61c0cb0ba41a8ce99 (patch)
treea835e2df1c8e8729105caabe444a734584cc9682 /src/backend/access/transam/xlog.c
parent4ddf151c49b5ed3524ececc42226bf456cd8beaf (diff)
downloadpostgresql-346d7cd7fa5723d45b52b1e61c0cb0ba41a8ce99.tar.gz
postgresql-346d7cd7fa5723d45b52b1e61c0cb0ba41a8ce99.zip
Return NULL instead of 0/0 in pg_last_xlog_receive_location() and
pg_last_xlog_replay_location(). Per Robert Haas's suggestion, after Itagaki Takahiro pointed out an issue in the docs. Also, some wording changes in the docs by me.
Diffstat (limited to 'src/backend/access/transam/xlog.c')
-rw-r--r--src/backend/access/transam/xlog.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 4718b538e89..ecd7df2107a 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.419 2010/06/09 15:04:06 heikki Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.420 2010/06/10 07:00:27 heikki Exp $
*
*-------------------------------------------------------------------------
*/
@@ -8757,6 +8757,9 @@ pg_last_xlog_receive_location(PG_FUNCTION_ARGS)
recptr = GetWalRcvWriteRecPtr();
+ if (recptr.xlogid == 0 && recptr.xrecoff == 0)
+ PG_RETURN_NULL();
+
snprintf(location, sizeof(location), "%X/%X",
recptr.xlogid, recptr.xrecoff);
PG_RETURN_TEXT_P(cstring_to_text(location));
@@ -8780,6 +8783,9 @@ pg_last_xlog_replay_location(PG_FUNCTION_ARGS)
recptr = xlogctl->recoveryLastRecPtr;
SpinLockRelease(&xlogctl->info_lck);
+ if (recptr.xlogid == 0 && recptr.xrecoff == 0)
+ PG_RETURN_NULL();
+
snprintf(location, sizeof(location), "%X/%X",
recptr.xlogid, recptr.xrecoff);
PG_RETURN_TEXT_P(cstring_to_text(location));