mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
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.
This commit is contained in:
@ -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 */ );
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user