From 53f48a2abb7b13a866d62e68e6ecfb11b637b0b1 Mon Sep 17 00:00:00 2001 From: Etsuro Fujita Date: Fri, 26 Apr 2019 18:10:06 +0900 Subject: [PATCH] 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 --- doc/src/sgml/fdwhandler.sgml | 15 +++++++++++++++ doc/src/sgml/release-11.sgml | 3 +++ 2 files changed, 18 insertions(+) diff --git a/doc/src/sgml/fdwhandler.sgml b/doc/src/sgml/fdwhandler.sgml index 7b758bdf09b..f719b06664b 100644 --- a/doc/src/sgml/fdwhandler.sgml +++ b/doc/src/sgml/fdwhandler.sgml @@ -587,6 +587,14 @@ ExecForeignInsert(EState *estate, with an error message. + + Note that this function is also called when inserting routed tuples into + a foreign-table partition or executing COPY FROM on + a foreign table, in which case it is called in a different way than it + is in the INSERT case. See the callback functions + described below that allow the FDW to support that. + + TupleTableSlot * @@ -743,6 +751,13 @@ BeginForeignInsert(ModifyTableState *mtstate, NULL, no action is taken for the initialization. + + Note that if the FDW does not support routable foreign-table partitions + and/or executing COPY FROM on foreign tables, this + function or ExecForeignInsert subsequently called + must throw error as needed. + + void diff --git a/doc/src/sgml/release-11.sgml b/doc/src/sgml/release-11.sgml index 14e2726f0c1..5c9f41a17aa 100644 --- a/doc/src/sgml/release-11.sgml +++ b/doc/src/sgml/release-11.sgml @@ -2594,6 +2594,9 @@ Branch: REL9_3_STABLE [84261eb10] 2018-10-19 17:02:26 -0400 This is supported by postgres_fdw foreign tables. + Since the ExecForeignInsert 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.