---------------------------------------------------------------- * ExecIndexRestrPos * ---------------------------------------------------------------- */
| 872 | * ---------------------------------------------------------------- |
| 873 | */ |
| 874 | void |
| 875 | ExecIndexRestrPos(IndexScanState *node) |
| 876 | { |
| 877 | EState *estate = node->ss.ps.state; |
| 878 | EPQState *epqstate = estate->es_epq_active; |
| 879 | |
| 880 | if (estate->es_epq_active != NULL) |
| 881 | { |
| 882 | /* See comments in ExecIndexMarkPos */ |
| 883 | Index scanrelid = ((Scan *) node->ss.ps.plan)->scanrelid; |
| 884 | |
| 885 | Assert(scanrelid > 0); |
| 886 | if (epqstate->relsubs_slot[scanrelid - 1] != NULL || |
| 887 | epqstate->relsubs_rowmark[scanrelid - 1] != NULL) |
| 888 | { |
| 889 | /* Verify the claim above */ |
| 890 | if (!epqstate->relsubs_done[scanrelid - 1]) |
| 891 | elog(ERROR, "unexpected ExecIndexRestrPos call in EPQ recheck"); |
| 892 | return; |
| 893 | } |
| 894 | } |
| 895 | |
| 896 | index_restrpos(node->iss_ScanDesc); |
| 897 | } |
| 898 | |
| 899 | /* ---------------------------------------------------------------- |
| 900 | * ExecInitIndexScan |
no test coverage detected