• Tom Lane's avatar
    Store the deletion horizon XID for a deleted GIN page on the right page. · 4093ff57
    Tom Lane authored
    Commit b1071408 moved the GinPageSetDeleteXid() call to a spot where
    the "page" variable was pointing to the wrong page, causing the XID
    to be inserted on a page that's not being deleted, thus allowing later
    GinPageIsRecyclable tests to recycle the deleted page too soon.
    
    It might be a good idea to stop using the single "page" variable for
    multiple purposes in this function.  But for the moment I just moved
    the GinPageSetDeleteXid() call down beside the GinPageSetDeleted()
    call, which seems like a more logical place for it anyway.
    
    Back-patch to v11, as the faulty patch was.  (Fortunately, the bug
    hasn't made it into any release yet.)
    
    Discussion: https://postgr.es/m/21620.1581098806@sss.pgh.pa.us
    4093ff57
ginvacuum.c 18.8 KB