• Tom Lane's avatar
    Clean up some minor inefficiencies in parallel dump/restore. · 763eec6b
    Tom Lane authored
    Parallel dump did a totally pointless query to find out the name of each
    table to be dumped, which it already knows.  Parallel restore runs issued
    lots of redundant SET commands because _doSetFixedOutputState() was invoked
    once per TOC item rather than just once at connection start.  While the
    extra queries are insignificant if you're dumping or restoring large
    tables, it still seems worth getting rid of them.
    
    Also, give the responsibility for selecting the right client_encoding for
    a parallel dump worker to setup_connection() where it naturally belongs,
    instead of having ad-hoc code for that in CloneArchive().  And fix some
    minor bugs like use of strdup() where pg_strdup() would be safer.
    
    Back-patch to 9.3, mostly to keep the branches in sync in an area that
    we're still finding bugs in.
    
    Discussion: <5086.1464793073@sss.pgh.pa.us>
    763eec6b
pg_dump.c 537 KB