mirror of
https://github.com/postgres/postgres.git
synced 2025-07-31 22:04:40 +03:00
Remove the NODROP SLOT option from DROP SUBSCRIPTION
It turned out this approach had problems, because a DROP command should not have any options other than CASCADE and RESTRICT. Instead, always attempt to drop the slot if there is one configured, but also add an ALTER SUBSCRIPTION action to set the slot to NONE. Author: Petr Jelinek <petr.jelinek@2ndquadrant.com> Reported-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://www.postgresql.org/message-id/29431.1493730652@sss.pgh.pa.us
This commit is contained in:
@ -133,6 +133,15 @@ CREATE SUBSCRIPTION <replaceable class="PARAMETER">subscription_name</replaceabl
|
||||
Name of the replication slot to use. The default behavior is to use
|
||||
<literal>subscription_name</> for slot name.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When <literal>SLOT NAME</literal> is set to
|
||||
<literal>NONE</literal>, there will be no replication slot associated
|
||||
with the subscription. This can be used if the replication slot will be
|
||||
created later manually. Such subscriptions must also have both
|
||||
<literal>ENABLED</literal> and <literal>CREATE SLOT</literal> set
|
||||
to <literal>false</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -21,7 +21,7 @@ PostgreSQL documentation
|
||||
|
||||
<refsynopsisdiv>
|
||||
<synopsis>
|
||||
DROP SUBSCRIPTION [ IF EXISTS ] <replaceable class="parameter">name</replaceable> [ DROP SLOT | NODROP SLOT ]
|
||||
DROP SUBSCRIPTION [ IF EXISTS ] <replaceable class="parameter">name</replaceable> [ CASCADE | RESTRICT ]
|
||||
</synopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
@ -39,7 +39,9 @@ DROP SUBSCRIPTION [ IF EXISTS ] <replaceable class="parameter">name</replaceable
|
||||
|
||||
<para>
|
||||
<command>DROP SUBSCRIPTION</command> cannot be executed inside a
|
||||
transaction block when <literal>DROP SLOT</literal> is specified.
|
||||
transaction block if the subscription is associated with a replication
|
||||
slot. (You can use <command>ALTER SUBSCRIPTION</command> to unset the
|
||||
slot.)
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
@ -57,20 +59,13 @@ DROP SUBSCRIPTION [ IF EXISTS ] <replaceable class="parameter">name</replaceable
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>DROP SLOT</literal></term>
|
||||
<term><literal>NODROP SLOT</literal></term>
|
||||
<term><literal>CASCADE</literal></term>
|
||||
<term><literal>RESTRICT</literal></term>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies whether to drop the replication slot on the publisher. The
|
||||
default is
|
||||
<literal>DROP SLOT</literal>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If the publisher is not reachable when the subscription is to be
|
||||
dropped, then it is useful to specify <literal>NODROP SLOT</literal>.
|
||||
But the replication slot on the publisher will then have to be removed
|
||||
manually.
|
||||
These key words do not have any effect, since there are no dependencies
|
||||
on subscriptions.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
Reference in New Issue
Block a user