• Fujii Masao's avatar
    Remove erroneous assertion from pg_copy_logical_replication_slot(). · a82ba066
    Fujii Masao authored
    If restart_lsn of logical replication slot gets behind more than
    max_slot_wal_keep_size from the current LSN, the logical replication slot
    would be invalidated and its restart_lsn is reset to an invalid LSN.
    If this logical replication slot with an invalid restart_lsn was specified as
    the source slot in pg_copy_logical_replication_slot(), the function caused
    the assertion failure unexpectedly.
    
    This assertion was added because restart_lsn should not be invalid before.
    But in v13, it can be invalid thanks to max_slot_wal_keep_size. So since this
    assertion is no longer useful, this commit removes it.
    
    This commit also changes the errcode in the error message that
    pg_copy_logical_replication_slot() emits when the slot with an invalid
    restart_lsn is specified, to more appropriate one.
    
    Back-patch to v13 where max_slot_wal_keep_size was added and
    the assertion was no longer valid.
    
    Author: Fujii Masao
    Reviewed-by: Alvaro Herrera, Kyotaro Horiguchi
    Discussion: https://postgr.es/m/f91de4fb-a7ab-b90e-8132-74796e049d51@oss.nttdata.com
    a82ba066
slotfuncs.c 26.5 KB