summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2017-05-12 08:57:01 -0400
committerPeter Eisentraut <peter_e@gmx.net>2017-05-12 08:57:49 -0400
commitb807f59828fbc02fea612e1cbc0066c6dfa3be9b (patch)
tree3dcd63108c0d721a41f61354e1df73e38e2de3fa /doc/src
parent734cb4c2e7de92972c01b6339a3e15ac4bc605dd (diff)
Rework the options syntax for logical replication commands
For CREATE/ALTER PUBLICATION/SUBSCRIPTION, use similar option style as other statements that use a WITH clause for options. Author: Petr Jelinek <petr.jelinek@2ndquadrant.com>
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/logical-replication.sgml7
-rw-r--r--doc/src/sgml/ref/alter_publication.sgml39
-rw-r--r--doc/src/sgml/ref/alter_subscription.sgml71
-rw-r--r--doc/src/sgml/ref/create_publication.sgml57
-rw-r--r--doc/src/sgml/ref/create_subscription.sgml236
5 files changed, 203 insertions, 207 deletions
diff --git a/doc/src/sgml/logical-replication.sgml b/doc/src/sgml/logical-replication.sgml
index e87e3dcd36d..36c157c43f9 100644
--- a/doc/src/sgml/logical-replication.sgml
+++ b/doc/src/sgml/logical-replication.sgml
@@ -222,8 +222,9 @@
<listitem>
<para>
When creating a subscription, the replication slot already exists. In
- that case, the subscription can be created using the <literal>NOCREATE
- SLOT</literal> option to associate with the existing slot.
+ that case, the subscription can be created using
+ the <literal>create_slot = false</literal> option to associate with the
+ existing slot.
</para>
</listitem>
@@ -231,7 +232,7 @@
<para>
When creating a subscription, the remote host is not reachable or in an
unclear state. In that case, the subscription can be created using
- the <literal>NOCONNECT</literal> option. The remote host will then not
+ the <literal>connect = false</literal> option. The remote host will then not
be contacted at all. This is what <application>pg_dump</application>
uses. The remote replication slot will then have to be created
manually before the subscription can be activated.
diff --git a/doc/src/sgml/ref/alter_publication.sgml b/doc/src/sgml/ref/alter_publication.sgml
index 05bd57d9cab..7b8f114f541 100644
--- a/doc/src/sgml/ref/alter_publication.sgml
+++ b/doc/src/sgml/ref/alter_publication.sgml
@@ -21,17 +21,10 @@ PostgreSQL documentation
<refsynopsisdiv>
<synopsis>
-ALTER PUBLICATION <replaceable class="PARAMETER">name</replaceable> WITH ( <replaceable class="PARAMETER">option</replaceable> [, ... ] )
-
-<phrase>where <replaceable class="PARAMETER">option</replaceable> can be:</phrase>
-
- PUBLISH INSERT | NOPUBLISH INSERT
- | PUBLISH UPDATE | NOPUBLISH UPDATE
- | PUBLISH DELETE | NOPUBLISH DELETE
-
ALTER PUBLICATION <replaceable class="PARAMETER">name</replaceable> ADD TABLE [ ONLY ] <replaceable class="PARAMETER">table_name</replaceable> [ * ] [, ...]
ALTER PUBLICATION <replaceable class="PARAMETER">name</replaceable> SET TABLE [ ONLY ] <replaceable class="PARAMETER">table_name</replaceable> [ * ] [, ...]
ALTER PUBLICATION <replaceable class="PARAMETER">name</replaceable> DROP TABLE [ ONLY ] <replaceable class="PARAMETER">table_name</replaceable> [ * ] [, ...]
+ALTER PUBLICATION <replaceable class="PARAMETER">name</replaceable> SET ( <replaceable class="parameter">publication_parameter</replaceable> [= <replaceable class="parameter">value</replaceable>] [, ... ] )
ALTER PUBLICATION <replaceable class="PARAMETER">name</replaceable> OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
ALTER PUBLICATION <replaceable class="PARAMETER">name</replaceable> RENAME TO <replaceable>new_name</replaceable>
</synopsis>
@@ -44,8 +37,7 @@ ALTER PUBLICATION <replaceable class="PARAMETER">name</replaceable> RENAME TO <r
The first variant of this command listed in the synopsis can change
all of the publication properties specified in
<xref linkend="sql-createpublication">. Properties not mentioned in the
- command retain their previous settings. Database superusers can change any
- of these settings for any role.
+ command retain their previous settings.
</para>
<para>
@@ -80,29 +72,24 @@ ALTER PUBLICATION <replaceable class="PARAMETER">name</replaceable> RENAME TO <r
</varlistentry>
<varlistentry>
- <term><literal>PUBLISH INSERT</literal></term>
- <term><literal>NOPUBLISH INSERT</literal></term>
- <term><literal>PUBLISH UPDATE</literal></term>
- <term><literal>NOPUBLISH UPDATE</literal></term>
- <term><literal>PUBLISH DELETE</literal></term>
- <term><literal>NOPUBLISH DELETE</literal></term>
+ <term><replaceable class="parameter">table_name</replaceable></term>
<listitem>
<para>
- These clauses alter properties originally set by
- <xref linkend="SQL-CREATEPUBLICATION">. See there for more information.
+ Name of an existing table. If <literal>ONLY</> is specified before the
+ table name, only that table is affected. If <literal>ONLY</> is not
+ specified, the table and all its descendant tables (if any) are
+ affected. Optionally, <literal>*</> can be specified after the table
+ name to explicitly indicate that descendant tables are included.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><replaceable class="parameter">table_name</replaceable></term>
+ <term><literal>SET ( <replaceable class="parameter">publication_parameter</replaceable> [= <replaceable class="parameter">value</replaceable>] [, ... ] )</literal></term>
<listitem>
<para>
- Name of an existing table. If <literal>ONLY</> is specified before the
- table name, only that table is affected. If <literal>ONLY</> is not
- specified, the table and all its descendant tables (if any) are
- affected. Optionally, <literal>*</> can be specified after the table
- name to explicitly indicate that descendant tables are included.
+ This clause alters publication parameters originally set by
+ <xref linkend="SQL-CREATEPUBLICATION">. See there for more information.
</para>
</listitem>
</varlistentry>
@@ -131,9 +118,9 @@ ALTER PUBLICATION <replaceable class="PARAMETER">name</replaceable> RENAME TO <r
<title>Examples</title>
<para>
- Change the publication to not publish inserts:
+ Change the publication to publish only deletes and updates:
<programlisting>
-ALTER PUBLICATION noinsert WITH (NOPUBLISH INSERT);
+ALTER PUBLICATION noinsert SET (publish = 'update, delete');
</programlisting>
</para>
diff --git a/doc/src/sgml/ref/alter_subscription.sgml b/doc/src/sgml/ref/alter_subscription.sgml
index 5dae4aebd63..6320de06edd 100644
--- a/doc/src/sgml/ref/alter_subscription.sgml
+++ b/doc/src/sgml/ref/alter_subscription.sgml
@@ -21,23 +21,12 @@ PostgreSQL documentation
<refsynopsisdiv>
<synopsis>
-ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> WITH ( <replaceable class="PARAMETER">suboption</replaceable> [, ... ] )
-
-<phrase>where <replaceable class="PARAMETER">suboption</replaceable> can be:</phrase>
-
- SLOT NAME = <replaceable class="PARAMETER">slot_name</replaceable>
- | SYNCHRONOUS_COMMIT = <replaceable class="PARAMETER">synchronous_commit</replaceable>
-
-ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> SET PUBLICATION <replaceable class="PARAMETER">publication_name</replaceable> [, ...] { REFRESH WITH ( <replaceable class="PARAMETER">puboption</replaceable> [, ... ] ) | NOREFRESH }
-ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> REFRESH PUBLICATION [ WITH ( <replaceable class="PARAMETER">puboption</replaceable> [, ... ] ) ]
-
-<phrase>where <replaceable class="PARAMETER">puboption</replaceable> can be:</phrase>
-
- COPY DATA | NOCOPY DATA
-
ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> CONNECTION '<replaceable>conninfo</replaceable>'
+ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> SET PUBLICATION <replaceable class="PARAMETER">publication_name</replaceable> [, ...] { REFRESH [ WITH ( <replaceable class="PARAMETER">refresh_option</replaceable> <replaceable class="PARAMETER">value</replaceable> [, ... ] ) ] | SKIP REFRESH }
+ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> REFRESH PUBLICATION [ WITH ( <replaceable class="PARAMETER">refresh_option</replaceable> <replaceable class="PARAMETER">value</replaceable> [, ... ] ) ]
ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> ENABLE
ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> DISABLE
+ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> SET ( <replaceable class="parameter">subscription_parameter</replaceable> [= <replaceable class="parameter">value</replaceable>] [, ... ] )
ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> RENAME TO <replaceable>new_name</replaceable>
</synopsis>
@@ -73,11 +62,9 @@ ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> RENAME TO <
<varlistentry>
<term><literal>CONNECTION '<replaceable class="parameter">conninfo</replaceable>'</literal></term>
- <term><literal>SLOT NAME = <replaceable class="parameter">slot_name</replaceable></literal></term>
- <term><literal>SYNCHRONOUS_COMMIT = <replaceable class="PARAMETER">synchronous_commit</replaceable></literal></term>
<listitem>
<para>
- These clauses alter properties originally set by
+ This clause alters the connection property originally set by
<xref linkend="SQL-CREATESUBSCRIPTION">. See there for more
information.
</para>
@@ -91,11 +78,17 @@ ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> RENAME TO <
Changes list of subscribed publications. See
<xref linkend="SQL-CREATESUBSCRIPTION"> for more information.
</para>
+
<para>
- When <literal>REFRESH</literal> is specified, this command will also
- act like <literal>REFRESH PUBLICATION</literal>. When
- <literal>NOREFRESH</literal> is specified, the comamnd will not try to
- refresh table information.
+ When <literal>REFRESH</literal> is specified, this command will also act
+ like <literal>REFRESH
+ PUBLICATION</literal>. <literal>refresh_option</literal> specifies
+ additional options for the refresh operation, as described
+ under <literal>REFRESH PUBLICATION</literal>. When
+ <literal>SKIP REFRESH</literal> is specified, the command will not try
+ to refresh table information. Note that
+ either <literal>REFRESH</literal> or <literal>SKIP REFRESH</literal>
+ must be specified.
</para>
</listitem>
</varlistentry>
@@ -104,16 +97,28 @@ ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> RENAME TO <
<term><literal>REFRESH PUBLICATION</literal></term>
<listitem>
<para>
- Fetch missing table information from publisher. This will start
+ Fetch missing table information from publisher. This will start
replication of tables that were added to the subscribed-to publications
since the last invocation of <command>REFRESH PUBLICATION</command> or
since <command>CREATE SUBSCRIPTION</command>.
</para>
+
<para>
- The <literal>COPY DATA</literal> and <literal>NOCOPY DATA</literal>
- options specify if the existing data in the publications that are being
- subscribed to should be copied. <literal>COPY DATA</literal> is the
- default.
+ <literal>refresh_option</literal> specifies additional options for the
+ refresh operation. The supported options are:
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>copy_data</literal> (<type>boolean</type>)</term>
+ <listitem>
+ <para>
+ Specifies whether the existing data in the publications that are
+ being subscribed to should be copied once the replication starts.
+ The default is <literal>true</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</para>
</listitem>
</varlistentry>
@@ -139,6 +144,18 @@ ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> RENAME TO <
</varlistentry>
<varlistentry>
+ <term><literal>SET ( <replaceable class="parameter">subscription_parameter</replaceable> [= <replaceable class="parameter">value</replaceable>] [, ... ] )</literal></term>
+ <listitem>
+ <para>
+ This clause alters parameters originally set by
+ <xref linkend="SQL-CREATESUBSCRIPTION">. See there for more
+ information. The allowed options are <literal>slot_name</literal> and
+ <literal>synchronous_commit</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><replaceable class="parameter">new_owner</replaceable></term>
<listitem>
<para>
@@ -165,7 +182,7 @@ ALTER SUBSCRIPTION <replaceable class="PARAMETER">name</replaceable> RENAME TO <
Change the publication subscribed by a subscription to
<literal>insert_only</literal>:
<programlisting>
-ALTER SUBSCRIPTION mysub SET PUBLICATION insert_only;
+ALTER SUBSCRIPTION mysub SET PUBLICATION insert_only REFRESH;
</programlisting>
</para>
diff --git a/doc/src/sgml/ref/create_publication.sgml b/doc/src/sgml/ref/create_publication.sgml
index 521376ef4ba..48be4763747 100644
--- a/doc/src/sgml/ref/create_publication.sgml
+++ b/doc/src/sgml/ref/create_publication.sgml
@@ -24,13 +24,8 @@ PostgreSQL documentation
CREATE PUBLICATION <replaceable class="parameter">name</replaceable>
[ FOR TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ] [, ...]
| FOR ALL TABLES ]
- [ WITH ( <replaceable class="parameter">option</replaceable> [, ... ] ) ]
+ [ WITH ( <replaceable class="parameter">publication_parameter</replaceable> [= <replaceable class="parameter">value</replaceable>] [, ... ] ) ]
-<phrase>where <replaceable class="parameter">option</replaceable> can be:</phrase>
-
- PUBLISH INSERT | NOPUBLISH INSERT
- | PUBLISH UPDATE | NOPUBLISH UPDATE
- | PUBLISH DELETE | NOPUBLISH DELETE
</synopsis>
</refsynopsisdiv>
@@ -97,37 +92,29 @@ CREATE PUBLICATION <replaceable class="parameter">name</replaceable>
</varlistentry>
<varlistentry>
- <term><literal>PUBLISH INSERT</literal></term>
- <term><literal>NOPUBLISH INSERT</literal></term>
- <listitem>
- <para>
- These clauses determine whether the new publication will send
- the <command>INSERT</command> operations to the subscribers.
- <literal>PUBLISH INSERT</literal> is the default.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>PUBLISH UPDATE</literal></term>
- <term><literal>NOPUBLISH UPDATE</literal></term>
+ <term><literal>WITH ( <replaceable class="parameter">publication_parameter</replaceable> [= <replaceable class="parameter">value</replaceable>] [, ... ] )</literal></term>
<listitem>
<para>
- These clauses determine whether the new publication will send
- the <command>UPDATE</command> operations to the subscribers.
- <literal>PUBLISH UPDATE</literal> is the default.
- </para>
- </listitem>
- </varlistentry>
+ This clause specifies optional parameters for a publication. The
+ following parameters are supported:
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>publish</literal> (<type>string</type>)</term>
+ <listitem>
+ <para>
+ This parameter determines which DML operations will be published by
+ the new publication to the subscribers. The value is
+ comma-separated list of operations. The allowed operations are
+ <literal>insert</literal>, <literal>update</literal>, and
+ <literal>delete</literal>. The default is to publish all actions,
+ and so the default value for this option is
+ <literal>'insert, update, delete'</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
- <varlistentry>
- <term><literal>PUBLISH DELETE</literal></term>
- <term><literal>NOPUBLISH DELETE</literal></term>
- <listitem>
- <para>
- These clauses determine whether the new publication will send
- the <command>DELETE</command> operations to the subscribers.
- <literal>PUBLISH DELETE</literal> is the default.
</para>
</listitem>
</varlistentry>
@@ -203,7 +190,7 @@ CREATE PUBLICATION alltables FOR ALL TABLES;
operations in one table:
<programlisting>
CREATE PUBLICATION insert_only FOR TABLE mydata
- WITH (NOPUBLISH UPDATE, NOPUBLISH DELETE);
+ WITH (publish = 'insert');
</programlisting>
</para>
</refsect1>
diff --git a/doc/src/sgml/ref/create_subscription.sgml b/doc/src/sgml/ref/create_subscription.sgml
index 63824684031..f2da662499c 100644
--- a/doc/src/sgml/ref/create_subscription.sgml
+++ b/doc/src/sgml/ref/create_subscription.sgml
@@ -23,17 +23,8 @@ PostgreSQL documentation
<synopsis>
CREATE SUBSCRIPTION <replaceable class="PARAMETER">subscription_name</replaceable>
CONNECTION '<replaceable class="PARAMETER">conninfo</replaceable>'
- PUBLICATION { <replaceable class="PARAMETER">publication_name</replaceable> [, ...] }
- [ WITH ( <replaceable class="PARAMETER">option</replaceable> [, ... ] ) ]
-
-<phrase>where <replaceable class="PARAMETER">option</replaceable> can be:</phrase>
-
- | ENABLED | DISABLED
- | CREATE SLOT | NOCREATE SLOT
- | SLOT NAME = <replaceable class="PARAMETER">slot_name</replaceable>
- | COPY DATA | NOCOPY DATA
- | SYNCHRONOUS_COMMIT = <replaceable class="PARAMETER">synchronous_commit</replaceable>
- | NOCONNECT
+ PUBLICATION <replaceable class="PARAMETER">publication_name</replaceable> [, ...]
+ [ WITH ( <replaceable class="parameter">subscription_parameter</replaceable> [= <replaceable class="parameter">value</replaceable>] [, ... ] ) ]
</synopsis>
</refsynopsisdiv>
@@ -59,7 +50,7 @@ CREATE SUBSCRIPTION <replaceable class="PARAMETER">subscription_name</replaceabl
<para>
<command>CREATE SUBSCRIPTION</command> cannot be executed inside a
- transaction block when <literal>CREATE SLOT</literal> is specified.
+ transaction block when the parameter <literal>create_slot</literal> is specified.
</para>
<para>
@@ -97,116 +88,129 @@ CREATE SUBSCRIPTION <replaceable class="PARAMETER">subscription_name</replaceabl
<term><literal>PUBLICATION <replaceable class="parameter">publication_name</replaceable></literal></term>
<listitem>
<para>
- Name(s) of the publications on the publisher to subscribe to.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>ENABLED</literal></term>
- <term><literal>DISABLED</literal></term>
- <listitem>
- <para>
- Specifies whether the subscription should be actively replicating or
- if it should be just setup but not started yet. Note that the
- replication slot as described above is created in either case.
- <literal>ENABLED</literal> is the default.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>CREATE SLOT</literal></term>
- <term><literal>NOCREATE SLOT</literal></term>
- <listitem>
- <para>
- Specifies whether the command should create the replication slot on the
- publisher. <literal>CREATE SLOT</literal> is the default.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>SLOT NAME = <replaceable class="parameter">slot_name</replaceable></literal></term>
- <listitem>
- <para>
- 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>
-
- <varlistentry>
- <term><literal>COPY DATA</literal></term>
- <term><literal>NOCOPY DATA</literal></term>
- <listitem>
- <para>
- Specifies if the existing data in the publications that are being
- subscribed to should be copied once the replication starts.
- <literal>COPY DATA</literal> is the default.
+ Names of the publications on the publisher to subscribe to.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><literal>SYNCHRONOUS_COMMIT = <replaceable class="PARAMETER">synchronous_commit</replaceable></literal></term>
+ <term><literal>WITH ( <replaceable class="parameter">subscription_parameter</replaceable> [= <replaceable class="parameter">value</replaceable>] [, ... ] )</literal></term>
<listitem>
<para>
- The value of this parameter overrides the
- <xref linkend="guc-synchronous-commit"> setting. The default value is
- <literal>off</literal>.
- </para>
-
- <para>
- It is safe to use <literal>off</literal> for logical replication: If the
- subscriber loses transactions because of missing synchronization, the
- data will be resent from the publisher.
- </para>
-
- <para>
- A different setting might be appropriate when doing synchronous logical
- replication. The logical replication workers report the positions of
- writes and flushes to the publisher, and when using synchronous
- replication, the publisher will wait for the actual flush. This means
- that setting <literal>SYNCHRONOUS_COMMIT</literal> for the subscriber
- to <literal>off</literal> when the subscription is used for synchronous
- replication might increase the latency for <command>COMMIT</command> on
- the publisher. In this scenario, it can be advantageous to set
- <literal>SYNCHRONOUS_COMMIT</literal> to <literal>local</literal> or
- higher.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>NOCONNECT</literal></term>
- <listitem>
- <para>
- Instructs <command>CREATE SUBSCRIPTION</command> to skip the initial
- connection to the provider. This will change default values of other
- options to <literal>DISABLED</literal>,
- <literal>NOCREATE SLOT</literal>, and <literal>NOCOPY DATA</literal>.
- </para>
- <para>
- It's not allowed to combine <literal>NOCONNECT</literal> and
- <literal>ENABLED</literal>, <literal>CREATE SLOT</literal>, or
- <literal>COPY DATA</literal>.
- </para>
- <para>
- Since no connection is made when this option is specified, the tables
- are not subscribed, so after you enable the subscription nothing will
- be replicated. It is required to run
- <literal>ALTER SUBSCRIPTION ... REFRESH PUBLICATION</> in order for
- tables to be subscribed.
+ This clause specifies optional parameters for a subscription. The
+ following parameters are supported:
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>copy_data</literal> (<type>boolean</type>)</term>
+ <listitem>
+ <para>
+ Specifies whether the existing data in the publications that are
+ being subscribed to should be copied once the replication starts.
+ The default is <literal>true</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>create_slot</literal> (<type>boolean</type>)</term>
+ <listitem>
+ <para>
+ Specifies whether the command should create the replication slot on
+ the publisher. The default is <literal>true</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>enabled</literal> (<type>boolean</type>)</term>
+ <listitem>
+ <para>
+ Specifies whether the subscription should be actively replicating,
+ or whether it should be just setup but not started yet. The default
+ is <literal>true</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>slot_name</literal> (<type>string</type>)</term>
+ <listitem>
+ <para>
+ Name of the replication slot to use. The default behavior is to
+ use the name of the subscription for the 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>
+
+ <varlistentry>
+ <term><literal>synchronous_commit</literal> (<type>enum</type>)</term>
+ <listitem>
+ <para>
+ The value of this parameter overrides the
+ <xref linkend="guc-synchronous-commit"> setting. The default
+ value is <literal>off</literal>.
+ </para>
+
+ <para>
+ It is safe to use <literal>off</literal> for logical replication:
+ If the subscriber loses transactions because of missing
+ synchronization, the data will be resent from the publisher.
+ </para>
+
+ <para>
+ A different setting might be appropriate when doing synchronous
+ logical replication. The logical replication workers report the
+ positions of writes and flushes to the publisher, and when using
+ synchronous replication, the publisher will wait for the actual
+ flush. This means that setting
+ <literal>synchronous_commit</literal> for the subscriber to
+ <literal>off</literal> when the subscription is used for
+ synchronous replication might increase the latency for
+ <command>COMMIT</command> on the publisher. In this scenario, it
+ can be advantageous to set <literal>synchronous_commit</literal>
+ to <literal>local</literal> or higher.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>connect</literal> (<type>boolean</type>)</term>
+ <listitem>
+ <para>
+ Specifies whether the <command>CREATE SUBSCRIPTION</command>
+ should connect to the publisher at all. Setting this to
+ <literal>false</literal> will change default values of
+ <literal>enabled</literal>, <literal>create_slot</literal> and
+ <literal>copy_data</literal> to <literal>false</literal>.
+ </para>
+
+ <para>
+ It is not allowed to combine <literal>connect</literal> set to
+ <literal>false</literal> and <literal>enabled</literal>,
+ <literal>create_slot</literal>, or <literal>copy_data</literal>
+ set to <literal>true</literal>.
+ </para>
+
+ <para>
+ Since no connection is made when this option is specified, the
+ tables are not subscribed, and so after you enable the subscription
+ nothing will be replicated. It is required to run
+ <literal>ALTER SUBSCRIPTION ... REFRESH PUBLICATION</> in order
+ for tables to be subscribed.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</para>
</listitem>
</varlistentry>
@@ -246,7 +250,7 @@ CREATE SUBSCRIPTION mysub
CREATE SUBSCRIPTION mysub
CONNECTION 'host=192.168.1.50 port=5432 user=foo dbname=foodb'
PUBLICATION insert_only
- WITH (DISABLED);
+ WITH (enabled = false);
</programlisting>
</para>
</refsect1>