diff --git a/doc/src/sgml/postgres-fdw.sgml b/doc/src/sgml/postgres-fdw.sgml index e6f6e205815cae003f3554d1b8df0f5885d28deb..ecf3b862f9e4cba2049ada2664741a6f72cdd86c 100644 --- a/doc/src/sgml/postgres-fdw.sgml +++ b/doc/src/sgml/postgres-fdw.sgml @@ -355,6 +355,41 @@ </para> </sect2> + <sect2> + <title>Remote Query Execution Environment</title> + + <para> + In the remote sessions opened by <filename>postgres_fdw</>, + the <xref linkend="guc-search-path"> parameter is set to + just <literal>pg_catalog</>, so that only built-in objects are visible + without schema qualification. This is not an issue for queries + generated by <filename>postgres_fdw</> itself, because it always + supplies such qualification. However, this can pose a hazard for + functions that are executed on the remote server via triggers or rules + on remote tables. For example, if a remote table is actually a view, + any functions used in that view will be executed with the restricted + search path. It is recommended to schema-qualify all names in such + functions, or else attach <literal>SET search_path</> options + (see <xref linkend="sql-createfunction">) to such functions + to establish their expected search path environment. + </para> + + <para> + <filename>postgres_fdw</> likewise establishes remote session settings + for the parameters <xref linkend="guc-timezone">, + <xref linkend="guc-datestyle">, <xref linkend="guc-intervalstyle">, + and <xref linkend="guc-extra-float-digits">. These are less likely + to be problematic than <varname>search_path</>, but can be handled + with function <literal>SET</> options if the need arises. + </para> + + <para> + It is <emphasis>not</> recommended that you override this behavior by + changing the session-level settings of these parameters; that is likely + to cause <filename>postgres_fdw</> to malfunction. + </para> + </sect2> + <sect2> <title>Cross-Version Compatibility</title>