• Tom Lane's avatar
    Rationalize parallel dump/restore's handling of worker cmd/status messages. · fb03d08a
    Tom Lane authored
    The existing APIs for creating and parsing command and status messages are
    rather messy; for example, archive-format modules have to provide code
    for constructing command messages, which is entirely pointless since
    the code to read them is hard-wired in WaitForCommands() and hence
    no format-specific variation is actually possible.  But there's little
    foreseeable reason to need format-specific variation anyway.
    
    The situation for status messages is no better; at least those are both
    constructed and parsed by format-specific code, but said code is quite
    redundant since there's no actual need for format-specific variation.
    
    To add insult to injury, the first API involves returning pointers to
    static buffers, which is bad, while the second involves returning pointers
    to malloc'd strings, which is safer but randomly inconsistent.
    
    Hence, get rid of the MasterStartParallelItem and MasterEndParallelItem
    APIs, and instead write centralized functions that construct and parse
    command and status messages.  If we ever do need more flexibility, these
    functions can be the standard implementations of format-specific
    callback methods, but that's a long way off if it ever happens.
    
    Tom Lane, reviewed by Kevin Grittner
    
    Discussion: <17340.1464465717@sss.pgh.pa.us>
    fb03d08a
pg_backup_archiver.h 14.7 KB