]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Add FDW documentation notes about insert and update tuple routing and COPY.
authorEtsuro Fujita <efujita@postgresql.org>
Fri, 26 Apr 2019 09:10:06 +0000 (18:10 +0900)
committerEtsuro Fujita <efujita@postgresql.org>
Fri, 26 Apr 2019 09:10:06 +0000 (18:10 +0900)
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

doc/src/sgml/fdwhandler.sgml
doc/src/sgml/release-11.sgml

index 7b758bdf09b6114c15936b1ce4431dd6de6db8a0..f719b06664b3e388049e37550b47c437f58f7082 100644 (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
index 14e2726f0c17b20b8e4f8fcbdc8221a968f5e17f..5c9f41a17aaa25068ff0003e02ceaaabc21df740 100644 (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>