Home Explore Blog CI



postgresql

32th chunk of `doc/src/sgml/protocol.sgml`
ebcb60aeedb49d3f70a7b85aebf17561803a653b91e7753f0000000100000fa0
 </listitem>
       </varlistentry>
      </variablelist>
     </listitem>
    </varlistentry>

    <varlistentry id="protocol-replication-create-replication-slot" xreflabel="CREATE_REPLICATION_SLOT">
     <term><literal>CREATE_REPLICATION_SLOT</literal> <replaceable class="parameter">slot_name</replaceable> [ <literal>TEMPORARY</literal> ] { <literal>PHYSICAL</literal> | <literal>LOGICAL</literal> <replaceable class="parameter">output_plugin</replaceable> } [ ( <replaceable class="parameter">option</replaceable> [, ...] ) ]
      <indexterm><primary>CREATE_REPLICATION_SLOT</primary></indexterm>
     </term>
     <listitem>
      <para>
       Create a physical or logical replication
       slot. See <xref linkend="streaming-replication-slots"/> for more about
       replication slots.
      </para>

      <variablelist>
       <varlistentry>
        <term><replaceable class="parameter">slot_name</replaceable></term>
        <listitem>
         <para>
          The name of the slot to create. Must be a valid replication slot
          name (see <xref linkend="streaming-replication-slots-manipulation"/>).
         </para>
        </listitem>
       </varlistentry>

       <varlistentry>
        <term><replaceable class="parameter">output_plugin</replaceable></term>
        <listitem>
         <para>
          The name of the output plugin used for logical decoding
          (see <xref linkend="logicaldecoding-output-plugin"/>).
         </para>
        </listitem>
       </varlistentry>

       <varlistentry>
        <term><literal>TEMPORARY</literal></term>
        <listitem>
         <para>
          Specify that this replication slot is a temporary one. Temporary
          slots are not saved to disk and are automatically dropped on error
          or when the session has finished.
         </para>
        </listitem>
       </varlistentry>
      </variablelist>

      <para>The following options are supported:</para>

      <variablelist>
       <varlistentry>
        <term><literal>TWO_PHASE [ <replaceable class="parameter">boolean</replaceable> ]</literal></term>
        <listitem>
         <para>
          If true, this logical replication slot supports decoding of two-phase
          commit. With this option, commands related to two-phase commit such as
          <literal>PREPARE TRANSACTION</literal>, <literal>COMMIT PREPARED</literal>
          and <literal>ROLLBACK PREPARED</literal> are decoded and transmitted.
          The transaction will be decoded and transmitted at
          <literal>PREPARE TRANSACTION</literal> time.
          The default is false.
         </para>
        </listitem>
       </varlistentry>

       <varlistentry>
        <term><literal>RESERVE_WAL [ <replaceable class="parameter">boolean</replaceable> ]</literal></term>
        <listitem>
         <para>
          If true, this physical replication slot reserves <acronym>WAL</acronym>
          immediately.  Otherwise, <acronym>WAL</acronym> is only reserved upon
          connection from a streaming replication client.
          The default is false.
         </para>
        </listitem>
       </varlistentry>

       <varlistentry>
        <term><literal>SNAPSHOT { 'export' | 'use' | 'nothing' }</literal></term>
        <listitem>
         <para>
          Decides what to do with the snapshot created during logical slot
          initialization. <literal>'export'</literal>, which is the default,
          will export the snapshot for use in other sessions. This option can't
          be used inside a transaction.  <literal>'use'</literal> will use the
          snapshot for the current transaction executing the command. This
          option must be used in a transaction, and
          <literal>CREATE_REPLICATION_SLOT</literal> must be the first command
          run in that transaction.  Finally, <literal>'nothing'</literal> will
          just use the snapshot for logical decoding as normal but won't do
          anything else with it.
  

Title: CREATE_REPLICATION_SLOT Command
Summary
The CREATE_REPLICATION_SLOT command is used to create a physical or logical replication slot, with options to specify the slot name, output plugin, and temporary status, as well as additional options to control two-phase commit decoding, WAL reservation, and snapshot handling.