Re: InvalidXLogRecPtr in docs

Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>

From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Fujii Masao <masao.fujii@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>, Takahiro Itagaki <itagaki.takahiro@oss.ntt.co.jp>, pgsql-hackers@postgresql.org
Date: 2010-06-10T07:07:13Z
Lists: pgsql-hackers
On 10/06/10 09:42, Fujii Masao wrote:
> On Thu, Jun 10, 2010 at 11:56 AM, Tom Lane<tgl@sss.pgh.pa.us>  wrote:
>> Robert Haas<robertmhaas@gmail.com>  writes:
>>> On Wed, Jun 9, 2010 at 9:46 PM, Takahiro Itagaki
>>> <itagaki.takahiro@oss.ntt.co.jp>  wrote:
>>>> I found a term "InvalidXLogRecPtr" in 9.0 docs.
>>>> http://developer.postgresql.org/pgdocs/postgres/functions-admin.html#FUNCTIONS-RECOVERY-INFO-TABLE
>>>> | ... then the return value will be InvalidXLogRecPtr (0/0).
>>
>>> Maybe we should be returning NULL instead of 0/0.
>>
>> +1 for using NULL instead of an artificially chosen value, for both of
>> those functions.
>
> Okay, the attached patch makes those functions return NULL in that case.

Ah, I just committed a patch to do the same, before seeing your email. 
Thanks anyway.

BTW, the docs claim about pg_last_xlog_location() that "While streaming 
replication is in progress this will increase monotonically." That's a 
bit misleading: when the replication connection is broken for some 
reason and we restart it, we begin streaming from the beginning of the 
last WAL segment. So at that moment, pg_last_xlog_location() moves 
backwards to the beginning of the WAL segment.

Should we:
1. Just document that,
2. Change pg_last_xlog_location() to not move backwards in that case, or
3. Change the behavior so that we start streaming at the exact byte 
location where we left off?

I believe that starting from the beginning of the WAL segment is just 
paranoia, to avoid creating a WAL file that's missing some data from the 
beginning. Right?

-- 
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com