• Fujii Masao's avatar
    Ensure that num_sync is greater than zero in synchronous_standby_names. · 93eb619c
    Fujii Masao authored
    Previously num_sync could be set to zero and this setting caused
    an assertion failure. This means that multiple synchronous standbys
    code should assume that num_sync is greater than zero.
    Also setting num_sync to zero is nonsense because it's basically
    the configuration for synchronous replication. If users want not to
    make transaction commits wait for any standbys,
    synchronous_standby_names should be emptied to disable synchronous
    replication instead of setting num_sync to zero.
    
    This patch forbids users from setting num_sync to zero in
    synchronous_standby_names. If zero is specified, an error will
    happen during processing the parameter settings.
    
    Back-patch to 9.6 where multiple synchronous standbys feature was added.
    
    Patch by me. Reviewed by Tom Lane.
    Discussion: <CAHGQGwHWB3izc6cXuFLh5kOcAbFXaRhhgwd-X5PeN9TEjxqXwg@mail.gmail.com>
    93eb619c
syncrep.c 27.8 KB