<term><literal>WITH ( <replaceable class="parameter">subscription_parameter</replaceable> [= <replaceable class="parameter">value</replaceable>] [, ... ] )</literal></term>
<listitem>
<para>
- This clause specifies optional parameters for a subscription. The
- following parameters are supported:
+ This clause specifies optional parameters for a subscription.
+ </para>
+
+ <para>
+ The following parameters control what happens during subscription creation:
<variablelist>
+
<varlistentry>
- <term><literal>copy_data</literal> (<type>boolean</type>)</term>
+ <term><literal>connect</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>.
+ 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 set
+ to <literal>false</literal>, 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</literal> in order
+ for tables to be subscribed.
</para>
</listitem>
</varlistentry>
</para>
</listitem>
</varlistentry>
+ </variablelist>
+ </para>
- <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 within this
- subscription's apply worker processes. 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 sent again from the publisher.
- </para>
+ <para>
+ The following parameters control the replication behavior:
- <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>
+ <variablelist>
<varlistentry>
<term><literal>binary</literal> (<type>boolean</type>)</term>
</varlistentry>
<varlistentry>
- <term><literal>connect</literal> (<type>boolean</type>)</term>
+ <term><literal>copy_data</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 set
- to <literal>false</literal>, 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</literal> in order
- for tables to be subscribed.
+ 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>streaming</literal> (<type>boolean</type>)</term>
<listitem>
are fully decoded on the publisher, and only then sent to the
subscriber as a whole.
</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 within this
+ subscription's apply worker processes. 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 sent again 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>two_phase</literal> (<type>boolean</type>)</term>
<listitem>
</listitem>
</varlistentry>
- </variablelist></para>
+ </variablelist>
+ </para>
+
</listitem>
</varlistentry>
</variablelist>