2015-05-15 22:03:16 +02:00
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
*
|
|
|
|
* stratnum.h
|
|
|
|
* POSTGRES strategy number definitions.
|
|
|
|
*
|
|
|
|
*
|
2021-01-02 19:06:25 +01:00
|
|
|
* Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
|
2015-05-15 22:03:16 +02:00
|
|
|
* 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
|
|
|
|
|
2019-03-11 17:17:50 +01:00
|
|
|
/*
|
|
|
|
* Strategy numbers for hash indexes. There's only one valid strategy for
|
|
|
|
* hashing: equality.
|
|
|
|
*/
|
|
|
|
#define HTEqualStrategyNumber 1
|
|
|
|
|
|
|
|
#define HTMaxStrategyNumber 1
|
2015-05-15 22:03:16 +02:00
|
|
|
|
|
|
|
/*
|
|
|
|
* 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 >> */
|
2015-05-15 23:05:22 +02:00
|
|
|
#define RTSubEqualStrategyNumber 25 /* for inet <<= */
|
2015-05-15 22:03:16 +02:00
|
|
|
#define RTSuperStrategyNumber 26 /* for inet << */
|
2015-05-15 23:05:22 +02:00
|
|
|
#define RTSuperEqualStrategyNumber 27 /* for inet >>= */
|
2018-04-03 18:46:45 +02:00
|
|
|
#define RTPrefixStrategyNumber 28 /* for text ^@ */
|
2020-11-23 17:38:37 +01:00
|
|
|
#define RTOldBelowStrategyNumber 29 /* for old spelling of <<| */
|
|
|
|
#define RTOldAboveStrategyNumber 30 /* for old spelling of |>> */
|
2015-05-15 22:03:16 +02:00
|
|
|
|
2020-11-23 17:38:37 +01:00
|
|
|
#define RTMaxStrategyNumber 30
|
2015-05-15 22:03:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
#endif /* STRATNUM_H */
|