• Robert Haas's avatar
    Allow FDWs to push down quals without breaking EvalPlanQual rechecks. · 5fc4c26d
    Robert Haas authored
    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.
    5fc4c26d
subselect.c 84.7 KB