• Alvaro Herrera's avatar
    Rework XLogReader callback system · b060dbe0
    Alvaro Herrera authored
    Code review for 0dc8ead4, prompted by a bug closed by 91c40548.
    
    XLogReader's system for opening and closing segments had gotten too
    complicated, with callbacks being passed at both the XLogReaderAllocate
    level (read_page) as well as at the WALRead level (segment_open).  This
    was confusing and hard to follow, so restructure things so that these
    callbacks are passed together at XLogReaderAllocate time, and add
    another callback to the set (segment_close) to make it a coherent whole.
    Also, ensure XLogReaderState is an argument to all the callbacks, so
    that they can grab at the ->private data if necessary.
    
    Document the whole arrangement more clearly.
    
    Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
    Reviewed-by: default avatarKyotaro Horiguchi <horikyota.ntt@gmail.com>
    Discussion: https://postgr.es/m/20200422175754.GA19858@alvherre.pgsql
    b060dbe0
xlogutils.c 30.2 KB