]> granicus.if.org Git - postgresql/commit
postgres_fdw: Don't push down certain full joins.
authorRobert Haas <rhaas@postgresql.org>
Thu, 21 Apr 2016 03:34:07 +0000 (23:34 -0400)
committerRobert Haas <rhaas@postgresql.org>
Thu, 21 Apr 2016 03:54:19 +0000 (23:54 -0400)
commit5b1f9ce1d9e8dcae2bcd93b2becffaba5e4f3049
treeaf17513006e12e0225dc30d07d1668c78cdd2966
parentcbabb70f35bb0e5bac84b9f15ecadc82868ad9f9
postgres_fdw: Don't push down certain full joins.

If there's a filter condition on either side of a full outer join,
it is neither correct to attach it to the join's ON clause nor to
throw it into the toplevel WHERE clause.  Just don't push down the
join in that case.

To maximize the number of cases where we can still push down full
joins, push inner join conditions into the ON clause at the first
opportunity rather than postponing them to the top-level WHERE
clause.  This produces nicer SQL, anyway.

This bug was introduced in e4106b2528727c4b48639c0e12bf2f70a766b910.

Ashutosh Bapat, per report from Rajkumar Raghuwanshi.
contrib/postgres_fdw/expected/postgres_fdw.out
contrib/postgres_fdw/postgres_fdw.c
contrib/postgres_fdw/sql/postgres_fdw.sql