• Peter Geoghegan's avatar
    Notice that heap page has dead items during VACUUM. · 0ea71c93
    Peter Geoghegan authored
    Consistently set a flag variable that tracks whether the current heap
    page has a dead item during lazy vacuum's heap scan.  We missed the
    common case where there is an preexisting (or even a new) LP_DEAD heap
    line pointer.
    
    Also make it clear that the variable might be affected by an existing
    line pointer, say from an earlier opportunistic pruning operation.  This
    distinction is important because it's the main reason why we can't just
    use the nearby tups_vacuumed variable instead.
    
    No backpatch.  In theory failing to set the page level flag variable had
    no consequences.  Currently it is only used to defensively check if a
    page marked all visible has dead items, which should never happen anyway
    (if it does then the table must be corrupt).
    
    Author: Masahiko Sawada <sawada.mshk@gmail.com>
    Diagnosed-By: default avatarMasahiko Sawada <sawada.mshk@gmail.com>
    Discussion: https://postgr.es/m/CAD21AoAtZb4+HJT_8RoOXvu4HM-Zd4HKS3YSMCH6+-W=bDyh-w@mail.gmail.com
    0ea71c93
vacuumlazy.c 117 KB