postgresql/contrib/postgres_fdw
Tom Lane 88e902b769 Simplify handling of remote-qual pass-forward in postgres_fdw.
Commit 0bf3ae88a encountered a need to pass the finally chosen remote qual
conditions forward from postgresGetForeignPlan to postgresPlanDirectModify.
It solved that by sticking them into the plan node's fdw_private list,
which in hindsight was a pretty bad idea.  In the first place, there's no
use for those qual trees either in EXPLAIN or execution; indeed they could
never safely be used for any post-planning purposes, because they would not
get processed by setrefs.c.  So they're just dead weight to carry around in
the finished plan tree, plus being an attractive nuisance for somebody who
might get the idea that they could be used that way.  Secondly, because
those qual trees (sometimes) contained RestrictInfos, they created a
plan-transmission hazard for parallel query, which is how come we noticed a
problem.  We dealt with that symptom in commit 28b047875, but really a more
straightforward and more efficient fix is to pass the data through in a new
field of struct PgFdwRelationInfo.  So do it that way.  (There's no need
to revert 28b047875, as it has sufficient reason to live anyway.)

Per fuzz testing by Andreas Seltenreich.

Discussion: https://postgr.es/m/87tw5x4vcu.fsf@credativ.de
2017-04-11 13:53:21 -04:00
..
expected Optimize joins when the inner relation can be proven unique. 2017-04-07 22:20:13 -04:00
sql Capitalize names of PLs consistently 2017-04-05 00:38:25 -04:00
.gitignore Add postgres_fdw contrib module. 2013-02-21 05:27:16 -05:00
Makefile Allow postgres_fdw to ship extension funcs/operators for remote execution. 2015-11-03 18:42:18 -05:00
connection.c chomp PQerrorMessage() in backend uses 2017-02-27 08:54:51 -05:00
deparse.c Handle restriction clause lists more uniformly in postgres_fdw. 2017-04-11 11:59:09 -04:00
option.c Move some things from builtins.h to new header files 2017-01-20 20:29:53 -05:00
postgres_fdw--1.0.sql Add postgres_fdw contrib module. 2013-02-21 05:27:16 -05:00
postgres_fdw.c Simplify handling of remote-qual pass-forward in postgres_fdw. 2017-04-11 13:53:21 -04:00
postgres_fdw.control Add postgres_fdw contrib module. 2013-02-21 05:27:16 -05:00
postgres_fdw.h Simplify handling of remote-qual pass-forward in postgres_fdw. 2017-04-11 13:53:21 -04:00
shippable.c Update copyright via script for 2017 2017-01-03 13:48:53 -05:00