12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- /*-------------------------------------------------------------------------
- *
- * stratnum.h
- * POSTGRES strategy number definitions.
- *
- *
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- * src/include/access/stratnum.h
- *
- *-------------------------------------------------------------------------
- */
- #ifndef STRATNUM_H
- #define STRATNUM_H
- /*
- * Strategy numbers identify the semantics that particular operators have
- * with respect to particular operator classes. In some cases a strategy
- * subtype (an OID) is used as further information.
- */
- typedef uint16 StrategyNumber;
- #define InvalidStrategy ((StrategyNumber) 0)
- /*
- * Strategy numbers for B-tree indexes.
- */
- #define BTLessStrategyNumber 1
- #define BTLessEqualStrategyNumber 2
- #define BTEqualStrategyNumber 3
- #define BTGreaterEqualStrategyNumber 4
- #define BTGreaterStrategyNumber 5
- #define BTMaxStrategyNumber 5
- /*
- * Strategy numbers for hash indexes. There's only one valid strategy for
- * hashing: equality.
- */
- #define HTEqualStrategyNumber 1
- #define HTMaxStrategyNumber 1
- /*
- * Strategy numbers common to (some) GiST, SP-GiST and BRIN opclasses.
- *
- * The first few of these come from the R-Tree indexing method (hence the
- * names); the others have been added over time as they have been needed.
- */
- #define RTLeftStrategyNumber 1 /* for << */
- #define RTOverLeftStrategyNumber 2 /* for &< */
- #define RTOverlapStrategyNumber 3 /* for && */
- #define RTOverRightStrategyNumber 4 /* for &> */
- #define RTRightStrategyNumber 5 /* for >> */
- #define RTSameStrategyNumber 6 /* for ~= */
- #define RTContainsStrategyNumber 7 /* for @> */
- #define RTContainedByStrategyNumber 8 /* for <@ */
- #define RTOverBelowStrategyNumber 9 /* for &<| */
- #define RTBelowStrategyNumber 10 /* for <<| */
- #define RTAboveStrategyNumber 11 /* for |>> */
- #define RTOverAboveStrategyNumber 12 /* for |&> */
- #define RTOldContainsStrategyNumber 13 /* for old spelling of @> */
- #define RTOldContainedByStrategyNumber 14 /* for old spelling of <@ */
- #define RTKNNSearchStrategyNumber 15 /* for <-> (distance) */
- #define RTContainsElemStrategyNumber 16 /* for range types @> elem */
- #define RTAdjacentStrategyNumber 17 /* for -|- */
- #define RTEqualStrategyNumber 18 /* for = */
- #define RTNotEqualStrategyNumber 19 /* for != */
- #define RTLessStrategyNumber 20 /* for < */
- #define RTLessEqualStrategyNumber 21 /* for <= */
- #define RTGreaterStrategyNumber 22 /* for > */
- #define RTGreaterEqualStrategyNumber 23 /* for >= */
- #define RTSubStrategyNumber 24 /* for inet >> */
- #define RTSubEqualStrategyNumber 25 /* for inet <<= */
- #define RTSuperStrategyNumber 26 /* for inet << */
- #define RTSuperEqualStrategyNumber 27 /* for inet >>= */
- #define RTPrefixStrategyNumber 28 /* for text ^@ */
- #define RTOldBelowStrategyNumber 29 /* for old spelling of <<| */
- #define RTOldAboveStrategyNumber 30 /* for old spelling of |>> */
- #define RTMaxStrategyNumber 30
- #endif /* STRATNUM_H */
|