Home Explore Blog CI



postgresql

8th chunk of `doc/src/sgml/postgres-fdw.sgml`
1c414c9f11b1b3c0f7db640e792edb5241c904d8ee2f942a0000000100000fa7
 <title>Transaction Management Options</title>

   <para>
    As described in the Transaction Management section, in
    <filename>postgres_fdw</filename> transactions are managed by creating
    corresponding remote transactions, and subtransactions are managed by
    creating corresponding remote subtransactions. When multiple remote
    transactions are involved in the current local transaction, by default
    <filename>postgres_fdw</filename> commits or aborts those remote
    transactions serially when the local transaction is committed or aborted.
    When multiple remote subtransactions are involved in the current local
    subtransaction, by default <filename>postgres_fdw</filename> commits or
    aborts those remote subtransactions serially when the local subtransaction
    is committed or aborted.
    Performance can be improved with the following options:
   </para>

   <variablelist>

    <varlistentry>
     <term><literal>parallel_commit</literal> (<type>boolean</type>)</term>
     <listitem>
      <para>
       This option controls whether <filename>postgres_fdw</filename> commits,
       in parallel, remote transactions opened on a foreign server in a local
       transaction when the local transaction is committed. This setting also
       applies to remote and local subtransactions. This option can only be
       specified for foreign servers, not per-table. The default is
       <literal>false</literal>.
      </para>
     </listitem>
    </varlistentry>

    <varlistentry>
     <term><literal>parallel_abort</literal> (<type>boolean</type>)</term>
     <listitem>
      <para>
       This option controls whether <filename>postgres_fdw</filename> aborts,
       in parallel, remote transactions opened on a foreign server in a local
       transaction when the local transaction is aborted. This setting also
       applies to remote and local subtransactions. This option can only be
       specified for foreign servers, not per-table. The default is
       <literal>false</literal>.
      </para>
     </listitem>
    </varlistentry>

   </variablelist>

   <para>
    If multiple foreign servers with these options enabled are involved in a
    local transaction, multiple remote transactions on those foreign servers
    are committed or aborted in parallel across those foreign servers when
    the local transaction is committed or aborted.
   </para>

   <para>
    When these options are enabled, a foreign server with many remote
    transactions may see a negative performance impact when the local
    transaction is committed or aborted.
   </para>

  </sect3>

  <sect3 id="postgres-fdw-options-updatability">
   <title>Updatability Options</title>

   <para>
    By default all foreign tables using <filename>postgres_fdw</filename> are assumed
    to be updatable.  This may be overridden using the following option:
   </para>

   <variablelist>

    <varlistentry>
     <term><literal>updatable</literal> (<type>boolean</type>)</term>
     <listitem>
      <para>
       This option controls whether <filename>postgres_fdw</filename> allows foreign
       tables to be modified using <command>INSERT</command>, <command>UPDATE</command> and
       <command>DELETE</command> commands.  It can be specified for a foreign table
       or a foreign server.  A table-level option overrides a server-level
       option.
       The default is <literal>true</literal>.
      </para>

      <para>
       Of course, if the remote table is not in fact updatable, an error
       would occur anyway.  Use of this option primarily allows the error to
       be thrown locally without querying the remote server.  Note however
       that the <literal>information_schema</literal> views will report a
       <filename>postgres_fdw</filename> foreign table to be updatable (or not)
       according to the setting of this option, without any check of the
       remote server.
      </para>
     </listitem>
    </varlistentry>

   </variablelist>
  </sect3>

Title: Postgres FDW Transaction Management and Updatability Options
Summary
The postgres_fdw foreign data wrapper provides options to control transaction management, including parallel_commit and parallel_abort to commit or abort remote transactions in parallel, and updatability options, such as updatable, to control whether foreign tables can be modified using INSERT, UPDATE, and DELETE commands.