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