[COMMITTERS] pgsql: Simplify handling of remote-qual pass-forward in postgres_fdw. - Mailing list pgsql-committers

From Tom Lane
Subject [COMMITTERS] pgsql: Simplify handling of remote-qual pass-forward in postgres_fdw.
Date
Msg-id E1cxzyu-0007X9-Kx@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/88e902b769e180a232013e265ff9fd582dde125b

Modified Files
--------------
contrib/postgres_fdw/postgres_fdw.c | 44 ++++++++++++++++++-------------------
contrib/postgres_fdw/postgres_fdw.h |  9 +++++++-
2 files changed, 29 insertions(+), 24 deletions(-)


pgsql-committers by date:

Previous
From: Robert Haas
Date:
Subject: [COMMITTERS] pgsql: Allow a rule on partitioned table to be renamed.
Next
From: Tom Lane
Date:
Subject: [COMMITTERS] pgsql: Remove bogus redefinition of _MSC_VER.