Add FDW documentation notes about insert and update tuple routing and COPY.

Author: Laurenz Albe and Etsuro Fujita
Reviewed-by: Laurenz Albe and Amit Langote
Backpatch-through: 11 where support for that by FDWs was added
Discussion: https://postgr.es/m/bf36a0288e8f31b4f2f40952e225bf892dc1ffc5.camel@cybertec.at
This commit is contained in:
Etsuro Fujita 2019-04-26 18:10:06 +09:00
parent b1f570b57c
commit 53f48a2abb
2 changed files with 18 additions and 0 deletions

View File

@ -587,6 +587,14 @@ ExecForeignInsert(EState *estate,
with an error message.
</para>
<para>
Note that this function is also called when inserting routed tuples into
a foreign-table partition or executing <command>COPY FROM</command> on
a foreign table, in which case it is called in a different way than it
is in the <command>INSERT</command> case. See the callback functions
described below that allow the FDW to support that.
</para>
<para>
<programlisting>
TupleTableSlot *
@ -743,6 +751,13 @@ BeginForeignInsert(ModifyTableState *mtstate,
<literal>NULL</literal>, no action is taken for the initialization.
</para>
<para>
Note that if the FDW does not support routable foreign-table partitions
and/or executing <command>COPY FROM</command> on foreign tables, this
function or <function>ExecForeignInsert</function> subsequently called
must throw error as needed.
</para>
<para>
<programlisting>
void

View File

@ -2594,6 +2594,9 @@ Branch: REL9_3_STABLE [84261eb10] 2018-10-19 17:02:26 -0400
<para>
This is supported by <filename>postgres_fdw</filename>
foreign tables.
Since the <function>ExecForeignInsert</function> callback function
is called for this in a different way than it used to be,
foreign data wrappers must be modified to cope with this change.
</para>
</listitem>