Hi,
On 2019-04-18 21:02:57 +0900, Kyotaro HORIGUCHI wrote:
> Hello. As mentioned before [1], read_page callback in
> XLogReaderState is a cause of headaches. Adding another
> remote-controlling stuff to xlog readers makes things messier [2].
>
> I refactored XLOG reading functions so that we don't need the
> callback. In short, ReadRecrod now calls XLogPageRead directly
> with the attached patch set.
>
> | while (XLogReadRecord(xlogreader, RecPtr, &record, &errormsg)
> | == XLREAD_NEED_DATA)
> | XLogPageRead(xlogreader, fetching_ckpt, emode, randAccess);
>
> On the other hand, XLogReadRecord became a bit complex. The patch
> makes XLogReadRecord a state machine. I'm not confident that the
> additional complexity is worth doing. Anyway I'll gegister this
> to the next CF.
Just FYI, to me this doesn't clearly enough look like an improvement,
for a change of this size.
Greetings,
Andres Freund