Re: [PATCH] XLogReadRecord returns pointer to currently read page

Andrei Lepikhov <a.lepikhov@postgrespro.ru>

From: Andrey Lepikhov <a.lepikhov@postgrespro.ru>
To: Michael Paquier <michael@paquier.xyz>, Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>
Cc: hlinnaka@iki.fi, pgsql-hackers@postgresql.org
Date: 2018-11-19T05:48:06Z
Lists: pgsql-hackers

Attachments


On 16.11.2018 11:23, Michael Paquier wrote:
> On Thu, Nov 15, 2018 at 06:12:38PM +0900, Kyotaro HORIGUCHI wrote:
>> This patch eliminates unnecessary copying that was done for
>> non-continued records. Now the return value of XLogReadRecord
>> directly points into page buffer holded in XLogReaderStats. It is
>> safe because no caller site uses the returned pointer beyond the
>> replacement of buffer content at the next call to the same
>> function.
> 
> I was looking at this patch, and shouldn't we worry about compatibility
> with plugins or utilities which look directly at what's in readRecordBuf
> for the record contents?  Let's not forget that the contents of
> XLogReaderState are public.

According to my experience, I clarify some comments to avoid this 
mistakes in the future (see attachment).

-- 
Andrey Lepikhov
Postgres Professional
https://postgrespro.com
The Russian Postgres Company

Commits

  1. Improve description of buffer used to store records in WAL reader

  2. Remove unnecessary memcpy when reading WAL record fitting on page