+ /* + * Compute targetRecOff. It should typically be greater than short + * page-header since a valid record can't , but can also be zero when + * caller has supplied a page-aligned address or when we are skipping + * multi-page continuation record. It doesn't matter though because + * ReadPageInternal() will read at least short page-header worth of + * data + */ This needs some polishing, there is an unfinished sentence here.
+ targetRecOff = tmpRecPtr % XLOG_BLCKSZ; targetRecOff, pageHeaderSize and targetPagePtr could be declared inside directly the new while loop.
Thanks Michael for reviewing the patch. I've fixed these issues and new version is attached.
Looks sensible to me based on a reading of "git diff -w" of the applied patch. It passes make check and make -C src/test/recovery check . Marked ready for committer; I'd like to add a TAP test for it, but it's ready to go without that.