• Tom Lane's avatar
    Remove unnecessary PG_TRY overhead for CurrentResourceOwner changes. · 5fa6b0d1
    Tom Lane authored
    resowner/README contained advice to use a PG_TRY block to restore the
    old CurrentResourceOwner value anywhere that that variable is transiently
    changed.  That advice was only inconsistently followed, however, and
    on reflection it seems like unnecessary overhead.  We don't bother
    with such a convention for transient CurrentMemoryContext changes,
    on the grounds that any (sub)transaction abort will start out by
    resetting CurrentMemoryContext to what it wants.  But the same is
    true of CurrentResourceOwner, so there seems no need to treat it
    differently.
    
    Hence, remove PG_TRY blocks that exist only to restore CurrentResourceOwner
    before re-throwing the error.  There are a couple of places that restore
    it along with some other actions, and I left those alone; the restore is
    probably unnecessary but no noticeable gain will result from removing it.
    
    Discussion: https://postgr.es/m/5236.1507583529@sss.pgh.pa.us
    5fa6b0d1
xact.c 163 KB