• Kevin Grittner's avatar
    Allow pg_dump to use jobs and serializable transactions together. · cff1bd2a
    Kevin Grittner authored
    Since 9.3, when the --jobs option was introduced, using it together
    with the --serializable-deferrable option generated multiple
    errors.  We can get correct behavior by allowing the connection
    which acquires the snapshot to use SERIALIZABLE, READ ONLY,
    DEFERRABLE and pass that to the workers running the other
    connections using REPEATABLE READ, READ ONLY.  This is a bit of a
    kluge since the SERIALIZABLE behavior is achieved by running some
    of the participating connections at a different isolation level,
    but it is a simple and safe change, suitable for back-patching.
    
    This will be followed by a proposal for a more invasive fix with
    some slight behavioral changes on just the master branch, based on
    suggestions from Andres Freund, but the kluge will be applied to
    master until something is agreed along those lines.
    
    Back-patched to 9.3, where the --jobs option was added.
    
    Based on report from Alexander Korotkov
    cff1bd2a
pg_dump.c 476 KB