aboutsummaryrefslogtreecommitdiff
path: root/contrib/file_fdw/file_fdw.c
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2015-10-15 13:00:40 -0400
committerRobert Haas <rhaas@postgresql.org>2015-10-15 13:00:40 -0400
commit5fc4c26db5120bd90348b6ee3101fcddfdf54800 (patch)
tree36f2df5232f8c58de77536cfd4d0e11889253b49 /contrib/file_fdw/file_fdw.c
parent817588bc2bd684b630da11ca068505dbd985de10 (diff)
downloadpostgresql-5fc4c26db5120bd90348b6ee3101fcddfdf54800.tar.gz
postgresql-5fc4c26db5120bd90348b6ee3101fcddfdf54800.zip
Allow FDWs to push down quals without breaking EvalPlanQual rechecks.
This fixes a long-standing bug which was discovered while investigating the interaction between the new join pushdown code and the EvalPlanQual machinery: if a ForeignScan appears on the inner side of a paramaterized nestloop, an EPQ recheck would re-return the original tuple even if it no longer satisfied the pushed-down quals due to changed parameter values. This fix adds a new member to ForeignScan and ForeignScanState and a new argument to make_foreignscan, and requires changes to FDWs which push down quals to populate that new argument with a list of quals they have chosen to push down. Therefore, I'm only back-patching to 9.5, even though the bug is not new in 9.5. Etsuro Fujita, reviewed by me and by Kyotaro Horiguchi.
Diffstat (limited to 'contrib/file_fdw/file_fdw.c')
-rw-r--r--contrib/file_fdw/file_fdw.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/contrib/file_fdw/file_fdw.c b/contrib/file_fdw/file_fdw.c
index 499f24ff287..5ce8f90cd8b 100644
--- a/contrib/file_fdw/file_fdw.c
+++ b/contrib/file_fdw/file_fdw.c
@@ -563,7 +563,8 @@ fileGetForeignPlan(PlannerInfo *root,
scan_relid,
NIL, /* no expressions to evaluate */
best_path->fdw_private,
- NIL /* no custom tlist */ );
+ NIL, /* no custom tlist */
+ NIL /* no remote quals */ );
}
/*