postgresql/src/include/optimizer
Robert Haas 5043193b78 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.
2015-10-15 13:10:39 -04:00
..
clauses.h Improve qual pushdown for RLS and SB views 2015-04-27 12:29:42 -04:00
cost.h Redesign tablesample method API, and do extensive code review. 2015-07-25 14:39:00 -04:00
geqo.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
geqo_copy.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
geqo_gene.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
geqo_misc.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
geqo_mutation.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
geqo_pool.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
geqo_random.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
geqo_recombination.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
geqo_selection.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
joininfo.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
orclauses.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
pathnode.h pgindent run for 9.5 2015-05-23 21:35:49 -04:00
paths.h Fix eclass_useful_for_merging to give valid results for appendrel children. 2015-08-06 20:14:54 -04:00
placeholder.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
plancat.h Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. 2015-05-08 05:43:10 +02:00
planmain.h Allow FDWs to push down quals without breaking EvalPlanQual rechecks. 2015-10-15 13:10:39 -04:00
planner.h Allow foreign tables to participate in inheritance. 2015-03-22 13:53:21 -04:00
predtest.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
prep.h pgindent run for 9.5 2015-05-23 21:35:49 -04:00
restrictinfo.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
subselect.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
tlist.h pgindent run for 9.5 2015-05-23 21:35:49 -04:00
var.h Update copyright for 2015 2015-01-06 11:43:47 -05:00