mirror of
https://github.com/postgres/postgres.git
synced 2026-02-03 20:40:14 -05:00
node, as this behavior is now better done as a bitmap OR indexscan. This allows considerable simplification in nodeIndexscan.c itself as well as several planner modules concerned with indexscan plan generation. Also we can improve the sharing of code between regular and bitmap indexscans, since they are now working with nigh-identical Plan nodes.
37 lines
1.3 KiB
C
37 lines
1.3 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* nodeIndexscan.h
|
|
*
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* $PostgreSQL: pgsql/src/include/executor/nodeIndexscan.h,v 1.23 2005/04/25 01:30:14 tgl Exp $
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef NODEINDEXSCAN_H
|
|
#define NODEINDEXSCAN_H
|
|
|
|
#include "nodes/execnodes.h"
|
|
|
|
extern int ExecCountSlotsIndexScan(IndexScan *node);
|
|
extern IndexScanState *ExecInitIndexScan(IndexScan *node, EState *estate);
|
|
extern TupleTableSlot *ExecIndexScan(IndexScanState *node);
|
|
extern void ExecEndIndexScan(IndexScanState *node);
|
|
extern void ExecIndexMarkPos(IndexScanState *node);
|
|
extern void ExecIndexRestrPos(IndexScanState *node);
|
|
extern void ExecIndexReScan(IndexScanState *node, ExprContext *exprCtxt);
|
|
|
|
/* routines exported to share code with nodeBitmapIndexscan.c */
|
|
extern bool ExecIndexBuildScanKeys(PlanState *planstate, List *quals,
|
|
List *strategies, List *subtypes,
|
|
ExprState ***runtimeKeyInfo,
|
|
ScanKey *scanKeys, int *numScanKeys);
|
|
extern void ExecIndexEvalRuntimeKeys(ExprContext *econtext,
|
|
ExprState **run_keys,
|
|
ScanKey scan_keys,
|
|
int n_keys);
|
|
|
|
#endif /* NODEINDEXSCAN_H */
|