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

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Andrey Lepikhov <a.lepikhov@postgrespro.ru>
Cc: Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>, hlinnaka@iki.fi, pgsql-hackers@postgresql.org
Date: 2018-11-20T01:30:56Z
Lists: pgsql-hackers
On Mon, Nov 19, 2018 at 10:48:06AM +0500, Andrey Lepikhov wrote:
> According to my experience, I clarify some comments to avoid this mistakes
> in the future (see attachment).

No objections from here.

> - * The returned pointer (or *errormsg) points to an internal buffer that's
> - * valid until the next call to XLogReadRecord.
> + * The returned pointer (or *errormsg) points to an internal read-only buffer
> + * that's valid until the next call to XLogReadRecord.

Not sure that this bit adds much.

> -	/* Buffer for current ReadRecord result (expandable) */
> +	/*
> +	 * Buffer for current ReadRecord result (expandable).
> +	 * Used in the case, than current ReadRecord result don't fit on the
> +	 * currently read WAL page.
> +	 */

Yeah, this one is not entirely true now.  What about the following
instead:
-   /* Buffer for current ReadRecord result (expandable) */
+   /*
+    * Buffer for current ReadRecord result (expandable), used when a record
+    * crosses a page boundary.
+    */
--
Michael

Commits

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

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