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.
This commit is contained in:
parent
4ddf151c49
commit
346d7cd7fa
@ -1,4 +1,4 @@
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.517 2010/06/05 14:56:36 tgl Exp $ -->
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.518 2010/06/10 07:00:25 heikki Exp $ -->
|
||||
|
||||
<chapter id="functions">
|
||||
<title>Functions and Operators</title>
|
||||
@ -13280,13 +13280,12 @@ postgres=# SELECT * FROM pg_xlogfile_name_offset(pg_stop_backup());
|
||||
<literal><function>pg_last_xlog_receive_location</function>()</literal>
|
||||
</entry>
|
||||
<entry><type>text</type></entry>
|
||||
<entry>Get last transaction log location received and synced to disk during
|
||||
streaming recovery. If streaming recovery is still in progress
|
||||
this will increase monotonically. If streaming recovery has completed
|
||||
then this value will remain static at the value of the last WAL record
|
||||
received and synced to disk during that recovery. When the server has
|
||||
been started without a streaming recovery then the return value will be
|
||||
InvalidXLogRecPtr (0/0).
|
||||
<entry>Get last transaction log location received and synced to disk by
|
||||
streaming replication. While streaming replication is in progress
|
||||
this will increase monotonically. If recovevery has completed
|
||||
this will remain static at the value of the last WAL record
|
||||
received and synced to disk during recovery. If streaming replication
|
||||
is disabled, or it has not yet started, the function returns NULL.
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
@ -13298,8 +13297,8 @@ postgres=# SELECT * FROM pg_xlogfile_name_offset(pg_stop_backup());
|
||||
If recovery is still in progress this will increase monotonically.
|
||||
If recovery has completed then this value will remain static at
|
||||
the value of the last WAL record applied during that recovery.
|
||||
When the server has been started normally without a recovery
|
||||
then the return value will be InvalidXLogRecPtr (0/0).
|
||||
When the server has been started normally without recovery
|
||||
the function returns NULL.
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
|
@ -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));
|
||||
|
Loading…
Reference in New Issue
Block a user