nodeIndexscan.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*-------------------------------------------------------------------------
  2. *
  3. * nodeIndexscan.h
  4. *
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2016, 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. #include "nodes/execnodes.h"
  17. extern IndexScanState *ExecInitIndexScan(IndexScan *node, EState *estate, int eflags);
  18. extern TupleTableSlot *ExecIndexScan(IndexScanState *node);
  19. extern void ExecEndIndexScan(IndexScanState *node);
  20. extern void ExecIndexMarkPos(IndexScanState *node);
  21. extern void ExecIndexRestrPos(IndexScanState *node);
  22. extern void ExecReScanIndexScan(IndexScanState *node);
  23. /*
  24. * These routines are exported to share code with nodeIndexonlyscan.c and
  25. * nodeBitmapIndexscan.c
  26. */
  27. extern void ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
  28. List *quals, bool isorderby,
  29. ScanKey *scanKeys, int *numScanKeys,
  30. IndexRuntimeKeyInfo **runtimeKeys, int *numRuntimeKeys,
  31. IndexArrayKeyInfo **arrayKeys, int *numArrayKeys);
  32. extern void ExecIndexEvalRuntimeKeys(ExprContext *econtext,
  33. IndexRuntimeKeyInfo *runtimeKeys, int numRuntimeKeys);
  34. extern bool ExecIndexEvalArrayKeys(ExprContext *econtext,
  35. IndexArrayKeyInfo *arrayKeys, int numArrayKeys);
  36. extern bool ExecIndexAdvanceArrayKeys(IndexArrayKeyInfo *arrayKeys, int numArrayKeys);
  37. #endif /* NODEINDEXSCAN_H */