Header And Logo

PostgreSQL
| The world's most advanced open source database.

nodeIndexscan.h

Go to the documentation of this file.
00001 /*-------------------------------------------------------------------------
00002  *
00003  * nodeIndexscan.h
00004  *
00005  *
00006  *
00007  * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
00008  * Portions Copyright (c) 1994, Regents of the University of California
00009  *
00010  * src/include/executor/nodeIndexscan.h
00011  *
00012  *-------------------------------------------------------------------------
00013  */
00014 #ifndef NODEINDEXSCAN_H
00015 #define NODEINDEXSCAN_H
00016 
00017 #include "nodes/execnodes.h"
00018 
00019 extern IndexScanState *ExecInitIndexScan(IndexScan *node, EState *estate, int eflags);
00020 extern TupleTableSlot *ExecIndexScan(IndexScanState *node);
00021 extern void ExecEndIndexScan(IndexScanState *node);
00022 extern void ExecIndexMarkPos(IndexScanState *node);
00023 extern void ExecIndexRestrPos(IndexScanState *node);
00024 extern void ExecReScanIndexScan(IndexScanState *node);
00025 
00026 /*
00027  * These routines are exported to share code with nodeIndexonlyscan.c and
00028  * nodeBitmapIndexscan.c
00029  */
00030 extern void ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
00031                        List *quals, bool isorderby,
00032                        ScanKey *scanKeys, int *numScanKeys,
00033                        IndexRuntimeKeyInfo **runtimeKeys, int *numRuntimeKeys,
00034                        IndexArrayKeyInfo **arrayKeys, int *numArrayKeys);
00035 extern void ExecIndexEvalRuntimeKeys(ExprContext *econtext,
00036                        IndexRuntimeKeyInfo *runtimeKeys, int numRuntimeKeys);
00037 extern bool ExecIndexEvalArrayKeys(ExprContext *econtext,
00038                        IndexArrayKeyInfo *arrayKeys, int numArrayKeys);
00039 extern bool ExecIndexAdvanceArrayKeys(IndexArrayKeyInfo *arrayKeys, int numArrayKeys);
00040 
00041 #endif   /* NODEINDEXSCAN_H */