Fujii Masao wrote:
> *** a/src/backend/replication/walsender.c
> --- b/src/backend/replication/walsender.c
> ***************
> *** 661,666 **** XLogSend(StringInfo outMsg)
> --- 661,673 ----
>
> sentPtr = endptr;
>
> + if (sentPtr.xrecoff >= XLogFileSize)
> + {
> + /* crossing a logid boundary */
> + sentPtr.xlogid += 1;
> + sentPtr.xrecoff = 0;
> + }
> +
> /*
> * Read the log directly into the output buffer to prevent
> * extra memcpy calls.
>
Before that, endptr is advanced using XLByteAdvance() macro, which does
handle xlogid boundaries. Is XLByteAdvance() broken?
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com