OSDN Git Service

rebuid:
[eos/hostdependX86MAC64.git] / util / X86MAC64 / include / postgresql / server / 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  * The primary key for this table is <opcmethod, opcname, opcnamespace> ---
8  * that is, there is a row for each valid combination of opclass name and
9  * index access method type.  This row specifies the expected input data type
10  * for the opclass (the type of the heap column, or the expression output type
11  * in the case of an index expression).  Note that types binary-coercible to
12  * the specified type will be accepted too.
13  *
14  * For a given <opcmethod, 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.  (This is not currently enforced by an index, because we
17  * don't support partial indexes on system catalogs.)
18  *
19  * Normally opckeytype = InvalidOid (zero), indicating that the data stored
20  * in the index is the same as the data in the indexed column.  If opckeytype
21  * is nonzero then it indicates that a conversion step is needed to produce
22  * the stored index data, which will be of type opckeytype (which might be
23  * the same or different from the input datatype).  Performing such a
24  * conversion is the responsibility of the index access method --- not all
25  * AMs support this.
26  *
27  *
28  * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
29  * Portions Copyright (c) 1994, Regents of the University of California
30  *
31  * src/include/catalog/pg_opclass.h
32  *
33  * NOTES
34  *        the genbki.pl script reads this file and generates .bki
35  *        information from the DATA() statements.
36  *
37  *-------------------------------------------------------------------------
38  */
39 #ifndef PG_OPCLASS_H
40 #define PG_OPCLASS_H
41
42 #include "catalog/genbki.h"
43
44 /* ----------------
45  *              pg_opclass definition.  cpp turns this into
46  *              typedef struct FormData_pg_opclass
47  * ----------------
48  */
49 #define OperatorClassRelationId  2616
50
51 CATALOG(pg_opclass,2616)
52 {
53         Oid                     opcmethod;              /* index access method opclass is for */
54         NameData        opcname;                /* name of this opclass */
55         Oid                     opcnamespace;   /* namespace of this opclass */
56         Oid                     opcowner;               /* opclass owner */
57         Oid                     opcfamily;              /* containing operator family */
58         Oid                     opcintype;              /* type of data indexed by opclass */
59         bool            opcdefault;             /* T if opclass is default for opcintype */
60         Oid                     opckeytype;             /* type of data in index, or InvalidOid */
61 } FormData_pg_opclass;
62
63 /* ----------------
64  *              Form_pg_opclass corresponds to a pointer to a tuple with
65  *              the format of pg_opclass relation.
66  * ----------------
67  */
68 typedef FormData_pg_opclass *Form_pg_opclass;
69
70 /* ----------------
71  *              compiler constants for pg_opclass
72  * ----------------
73  */
74 #define Natts_pg_opclass                                8
75 #define Anum_pg_opclass_opcmethod               1
76 #define Anum_pg_opclass_opcname                 2
77 #define Anum_pg_opclass_opcnamespace    3
78 #define Anum_pg_opclass_opcowner                4
79 #define Anum_pg_opclass_opcfamily               5
80 #define Anum_pg_opclass_opcintype               6
81 #define Anum_pg_opclass_opcdefault              7
82 #define Anum_pg_opclass_opckeytype              8
83
84 /* ----------------
85  *              initial contents of pg_opclass
86  *
87  * Note: we hard-wire an OID only for a few entries that have to be explicitly
88  * referenced in the C code or in built-in catalog entries.  The rest get OIDs
89  * assigned on-the-fly during initdb.
90  * ----------------
91  */
92
93 DATA(insert (   403             abstime_ops                     PGNSP PGUID  421  702 t 0 ));
94 DATA(insert (   403             array_ops                       PGNSP PGUID  397 2277 t 0 ));
95 DATA(insert (   405             array_ops                       PGNSP PGUID  627 2277 t 0 ));
96 DATA(insert (   403             bit_ops                         PGNSP PGUID  423 1560 t 0 ));
97 DATA(insert (   403             bool_ops                        PGNSP PGUID  424   16 t 0 ));
98 DATA(insert (   403             bpchar_ops                      PGNSP PGUID  426 1042 t 0 ));
99 DATA(insert (   405             bpchar_ops                      PGNSP PGUID  427 1042 t 0 ));
100 DATA(insert (   403             bytea_ops                       PGNSP PGUID  428   17 t 0 ));
101 DATA(insert (   403             char_ops                        PGNSP PGUID  429   18 t 0 ));
102 DATA(insert (   405             char_ops                        PGNSP PGUID  431   18 t 0 ));
103 DATA(insert (   403             cidr_ops                        PGNSP PGUID 1974  869 f 0 ));
104 DATA(insert (   405             cidr_ops                        PGNSP PGUID 1975  869 f 0 ));
105 DATA(insert OID = 3122 ( 403    date_ops        PGNSP PGUID  434 1082 t 0 ));
106 #define DATE_BTREE_OPS_OID 3122
107 DATA(insert (   405             date_ops                        PGNSP PGUID  435 1082 t 0 ));
108 DATA(insert (   403             float4_ops                      PGNSP PGUID 1970  700 t 0 ));
109 DATA(insert (   405             float4_ops                      PGNSP PGUID 1971  700 t 0 ));
110 DATA(insert OID = 3123 ( 403    float8_ops      PGNSP PGUID 1970  701 t 0 ));
111 #define FLOAT8_BTREE_OPS_OID 3123
112 DATA(insert (   405             float8_ops                      PGNSP PGUID 1971  701 t 0 ));
113 DATA(insert (   403             inet_ops                        PGNSP PGUID 1974  869 t 0 ));
114 DATA(insert (   405             inet_ops                        PGNSP PGUID 1975  869 t 0 ));
115 DATA(insert (   783             inet_ops                        PGNSP PGUID 3550  869 f 0 ));
116 DATA(insert OID = 1979 ( 403    int2_ops        PGNSP PGUID 1976   21 t 0 ));
117 #define INT2_BTREE_OPS_OID 1979
118 DATA(insert (   405             int2_ops                        PGNSP PGUID 1977   21 t 0 ));
119 DATA(insert OID = 1978 ( 403    int4_ops        PGNSP PGUID 1976   23 t 0 ));
120 #define INT4_BTREE_OPS_OID 1978
121 DATA(insert (   405             int4_ops                        PGNSP PGUID 1977   23 t 0 ));
122 DATA(insert OID = 3124 ( 403    int8_ops        PGNSP PGUID 1976   20 t 0 ));
123 #define INT8_BTREE_OPS_OID 3124
124 DATA(insert (   405             int8_ops                        PGNSP PGUID 1977   20 t 0 ));
125 DATA(insert (   403             interval_ops            PGNSP PGUID 1982 1186 t 0 ));
126 DATA(insert (   405             interval_ops            PGNSP PGUID 1983 1186 t 0 ));
127 DATA(insert (   403             macaddr_ops                     PGNSP PGUID 1984  829 t 0 ));
128 DATA(insert (   405             macaddr_ops                     PGNSP PGUID 1985  829 t 0 ));
129 /*
130  * Here's an ugly little hack to save space in the system catalog indexes.
131  * btree doesn't ordinarily allow a storage type different from input type;
132  * but cstring and name are the same thing except for trailing padding,
133  * and we can safely omit that within an index entry.  So we declare the
134  * btree opclass for name as using cstring storage type.
135  */
136 DATA(insert (   403             name_ops                        PGNSP PGUID 1986   19 t 2275 ));
137 DATA(insert (   405             name_ops                        PGNSP PGUID 1987   19 t 0 ));
138 DATA(insert OID = 3125 ( 403    numeric_ops PGNSP PGUID 1988 1700 t 0 ));
139 #define NUMERIC_BTREE_OPS_OID 3125
140 DATA(insert (   405             numeric_ops                     PGNSP PGUID 1998 1700 t 0 ));
141 DATA(insert OID = 1981 ( 403    oid_ops         PGNSP PGUID 1989   26 t 0 ));
142 #define OID_BTREE_OPS_OID 1981
143 DATA(insert (   405             oid_ops                         PGNSP PGUID 1990   26 t 0 ));
144 DATA(insert (   403             oidvector_ops           PGNSP PGUID 1991   30 t 0 ));
145 DATA(insert (   405             oidvector_ops           PGNSP PGUID 1992   30 t 0 ));
146 DATA(insert (   403             record_ops                      PGNSP PGUID 2994 2249 t 0 ));
147 DATA(insert (   403             record_image_ops        PGNSP PGUID 3194 2249 f 0 ));
148 DATA(insert OID = 3126 ( 403    text_ops        PGNSP PGUID 1994   25 t 0 ));
149 #define TEXT_BTREE_OPS_OID 3126
150 DATA(insert (   405             text_ops                        PGNSP PGUID 1995   25 t 0 ));
151 DATA(insert (   403             time_ops                        PGNSP PGUID 1996 1083 t 0 ));
152 DATA(insert (   405             time_ops                        PGNSP PGUID 1997 1083 t 0 ));
153 DATA(insert OID = 3127 ( 403    timestamptz_ops PGNSP PGUID  434 1184 t 0 ));
154 #define TIMESTAMPTZ_BTREE_OPS_OID 3127
155 DATA(insert (   405             timestamptz_ops         PGNSP PGUID 1999 1184 t 0 ));
156 DATA(insert (   403             timetz_ops                      PGNSP PGUID 2000 1266 t 0 ));
157 DATA(insert (   405             timetz_ops                      PGNSP PGUID 2001 1266 t 0 ));
158 DATA(insert (   403             varbit_ops                      PGNSP PGUID 2002 1562 t 0 ));
159 DATA(insert (   403             varchar_ops                     PGNSP PGUID 1994   25 f 0 ));
160 DATA(insert (   405             varchar_ops                     PGNSP PGUID 1995   25 f 0 ));
161 DATA(insert OID = 3128 ( 403    timestamp_ops   PGNSP PGUID  434 1114 t 0 ));
162 #define TIMESTAMP_BTREE_OPS_OID 3128
163 DATA(insert (   405             timestamp_ops           PGNSP PGUID 2040 1114 t 0 ));
164 DATA(insert (   403             text_pattern_ops        PGNSP PGUID 2095   25 f 0 ));
165 DATA(insert (   403             varchar_pattern_ops PGNSP PGUID 2095   25 f 0 ));
166 DATA(insert (   403             bpchar_pattern_ops      PGNSP PGUID 2097 1042 f 0 ));
167 DATA(insert (   403             money_ops                       PGNSP PGUID 2099  790 t 0 ));
168 DATA(insert (   405             bool_ops                        PGNSP PGUID 2222   16 t 0 ));
169 DATA(insert (   405             bytea_ops                       PGNSP PGUID 2223   17 t 0 ));
170 DATA(insert (   405             int2vector_ops          PGNSP PGUID 2224   22 t 0 ));
171 DATA(insert (   403             tid_ops                         PGNSP PGUID 2789   27 t 0 ));
172 DATA(insert (   405             xid_ops                         PGNSP PGUID 2225   28 t 0 ));
173 DATA(insert (   405             cid_ops                         PGNSP PGUID 2226   29 t 0 ));
174 DATA(insert (   405             abstime_ops                     PGNSP PGUID 2227  702 t 0 ));
175 DATA(insert (   405             reltime_ops                     PGNSP PGUID 2228  703 t 0 ));
176 DATA(insert (   405             text_pattern_ops        PGNSP PGUID 2229   25 f 0 ));
177 DATA(insert (   405             varchar_pattern_ops PGNSP PGUID 2229   25 f 0 ));
178 DATA(insert (   405             bpchar_pattern_ops      PGNSP PGUID 2231 1042 f 0 ));
179 DATA(insert (   403             reltime_ops                     PGNSP PGUID 2233  703 t 0 ));
180 DATA(insert (   403             tinterval_ops           PGNSP PGUID 2234  704 t 0 ));
181 DATA(insert (   405             aclitem_ops                     PGNSP PGUID 2235 1033 t 0 ));
182 DATA(insert (   783             box_ops                         PGNSP PGUID 2593  603 t 0 ));
183 DATA(insert (   783             point_ops                       PGNSP PGUID 1029  600 t 603 ));
184 DATA(insert (   783             poly_ops                        PGNSP PGUID 2594  604 t 603 ));
185 DATA(insert (   783             circle_ops                      PGNSP PGUID 2595  718 t 603 ));
186 DATA(insert (   2742    _int4_ops                       PGNSP PGUID 2745  1007 t 23 ));
187 DATA(insert (   2742    _text_ops                       PGNSP PGUID 2745  1009 t 25 ));
188 DATA(insert (   2742    _abstime_ops            PGNSP PGUID 2745  1023 t 702 ));
189 DATA(insert (   2742    _bit_ops                        PGNSP PGUID 2745  1561 t 1560 ));
190 DATA(insert (   2742    _bool_ops                       PGNSP PGUID 2745  1000 t 16 ));
191 DATA(insert (   2742    _bpchar_ops                     PGNSP PGUID 2745  1014 t 1042 ));
192 DATA(insert (   2742    _bytea_ops                      PGNSP PGUID 2745  1001 t 17 ));
193 DATA(insert (   2742    _char_ops                       PGNSP PGUID 2745  1002 t 18 ));
194 DATA(insert (   2742    _cidr_ops                       PGNSP PGUID 2745  651 t 650 ));
195 DATA(insert (   2742    _date_ops                       PGNSP PGUID 2745  1182 t 1082 ));
196 DATA(insert (   2742    _float4_ops                     PGNSP PGUID 2745  1021 t 700 ));
197 DATA(insert (   2742    _float8_ops                     PGNSP PGUID 2745  1022 t 701 ));
198 DATA(insert (   2742    _inet_ops                       PGNSP PGUID 2745  1041 t 869 ));
199 DATA(insert (   2742    _int2_ops                       PGNSP PGUID 2745  1005 t 21 ));
200 DATA(insert (   2742    _int8_ops                       PGNSP PGUID 2745  1016 t 20 ));
201 DATA(insert (   2742    _interval_ops           PGNSP PGUID 2745  1187 t 1186 ));
202 DATA(insert (   2742    _macaddr_ops            PGNSP PGUID 2745  1040 t 829 ));
203 DATA(insert (   2742    _name_ops                       PGNSP PGUID 2745  1003 t 19 ));
204 DATA(insert (   2742    _numeric_ops            PGNSP PGUID 2745  1231 t 1700 ));
205 DATA(insert (   2742    _oid_ops                        PGNSP PGUID 2745  1028 t 26 ));
206 DATA(insert (   2742    _oidvector_ops          PGNSP PGUID 2745  1013 t 30 ));
207 DATA(insert (   2742    _time_ops                       PGNSP PGUID 2745  1183 t 1083 ));
208 DATA(insert (   2742    _timestamptz_ops        PGNSP PGUID 2745  1185 t 1184 ));
209 DATA(insert (   2742    _timetz_ops                     PGNSP PGUID 2745  1270 t 1266 ));
210 DATA(insert (   2742    _varbit_ops                     PGNSP PGUID 2745  1563 t 1562 ));
211 DATA(insert (   2742    _varchar_ops            PGNSP PGUID 2745  1015 t 1043 ));
212 DATA(insert (   2742    _timestamp_ops          PGNSP PGUID 2745  1115 t 1114 ));
213 DATA(insert (   2742    _money_ops                      PGNSP PGUID 2745  791 t 790 ));
214 DATA(insert (   2742    _reltime_ops            PGNSP PGUID 2745  1024 t 703 ));
215 DATA(insert (   2742    _tinterval_ops          PGNSP PGUID 2745  1025 t 704 ));
216 DATA(insert (   403             uuid_ops                        PGNSP PGUID 2968  2950 t 0 ));
217 DATA(insert (   405             uuid_ops                        PGNSP PGUID 2969  2950 t 0 ));
218 DATA(insert (   403             pg_lsn_ops                      PGNSP PGUID 3253  3220 t 0 ));
219 DATA(insert (   405             pg_lsn_ops                      PGNSP PGUID 3254  3220 t 0 ));
220 DATA(insert (   403             enum_ops                        PGNSP PGUID 3522  3500 t 0 ));
221 DATA(insert (   405             enum_ops                        PGNSP PGUID 3523  3500 t 0 ));
222 DATA(insert (   403             tsvector_ops            PGNSP PGUID 3626  3614 t 0 ));
223 DATA(insert (   783             tsvector_ops            PGNSP PGUID 3655  3614 t 3642 ));
224 DATA(insert (   2742    tsvector_ops            PGNSP PGUID 3659  3614 t 25 ));
225 DATA(insert (   403             tsquery_ops                     PGNSP PGUID 3683  3615 t 0 ));
226 DATA(insert (   783             tsquery_ops                     PGNSP PGUID 3702  3615 t 20 ));
227 DATA(insert (   403             range_ops                       PGNSP PGUID 3901  3831 t 0 ));
228 DATA(insert (   405             range_ops                       PGNSP PGUID 3903  3831 t 0 ));
229 DATA(insert (   783             range_ops                       PGNSP PGUID 3919  3831 t 0 ));
230 DATA(insert (   4000    range_ops                       PGNSP PGUID 3474  3831 t 0 ));
231 DATA(insert (   4000    quad_point_ops          PGNSP PGUID 4015  600 t 0 ));
232 DATA(insert (   4000    kd_point_ops            PGNSP PGUID 4016  600 f 0 ));
233 DATA(insert (   4000    text_ops                        PGNSP PGUID 4017  25 t 0 ));
234 DATA(insert (   403             jsonb_ops                       PGNSP PGUID 4033  3802 t 0 ));
235 DATA(insert (   405             jsonb_ops                       PGNSP PGUID 4034  3802 t 0 ));
236 DATA(insert (   2742    jsonb_ops                       PGNSP PGUID 4036  3802 t 25 ));
237 DATA(insert (   2742    jsonb_path_ops          PGNSP PGUID 4037  3802 f 23 ));
238
239 #endif   /* PG_OPCLASS_H */