• Andres Freund's avatar
    Ensure consistent sort order of large objects in pg_dump. · 471a7af5
    Andres Freund authored
    The primary purpose of this commit is to ensure pg_upgrade tests yield
    comparable dumps pre/post upgrade, which got broken by 12a53c73 /
    578b2297, as the order in pg_largeobject_metadata is likely to
    differ pre/post upgrade.
    
    It also seems like a generally good idea to make sure such dumps are
    comparable, outside of pg_upgrade tests.
    
    LO metadata already was already dumped in an ordered manner as the
    metadata is dumped in a well defined order via
    sortDumpableObjectsByTypeName() and sortDumpableObjects(). But large
    object data is currently not tracked via that mechanism.
    
    As Tom points out it seems possible that at some point dumpBlobs() was
    assumed to dump out objects in a well defined order, due to the use of
    DISTINCT, which at that time only was done using sorting.
    
    Per complaint from Andrew Dunstan and discussion with him and Tom
    Lane.
    
    Author: Andres Freund
    Discussion: https://postgr.es/m/2735.1543333649@sss.pgh.pa.us
    471a7af5
pg_dump.c 541 KB