• Robert Haas's avatar
    New contrib module, pg_surgery, with heap surgery functions. · 34a947ca
    Robert Haas authored
    Sometimes it happens that the visibility information for a tuple
    becomes corrupted, either due to bugs in the database software or
    external factors. Provide a function heap_force_kill() that can
    be used to truncate such dead tuples to dead line pointers, and
    a function heap_force_freeze() that can be used to overwrite the
    visibility information in such a way that the tuple becomes
    all-visible.
    
    These functions are unsafe, in that you can easily use them to
    corrupt a database that was not previously corrupted, and you can
    use them to further corrupt an already-corrupted database or to
    destroy data. The documentation accordingly cautions against
    casual use. However, in some cases they permit recovery of data
    that would otherwise be very difficult to recover, or to allow a
    system to continue to function when it would otherwise be difficult
    to do so.
    
    Because we may want to add other functions for performing other
    kinds of surgery in the future, the new contrib module is called
    pg_surgery rather than something specific to these functions. I
    proposed back-patching this so that it could be more easily used
    by people running existing releases who are facing these kinds of
    problems, but that proposal did not attract enough support, so
    no back-patch for now.
    
    Ashutosh Sharma, reviewed and tested by Andrey M. Borodin,
    M. Beena Emerson, Masahiko Sawada, Rajkumar Raghuwanshi,
    Asim Praveen, and Mark Dilger, and somewhat revised by me.
    
    Discussion: http://postgr.es/m/CA+TgmoZW1fsU-QUNCRUQMGUygBDPVeOTLCqRdQZch=EYZnctSA@mail.gmail.com
    34a947ca
contrib.sgml 6.19 KB