• Robert Haas's avatar
    In TrimCLOG(), don't reset XactCtl->shared->latest_page_number. · 69059d3b
    Robert Haas authored
    Since the CLOG page number is not recorded directly in the checkpoint
    record, we have to use ShmemVariableCache->nextXid to figure out the
    latest CLOG page number at the start of recovery. However, as recovery
    progresses, replay of CLOG/EXTEND records will update our notion of
    the latest page number, and we should rely on that being accurate
    rather than recomputing the value based on an updated notion of
    nextXid. ShmemVariableCache->nextXid is only an approximation
    during recovery anyway, whereas CLOG/EXTEND records are an
    authoritative representation of how the SLRU has been updated.
    
    Commit 0fcc2dec makes this
    simplification possible, as before that change clog_redo() might
    have injected a bogus value here, and we'd want to get rid of
    that before entering normal running.
    
    Patch by me, reviewed by Heikki Linnakangas.
    
    Discussion: http://postgr.es/m/CA+TgmoZYig9+AQodhF5sRXuKkJ=RgFDugLr3XX_dz_F-p=TwTg@mail.gmail.com
    69059d3b
clog.c 33 KB