]> granicus.if.org Git - postgresql/blob - src/include/catalog/pg_opclass.h
Add GIN opclases for another types
[postgresql] / src / include / catalog / pg_opclass.h
1 /*-------------------------------------------------------------------------
2  *
3  * pg_opclass.h
4  *        definition of the system "opclass" relation (pg_opclass)
5  *        along with the relation's initial contents.
6  *
7  * New definition for Postgres 7.2: the primary key for this table is
8  * <opcamid, opcname> --- that is, there is a row for each valid combination
9  * of opclass name and index access method type.  This row specifies the
10  * expected input data type for the opclass (the type of the heap column,
11  * or the expression output type in the case of an index expression).  Note
12  * that types binary-coercible to the specified type will be accepted too.
13  *
14  * For a given <opcamid, opcintype> pair, there can be at most one row that
15  * has opcdefault = true; this row is the default opclass for such data in
16  * such an index.
17  *
18  * Normally opckeytype = InvalidOid (zero), indicating that the data stored
19  * in the index is the same as the data in the indexed column.  If opckeytype
20  * is nonzero then it indicates that a conversion step is needed to produce
21  * the stored index data, which will be of type opckeytype (which might be
22  * the same or different from the input datatype).      Performing such a
23  * conversion is the responsibility of the index access method --- not all
24  * AMs support this.
25  *
26  *
27  * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
28  * Portions Copyright (c) 1994, Regents of the University of California
29  *
30  * $PostgreSQL: pgsql/src/include/catalog/pg_opclass.h,v 1.70 2006/05/02 15:23:16 teodor Exp $
31  *
32  * NOTES
33  *        the genbki.sh script reads this file and generates .bki
34  *        information from the DATA() statements.
35  *
36  *-------------------------------------------------------------------------
37  */
38 #ifndef PG_OPCLASS_H
39 #define PG_OPCLASS_H
40
41 /* ----------------
42  *              postgres.h contains the system type definitions and the
43  *              CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
44  *              can be read by both genbki.sh and the C compiler.
45  * ----------------
46  */
47
48 /* ----------------
49  *              pg_opclass definition.  cpp turns this into
50  *              typedef struct FormData_pg_opclass
51  * ----------------
52  */
53 #define OperatorClassRelationId  2616
54
55 CATALOG(pg_opclass,2616)
56 {
57         Oid                     opcamid;                /* index access method opclass is for */
58         NameData        opcname;                /* name of this opclass */
59         Oid                     opcnamespace;   /* namespace of this opclass */
60         Oid                     opcowner;               /* opclass owner */
61         Oid                     opcintype;              /* type of data indexed by opclass */
62         bool            opcdefault;             /* T if opclass is default for opcintype */
63         Oid                     opckeytype;             /* type of data in index, or InvalidOid */
64 } FormData_pg_opclass;
65
66 /* ----------------
67  *              Form_pg_opclass corresponds to a pointer to a tuple with
68  *              the format of pg_opclass relation.
69  * ----------------
70  */
71 typedef FormData_pg_opclass *Form_pg_opclass;
72
73 /* ----------------
74  *              compiler constants for pg_opclass
75  * ----------------
76  */
77 #define Natts_pg_opclass                                7
78 #define Anum_pg_opclass_opcamid                 1
79 #define Anum_pg_opclass_opcname                 2
80 #define Anum_pg_opclass_opcnamespace    3
81 #define Anum_pg_opclass_opcowner                4
82 #define Anum_pg_opclass_opcintype               5
83 #define Anum_pg_opclass_opcdefault              6
84 #define Anum_pg_opclass_opckeytype              7
85
86 /* ----------------
87  *              initial contents of pg_opclass
88  * ----------------
89  */
90
91 DATA(insert OID =  421 (        403             abstime_ops             PGNSP PGUID  702 t 0 ));
92 DATA(insert OID =  397 (        403             array_ops               PGNSP PGUID 2277 t 0 ));
93 #define ARRAY_BTREE_OPS_OID 397
94 DATA(insert OID =  423 (        403             bit_ops                 PGNSP PGUID 1560 t 0 ));
95 DATA(insert OID =  424 (        403             bool_ops                PGNSP PGUID   16 t 0 ));
96 #define BOOL_BTREE_OPS_OID 424
97 DATA(insert OID =  426 (        403             bpchar_ops              PGNSP PGUID 1042 t 0 ));
98 #define BPCHAR_BTREE_OPS_OID 426
99 DATA(insert OID =  427 (        405             bpchar_ops              PGNSP PGUID 1042 t 0 ));
100 DATA(insert OID =  428 (        403             bytea_ops               PGNSP PGUID   17 t 0 ));
101 #define BYTEA_BTREE_OPS_OID 428
102 DATA(insert OID =  429 (        403             char_ops                PGNSP PGUID   18 t 0 ));
103 DATA(insert OID =  431 (        405             char_ops                PGNSP PGUID   18 t 0 ));
104 DATA(insert OID =  432 (        403             cidr_ops                PGNSP PGUID  650 t 0 ));
105 #define CIDR_BTREE_OPS_OID 432
106 DATA(insert OID =  433 (        405             cidr_ops                PGNSP PGUID  650 t 0 ));
107 DATA(insert OID =  434 (        403             date_ops                PGNSP PGUID 1082 t 0 ));
108 DATA(insert OID =  435 (        405             date_ops                PGNSP PGUID 1082 t 0 ));
109 DATA(insert OID = 1970 (        403             float4_ops              PGNSP PGUID  700 t 0 ));
110 DATA(insert OID = 1971 (        405             float4_ops              PGNSP PGUID  700 t 0 ));
111 DATA(insert OID = 1972 (        403             float8_ops              PGNSP PGUID  701 t 0 ));
112 DATA(insert OID = 1973 (        405             float8_ops              PGNSP PGUID  701 t 0 ));
113 DATA(insert OID = 1974 (        403             inet_ops                PGNSP PGUID  869 t 0 ));
114 #define INET_BTREE_OPS_OID 1974
115 DATA(insert OID = 1975 (        405             inet_ops                PGNSP PGUID  869 t 0 ));
116 DATA(insert OID = 1976 (        403             int2_ops                PGNSP PGUID   21 t 0 ));
117 #define INT2_BTREE_OPS_OID 1976
118 DATA(insert OID = 1977 (        405             int2_ops                PGNSP PGUID   21 t 0 ));
119 DATA(insert OID = 1978 (        403             int4_ops                PGNSP PGUID   23 t 0 ));
120 #define INT4_BTREE_OPS_OID 1978
121 DATA(insert OID = 1979 (        405             int4_ops                PGNSP PGUID   23 t 0 ));
122 DATA(insert OID = 1980 (        403             int8_ops                PGNSP PGUID   20 t 0 ));
123 DATA(insert OID = 1981 (        405             int8_ops                PGNSP PGUID   20 t 0 ));
124 DATA(insert OID = 1982 (        403             interval_ops    PGNSP PGUID 1186 t 0 ));
125 DATA(insert OID = 1983 (        405             interval_ops    PGNSP PGUID 1186 t 0 ));
126 DATA(insert OID = 1984 (        403             macaddr_ops             PGNSP PGUID  829 t 0 ));
127 DATA(insert OID = 1985 (        405             macaddr_ops             PGNSP PGUID  829 t 0 ));
128 DATA(insert OID = 1986 (        403             name_ops                PGNSP PGUID   19 t 0 ));
129 #define NAME_BTREE_OPS_OID 1986
130 DATA(insert OID = 1987 (        405             name_ops                PGNSP PGUID   19 t 0 ));
131 DATA(insert OID = 1988 (        403             numeric_ops             PGNSP PGUID 1700 t 0 ));
132 DATA(insert OID = 1989 (        403             oid_ops                 PGNSP PGUID   26 t 0 ));
133 #define OID_BTREE_OPS_OID 1989
134 DATA(insert OID = 1990 (        405             oid_ops                 PGNSP PGUID   26 t 0 ));
135 DATA(insert OID = 1991 (        403             oidvector_ops   PGNSP PGUID   30 t 0 ));
136 DATA(insert OID = 1992 (        405             oidvector_ops   PGNSP PGUID   30 t 0 ));
137 DATA(insert OID = 1994 (        403             text_ops                PGNSP PGUID   25 t 0 ));
138 #define TEXT_BTREE_OPS_OID 1994
139 DATA(insert OID = 1995 (        405             text_ops                PGNSP PGUID   25 t 0 ));
140 DATA(insert OID = 1996 (        403             time_ops                PGNSP PGUID 1083 t 0 ));
141 DATA(insert OID = 1997 (        405             time_ops                PGNSP PGUID 1083 t 0 ));
142 DATA(insert OID = 1998 (        403             timestamptz_ops PGNSP PGUID 1184 t 0 ));
143 DATA(insert OID = 1999 (        405             timestamptz_ops PGNSP PGUID 1184 t 0 ));
144 DATA(insert OID = 2000 (        403             timetz_ops              PGNSP PGUID 1266 t 0 ));
145 DATA(insert OID = 2001 (        405             timetz_ops              PGNSP PGUID 1266 t 0 ));
146 DATA(insert OID = 2002 (        403             varbit_ops              PGNSP PGUID 1562 t 0 ));
147 DATA(insert OID = 2003 (        403             varchar_ops             PGNSP PGUID 1043 t 0 ));
148 #define VARCHAR_BTREE_OPS_OID 2003
149 DATA(insert OID = 2004 (        405             varchar_ops             PGNSP PGUID 1043 t 0 ));
150 DATA(insert OID = 2039 (        403             timestamp_ops   PGNSP PGUID 1114 t 0 ));
151 DATA(insert OID = 2040 (        405             timestamp_ops   PGNSP PGUID 1114 t 0 ));
152 DATA(insert OID = 2095 (        403             text_pattern_ops        PGNSP PGUID   25 f 0 ));
153 #define TEXT_PATTERN_BTREE_OPS_OID 2095
154 DATA(insert OID = 2096 (        403             varchar_pattern_ops PGNSP PGUID 1043 f 0 ));
155 #define VARCHAR_PATTERN_BTREE_OPS_OID 2096
156 DATA(insert OID = 2097 (        403             bpchar_pattern_ops      PGNSP PGUID 1042 f 0 ));
157 #define BPCHAR_PATTERN_BTREE_OPS_OID 2097
158 DATA(insert OID = 2098 (        403             name_pattern_ops        PGNSP PGUID   19 f 0 ));
159 #define NAME_PATTERN_BTREE_OPS_OID 2098
160 DATA(insert OID = 2099 (        403             money_ops               PGNSP PGUID  790 t 0 ));
161 DATA(insert OID = 2222 (        405             bool_ops                PGNSP PGUID   16 t 0 ));
162 #define BOOL_HASH_OPS_OID 2222
163 DATA(insert OID = 2223 (        405             bytea_ops               PGNSP PGUID   17 t 0 ));
164 DATA(insert OID = 2224 (        405             int2vector_ops  PGNSP PGUID   22 t 0 ));
165 DATA(insert OID = 2225 (        405             xid_ops                 PGNSP PGUID   28 t 0 ));
166 DATA(insert OID = 2226 (        405             cid_ops                 PGNSP PGUID   29 t 0 ));
167 DATA(insert OID = 2227 (        405             abstime_ops             PGNSP PGUID  702 t 0 ));
168 DATA(insert OID = 2228 (        405             reltime_ops             PGNSP PGUID  703 t 0 ));
169 DATA(insert OID = 2229 (        405             text_pattern_ops        PGNSP PGUID   25 f 0 ));
170 DATA(insert OID = 2230 (        405             varchar_pattern_ops PGNSP PGUID 1043 f 0 ));
171 DATA(insert OID = 2231 (        405             bpchar_pattern_ops      PGNSP PGUID 1042 f 0 ));
172 DATA(insert OID = 2232 (        405             name_pattern_ops        PGNSP PGUID   19 f 0 ));
173 DATA(insert OID = 2233 (        403             reltime_ops             PGNSP PGUID  703 t 0 ));
174 DATA(insert OID = 2234 (        403             tinterval_ops   PGNSP PGUID  704 t 0 ));
175 DATA(insert OID = 2235 (        405             aclitem_ops             PGNSP PGUID 1033 t 0 ));
176 DATA(insert OID = 2593 (        783             box_ops                 PGNSP PGUID  603 t 0 ));
177 DATA(insert OID = 2594 (        783             poly_ops                PGNSP PGUID  604 t 603 ));
178 DATA(insert OID = 2595 (        783             circle_ops              PGNSP PGUID  718 t 603 ));
179 DATA(insert OID = 2745 (        2742    _int4_ops               PGNSP PGUID  1007 t 23 ));
180 DATA(insert OID = 2746 (        2742    _text_ops               PGNSP PGUID  1009 t 25 ));
181 DATA(insert OID = 2753 (        2742    _abstime_ops    PGNSP PGUID  1023 t 702 ));
182 DATA(insert OID = 2754 (        2742    _bit_ops                PGNSP PGUID  1561 t 1560 ));
183 DATA(insert OID = 2755 (        2742    _bool_ops               PGNSP PGUID  1000 t 16 ));
184 DATA(insert OID = 2756 (        2742    _bpchar_ops             PGNSP PGUID  1014 t 1042 ));
185 DATA(insert OID = 2757 (        2742    _bytea_ops              PGNSP PGUID  1001 t 17 ));
186 DATA(insert OID = 2758 (        2742    _char_ops               PGNSP PGUID  1002 t 18 ));
187 DATA(insert OID = 2759 (        2742    _cidr_ops               PGNSP PGUID  651 t 650 ));
188 DATA(insert OID = 2760 (        2742    _date_ops               PGNSP PGUID  1182 t 1082 ));
189 DATA(insert OID = 2761 (        2742    _float4_ops             PGNSP PGUID  1021 t 700 ));
190 DATA(insert OID = 2762 (        2742    _float8_ops             PGNSP PGUID  1022 t 701 ));
191 DATA(insert OID = 2763 (        2742    _inet_ops               PGNSP PGUID  1041 t 869 ));
192 DATA(insert OID = 2764 (        2742    _int2_ops               PGNSP PGUID  1005 t 21 ));
193 DATA(insert OID = 2765 (        2742    _int8_ops               PGNSP PGUID  1016 t 20 ));
194 DATA(insert OID = 2766 (        2742    _interval_ops   PGNSP PGUID  1187 t 1186 ));
195 DATA(insert OID = 2767 (        2742    _macaddr_ops    PGNSP PGUID  1040 t 829 ));
196 DATA(insert OID = 2768 (        2742    _name_ops               PGNSP PGUID  1003 t 19 ));
197 DATA(insert OID = 2769 (        2742    _numeric_ops    PGNSP PGUID  1231 t 1700 ));
198 DATA(insert OID = 2770 (        2742    _oid_ops                PGNSP PGUID  1028 t 26 ));
199 DATA(insert OID = 2771 (        2742    _oidvector_ops  PGNSP PGUID  1013 t 30 ));
200 DATA(insert OID = 2772 (        2742    _time_ops               PGNSP PGUID  1183 t 1083 ));
201 DATA(insert OID = 2773 (        2742    _timestamptz_ops        PGNSP PGUID  1185 t 1184 ));
202 DATA(insert OID = 2774 (        2742    _timetz_ops             PGNSP PGUID  1270 t 1266 ));
203 DATA(insert OID = 2775 (        2742    _varbit_ops             PGNSP PGUID  1563 t 1562 ));
204 DATA(insert OID = 2776 (        2742    _varchar_ops    PGNSP PGUID  1015 t 1043 ));
205 DATA(insert OID = 2777 (        2742    _timestamp_ops  PGNSP PGUID  1115 t 1114 ));
206 DATA(insert OID = 2778 (        2742    _money_ops              PGNSP PGUID  791 t 790 ));
207 DATA(insert OID = 2779 (        2742    _reltime_ops    PGNSP PGUID  1024 t 703 ));
208 DATA(insert OID = 2780 (        2742    _tinterval_ops  PGNSP PGUID  1025 t 704 ));
209
210 #endif   /* PG_OPCLASS_H */