On 27.01.2011 06:44, Fujii Masao wrote:
> + XLByteToSeg(endptr, endlogid, endlogseg);
> <snip>
> + /* Have we reached our stop position yet? */
> + if (logid> endlogid ||
> + (logid == endlogid&& logseg>= endlogseg))
> + break;
>
> What I said in upthread is wrong. We should use XLByteToPrevSeg
> for endptr and check "logseg> endlogseg". Otherwise, if endptr is
> not a boundary byte, endlogid/endlogseg indicates the last
> necessary WAL file, but it's not sent.
We should use XLByteToPrevSeg, but I believe >= is still correct.
logid/logseg is the last WAL segment we've successfully sent, and
endlogif/endlogid is the last WAL segment we need to send. When they are
the same, we're done.
-- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com