Skip to content
Snippets Groups Projects
  • Robert Haas's avatar
    5fc4c26d
    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
    History
    Allow FDWs to push down quals without breaking EvalPlanQual rechecks.
    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.