diff options
author | Robert Haas <rhaas@postgresql.org> | 2016-02-09 14:00:50 -0500 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2016-02-09 14:00:50 -0500 |
commit | e4106b2528727c4b48639c0e12bf2f70a766b910 (patch) | |
tree | d22a96438d65f4cdd6537ab7787296e6bf14b190 /doc/src | |
parent | 7351e18286ec83461b386e23328d65fd4a538bba (diff) |
postgres_fdw: Push down joins to remote servers.
If we've got a relatively straightforward join between two tables,
this pushes that join down to the remote server instead of fetching
the rows for each table and performing the join locally. Some cases
are not handled yet, such as SEMI and ANTI joins. Also, we don't
yet attempt to create presorted join paths or parameterized join
paths even though these options do get tried for a base relation
scan. Nevertheless, this seems likely to be a very significant win
in many practical cases.
Shigeru Hanada and Ashutosh Bapat, reviewed by Robert Haas, with
additional review at various points by Tom Lane, Etsuro Fujita,
KaiGai Kohei, and Jeevan Chalke.
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/postgres-fdw.sgml | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/doc/src/sgml/postgres-fdw.sgml b/doc/src/sgml/postgres-fdw.sgml index a90983cb1e9..c408ba659bc 100644 --- a/doc/src/sgml/postgres-fdw.sgml +++ b/doc/src/sgml/postgres-fdw.sgml @@ -487,6 +487,16 @@ </para> <para> + When <filename>postgres_fdw</> encounters a join between foreign tables on + the same foreign server, it sends the entire join to the foreign server, + unless for some reason it believes that it will be more efficient to fetch + rows from each table individually, or unless the table references involved + are subject to different user mappings. While sending the <literal>JOIN</> + clauses, it takes the same precautions as mentioned above for the + <literal>WHERE</> clauses. + </para> + + <para> The query that is actually sent to the remote server for execution can be examined using <command>EXPLAIN VERBOSE</>. </para> |