PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
nodeIndexscan.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * nodeIndexscan.h
4 *
5 *
6 *
7 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
9 *
10 * src/include/executor/nodeIndexscan.h
11 *
12 *-------------------------------------------------------------------------
13 */
14#ifndef NODEINDEXSCAN_H
15#define NODEINDEXSCAN_H
16
17#include "access/genam.h"
18#include "access/parallel.h"
19#include "nodes/execnodes.h"
20
21extern IndexScanState *ExecInitIndexScan(IndexScan *node, EState *estate, int eflags);
22extern void ExecEndIndexScan(IndexScanState *node);
23extern void ExecIndexMarkPos(IndexScanState *node);
24extern void ExecIndexRestrPos(IndexScanState *node);
25extern void ExecReScanIndexScan(IndexScanState *node);
32
33/*
34 * These routines are exported to share code with nodeIndexonlyscan.c and
35 * nodeBitmapIndexscan.c
36 */
37extern void ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
38 List *quals, bool isorderby,
39 ScanKey *scanKeys, int *numScanKeys,
40 IndexRuntimeKeyInfo **runtimeKeys, int *numRuntimeKeys,
41 IndexArrayKeyInfo **arrayKeys, int *numArrayKeys);
42extern void ExecIndexEvalRuntimeKeys(ExprContext *econtext,
43 IndexRuntimeKeyInfo *runtimeKeys, int numRuntimeKeys);
44extern bool ExecIndexEvalArrayKeys(ExprContext *econtext,
45 IndexArrayKeyInfo *arrayKeys, int numArrayKeys);
46extern bool ExecIndexAdvanceArrayKeys(IndexArrayKeyInfo *arrayKeys, int numArrayKeys);
47
48#endif /* NODEINDEXSCAN_H */
void ExecIndexBuildScanKeys(PlanState *planstate, Relation index, List *quals, bool isorderby, ScanKey *scanKeys, int *numScanKeys, IndexRuntimeKeyInfo **runtimeKeys, int *numRuntimeKeys, IndexArrayKeyInfo **arrayKeys, int *numArrayKeys)
void ExecIndexScanRetrieveInstrumentation(IndexScanState *node)
void ExecIndexScanEstimate(IndexScanState *node, ParallelContext *pcxt)
bool ExecIndexEvalArrayKeys(ExprContext *econtext, IndexArrayKeyInfo *arrayKeys, int numArrayKeys)
void ExecIndexEvalRuntimeKeys(ExprContext *econtext, IndexRuntimeKeyInfo *runtimeKeys, int numRuntimeKeys)
void ExecIndexScanReInitializeDSM(IndexScanState *node, ParallelContext *pcxt)
void ExecReScanIndexScan(IndexScanState *node)
void ExecIndexScanInitializeDSM(IndexScanState *node, ParallelContext *pcxt)
IndexScanState * ExecInitIndexScan(IndexScan *node, EState *estate, int eflags)
void ExecIndexScanInitializeWorker(IndexScanState *node, ParallelWorkerContext *pwcxt)
void ExecEndIndexScan(IndexScanState *node)
void ExecIndexRestrPos(IndexScanState *node)
void ExecIndexMarkPos(IndexScanState *node)
bool ExecIndexAdvanceArrayKeys(IndexArrayKeyInfo *arrayKeys, int numArrayKeys)
Definition: pg_list.h:54
Definition: type.h:96