diff options
author | Tom Lane | 2015-08-15 18:31:04 +0000 |
---|---|---|
committer | Tom Lane | 2015-08-15 18:31:04 +0000 |
commit | 522400a5198f63823406202e18fdaf3621619d98 (patch) | |
tree | c4b2bbc5dc8e74e610ab09a8e86f66abda333510 | |
parent | 5869cbfef48fdfa6b8f108c6c395601e8ad27250 (diff) |
Add docs about postgres_fdw's setting of search_path and other GUCs.
This behavior wasn't documented, but it should be because it's user-visible
in triggers and other functions executed on the remote server.
Per question from Adam Fuchs.
Back-patch to 9.3 where postgres_fdw was added.
-rw-r--r-- | doc/src/sgml/postgres-fdw.sgml | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/doc/src/sgml/postgres-fdw.sgml b/doc/src/sgml/postgres-fdw.sgml index 14b12e37dc..7c922821e9 100644 --- a/doc/src/sgml/postgres-fdw.sgml +++ b/doc/src/sgml/postgres-fdw.sgml @@ -438,6 +438,41 @@ </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> <para> |