stratnum.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*-------------------------------------------------------------------------
  2. *
  3. * stratnum.h
  4. * POSTGRES strategy number definitions.
  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/access/stratnum.h
  11. *
  12. *-------------------------------------------------------------------------
  13. */
  14. #ifndef STRATNUM_H
  15. #define STRATNUM_H
  16. /*
  17. * Strategy numbers identify the semantics that particular operators have
  18. * with respect to particular operator classes. In some cases a strategy
  19. * subtype (an OID) is used as further information.
  20. */
  21. typedef uint16 StrategyNumber;
  22. #define InvalidStrategy ((StrategyNumber) 0)
  23. /*
  24. * Strategy numbers for B-tree indexes.
  25. */
  26. #define BTLessStrategyNumber 1
  27. #define BTLessEqualStrategyNumber 2
  28. #define BTEqualStrategyNumber 3
  29. #define BTGreaterEqualStrategyNumber 4
  30. #define BTGreaterStrategyNumber 5
  31. #define BTMaxStrategyNumber 5
  32. /*
  33. * Strategy numbers common to (some) GiST, SP-GiST and BRIN opclasses.
  34. *
  35. * The first few of these come from the R-Tree indexing method (hence the
  36. * names); the others have been added over time as they have been needed.
  37. */
  38. #define RTLeftStrategyNumber 1 /* for << */
  39. #define RTOverLeftStrategyNumber 2 /* for &< */
  40. #define RTOverlapStrategyNumber 3 /* for && */
  41. #define RTOverRightStrategyNumber 4 /* for &> */
  42. #define RTRightStrategyNumber 5 /* for >> */
  43. #define RTSameStrategyNumber 6 /* for ~= */
  44. #define RTContainsStrategyNumber 7 /* for @> */
  45. #define RTContainedByStrategyNumber 8 /* for <@ */
  46. #define RTOverBelowStrategyNumber 9 /* for &<| */
  47. #define RTBelowStrategyNumber 10 /* for <<| */
  48. #define RTAboveStrategyNumber 11 /* for |>> */
  49. #define RTOverAboveStrategyNumber 12 /* for |&> */
  50. #define RTOldContainsStrategyNumber 13 /* for old spelling of @> */
  51. #define RTOldContainedByStrategyNumber 14 /* for old spelling of <@ */
  52. #define RTKNNSearchStrategyNumber 15 /* for <-> (distance) */
  53. #define RTContainsElemStrategyNumber 16 /* for range types @> elem */
  54. #define RTAdjacentStrategyNumber 17 /* for -|- */
  55. #define RTEqualStrategyNumber 18 /* for = */
  56. #define RTNotEqualStrategyNumber 19 /* for != */
  57. #define RTLessStrategyNumber 20 /* for < */
  58. #define RTLessEqualStrategyNumber 21 /* for <= */
  59. #define RTGreaterStrategyNumber 22 /* for > */
  60. #define RTGreaterEqualStrategyNumber 23 /* for >= */
  61. #define RTSubStrategyNumber 24 /* for inet >> */
  62. #define RTSubEqualStrategyNumber 25 /* for inet <<= */
  63. #define RTSuperStrategyNumber 26 /* for inet << */
  64. #define RTSuperEqualStrategyNumber 27 /* for inet >>= */
  65. #define RTMaxStrategyNumber 27
  66. #endif /* STRATNUM_H */