codekingpro/portable-devtools
115k
1/*-------------------------------------------------------------------------2 *3 * nodeIndexscan.h4 *5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/executor/nodeIndexscan.h11 *12 *-------------------------------------------------------------------------13 */14#ifndef NODEINDEXSCAN_H15#define NODEINDEXSCAN_H16 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);26extern void ExecIndexScanEstimate(IndexScanState *node, ParallelContext *pcxt);27extern void ExecIndexScanInitializeDSM(IndexScanState *node, ParallelContext *pcxt);28extern void ExecIndexScanReInitializeDSM(IndexScanState *node, ParallelContext *pcxt);29extern void ExecIndexScanInitializeWorker(IndexScanState *node,30 ParallelWorkerContext *pwcxt);31 32/*33 * These routines are exported to share code with nodeIndexonlyscan.c and34 * nodeBitmapIndexscan.c35 */36extern void ExecIndexBuildScanKeys(PlanState *planstate, Relation index,37 List *quals, bool isorderby,38 ScanKey *scanKeys, int *numScanKeys,39 IndexRuntimeKeyInfo **runtimeKeys, int *numRuntimeKeys,40 IndexArrayKeyInfo **arrayKeys, int *numArrayKeys);41extern void ExecIndexEvalRuntimeKeys(ExprContext *econtext,42 IndexRuntimeKeyInfo *runtimeKeys, int numRuntimeKeys);43extern bool ExecIndexEvalArrayKeys(ExprContext *econtext,44 IndexArrayKeyInfo *arrayKeys, int numArrayKeys);45extern bool ExecIndexAdvanceArrayKeys(IndexArrayKeyInfo *arrayKeys, int numArrayKeys);46 47#endif /* NODEINDEXSCAN_H */48 