2
0

nodeIndexscan.h 1.9 KB

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