mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-29 22:49:41 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			86 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*-------------------------------------------------------------------------
 | |
|  *
 | |
|  * stratnum.h
 | |
|  *	  POSTGRES strategy number definitions.
 | |
|  *
 | |
|  *
 | |
|  * Portions Copyright (c) 1996-2025, 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 */
 |