mirror of
https://github.com/postgres/postgres.git
synced 2025-07-26 01:22:12 +03:00
Prohibit altering invalidated replication slots.
ALTER_REPLICATION_SLOT for invalid replication slots should not be allowed because there is no way to get back the invalidated (logical) slot to work. Author: Bharath Rupireddy Reviewed-by: Peter Smith, Shveta Malik Discussion: https://www.postgresql.org/message-id/CALj2ACW4fSOMiKjQ3=2NVBMTZRTG8Ujg6jsK9z3EvOtvA4vzKQ@mail.gmail.com
This commit is contained in:
@ -820,6 +820,13 @@ ReplicationSlotAlter(const char *name, const bool *failover,
|
||||
errmsg("cannot use %s with a physical replication slot",
|
||||
"ALTER_REPLICATION_SLOT"));
|
||||
|
||||
if (MyReplicationSlot->data.invalidated != RS_INVAL_NONE)
|
||||
ereport(ERROR,
|
||||
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
||||
errmsg("cannot alter invalid replication slot \"%s\"", name),
|
||||
errdetail("This replication slot has been invalidated due to \"%s\".",
|
||||
SlotInvalidationCauses[MyReplicationSlot->data.invalidated]));
|
||||
|
||||
if (RecoveryInProgress())
|
||||
{
|
||||
/*
|
||||
|
Reference in New Issue
Block a user