---------------------------------------------------------------- * ExecForeignScan(node) * * Fetches the next tuple from the FDW, checks local quals, and * returns it. * We call the ExecScan() routine and pass it the appropriate * access method functions. * ---------------------------------------------------------------- */
| 116 | * ---------------------------------------------------------------- |
| 117 | */ |
| 118 | static TupleTableSlot * |
| 119 | ExecForeignScan(PlanState *pstate) |
| 120 | { |
| 121 | ForeignScanState *node = castNode(ForeignScanState, pstate); |
| 122 | ForeignScan *plan = (ForeignScan *) node->ss.ps.plan; |
| 123 | EState *estate = node->ss.ps.state; |
| 124 | |
| 125 | /* |
| 126 | * Ignore direct modifications when EvalPlanQual is active --- they are |
| 127 | * irrelevant for EvalPlanQual rechecking |
| 128 | */ |
| 129 | if (estate->es_epq_active != NULL && plan->operation != CMD_SELECT) |
| 130 | return NULL; |
| 131 | |
| 132 | return ExecScan(&node->ss, |
| 133 | (ExecScanAccessMtd) ForeignNext, |
| 134 | (ExecScanRecheckMtd) ForeignRecheck); |
| 135 | } |
| 136 | |
| 137 | |
| 138 | /* ---------------------------------------------------------------- |
nothing calls this directly
no test coverage detected