---------------------------------------------------------------- * ExecIndexOnlyRestrPos * ---------------------------------------------------------------- */
| 453 | * ---------------------------------------------------------------- |
| 454 | */ |
| 455 | void |
| 456 | ExecIndexOnlyRestrPos(IndexOnlyScanState *node) |
| 457 | { |
| 458 | EState *estate = node->ss.ps.state; |
| 459 | EPQState *epqstate = estate->es_epq_active; |
| 460 | |
| 461 | if (estate->es_epq_active != NULL) |
| 462 | { |
| 463 | /* See comments in ExecIndexMarkPos */ |
| 464 | Index scanrelid = ((Scan *) node->ss.ps.plan)->scanrelid; |
| 465 | |
| 466 | Assert(scanrelid > 0); |
| 467 | if (epqstate->relsubs_slot[scanrelid - 1] != NULL || |
| 468 | epqstate->relsubs_rowmark[scanrelid - 1] != NULL) |
| 469 | { |
| 470 | /* Verify the claim above */ |
| 471 | if (!epqstate->relsubs_done[scanrelid - 1]) |
| 472 | elog(ERROR, "unexpected ExecIndexOnlyRestrPos call in EPQ recheck"); |
| 473 | return; |
| 474 | } |
| 475 | } |
| 476 | |
| 477 | index_restrpos(node->ioss_ScanDesc); |
| 478 | } |
| 479 | |
| 480 | /* ---------------------------------------------------------------- |
| 481 | * ExecInitIndexOnlyScan |
no test coverage detected