• Heikki Linnakangas's avatar
    Refactor XLogReadRecord(), adding XLogBeginRead() function. · 38a95731
    Heikki Linnakangas authored
    The signature of XLogReadRecord() required the caller to pass the starting
    WAL position as argument, or InvalidXLogRecPtr to continue reading at the
    end of previous record. That's slightly awkward to the callers, as most
    of them don't want to randomly jump around in the WAL stream, but start
    reading at one position and then read everything from that point onwards.
    Remove the 'RecPtr' argument and add a new function XLogBeginRead() to
    specify the starting position instead. That's more convenient for the
    callers. Also, xlogreader holds state that is reset when you change the
    starting position, so having a separate function for doing that feels like
    a more natural fit.
    
    This changes XLogFindNextRecord() function so that it doesn't reset the
    xlogreader's state to what it was before the call anymore. Instead, it
    positions the xlogreader to the found record, like XLogBeginRead().
    
    Reviewed-by: Kyotaro Horiguchi, Alvaro Herrera
    Discussion: https://www.postgresql.org/message-id/5382a7a3-debe-be31-c860-cb810c08f366%40iki.fi
    38a95731
logicalfuncs.c 10.7 KB